在Eclipse rcp啟動(dòng)時(shí),對(duì)于系統(tǒng)默認(rèn)啟動(dòng)的Perspective,可以通過(guò)增加各種viewpart,在系統(tǒng)啟動(dòng)時(shí),打開(kāi)自定義的view。但是在createInitialLayout(ILayout layout)方法中,利用layout無(wú)法傳入自定義的editorpart,替換系統(tǒng)默認(rèn)的"org.eclipse.ui.editorss”editor,于是如何打開(kāi)自定義的editorpart成了一個(gè)問(wèn)題。
在分析打開(kāi)自定義的editorpart的方法調(diào)用時(shí):PlatformUI.getWrokbench().getActiveWorkbenchWindow().getActivePage().openEditor(,EditorInput,EditorID,true),問(wèn)題的關(guān)鍵是獲得IWorkBenchPage對(duì)象。為了獲得active 的page,通過(guò)對(duì)Eclipse UI結(jié)構(gòu)的分析,可知當(dāng)workbenchWindow打開(kāi)后,則可以或得activepage,所以,可以通過(guò)重載ApplicationWorkbenchWindowAdivor的postWidowOpen方法,在其中打開(kāi)editorpart,即可,我的代碼如下:
public void postWindowOpen() {
// TODO Auto-generated method stub
super.postWindowOpen();
IWorkbench bench = PlatformUI.getWorkbench();
String defaultPerspectiveID = bench.getPerspectiveRegistry()
.getDefaultPerspective();
if (defaultPerspectiveID.equals(MyPerspective.PERSPECTIVE_ID)) {
File file = new File("");
String path = file.getAbsolutePath();
if (path != null) {
IEditorInput input = new DiagramEditorInput(new Path(path));
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
try {
page.openEditor(input, DiagramEditor.ID, true);
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
聯(lián)系客服