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