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()