1..IWorkbench:
workbench是eclipse用戶界面中最底層的對象,它建立在Display之上,包含一個或多個IWorkbenchWindow,用于向終端用戶呈現信息
當你的workbench插件被激活的時候,eclipse平臺將為之創建一個實例,在平臺的整個生命周期中,只允許出現該workbench的唯一實例
2..IWorkbenchWindow
在面提到IWorkbench利用其包含的IWorkbenchWindow向終端用戶展現信息
"A workbench window is a top level window in a workbench. "
IWorkbenchWindow通常包含菜單欄,工具欄,狀態欄和一個用來顯示IWorkbenchPage的主要區域
每個IWorkbenchWindow可以包含一個或多個IWorkbenchPage,但是同一時刻只允許一個IWorkbenchPage被激活并向終端用戶顯示
3..IWorkbenchPage
IWorkbenchPage的功能就是組織一個或多個IEditorPart或IViewPart顯示在一個IWorkbenchWindow中,最終呈現給終端用戶
IWorkbenchPage包含一個或多個IEditorPart或IViewPart,這些IEditorPart和IViewPart完全被包含在這個IWorkbenchPage并且不能與其它的IWorkbenchPage共享
IWorkbenchPage上定義的Layout和ActionSet就是我們常說的透視圖——perspective了
4..IWorkbenchPart
IWorkbenchPart就是上面提到的IEditorPart和IViewPart,它也只包含這兩個子類型,看到這里大家應該明白,我們絕大部分的工作就是基于這個IWorkbenchPart
關于IEditorPart和IViewPart,相信大家應該已經十分了解了
IViewPart常常被用于導航信息的層次結構,例如我們的workspace,或者用來打開一個編輯器,或者用來顯示這個編輯器的某些屬性
IEditorPart多被用來編輯或瀏覽一個文檔或一個輸入的對象,而這個輸入的對象必須是一個IEditorInput,IEditorPart遵循的就是打開-保存-關閉的生命周期模型
最后給出IWorkbenchPart的生命周期模型,希望對大家的開發能夠有所幫助:
IWorkbenchPart拓展點被創建:
實例化IWorkbenchPart
創建一個IWorkbenchPartSite
調用part.init(site)
IWorkbenchPart成為可見:
調用part.createControl(parent)繪制 IWorkbenchPart
激活partOpened event
IWorkbenchPart被激活或者取得焦點:
調用part.setFocus()
激活partActivated event
IWorkbenchPart被關閉:
如需要保存,完成保存
解除IWorkbenchPart的激活狀態
激活partClosed event
從界面上移除IWorkbenchPart
調用part.dispose()