2012-10-12 106 views
1

我正在嘗試製作工具欄按鈕,以便在我的RCP應用上使用另一個編輯器打開一個文件!WorkbenchPage.openEditor()什麼都不做

我都去下面的代碼:

 IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
    IEditorPart oldEditor = page.getActiveEditor(); 
    IFile file = ((IFileEditorInput) oldEditor.getEditorInput()).getFile(); 

    IConfigurationElement[] editorsElements = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.ui.editors"); 

    IEditorInput editorInput = new FileEditorInput(file); 

    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
    IWorkbenchPage page2 = window.getActivePage(); 
    try { 
     page2.openEditor(editorInput, editorsElements[3].getAttribute("id")); 
     System.out.println("==>>"+editorInput+">>>>"+ editorsElements[3].getAttribute("id")); 
    } catch (PartInitException e) { 
     e.printStackTrace(); 
    } 

但是當我打電話去行動,他什麼也沒做!但也不會返回錯誤..

System.out.println()結果看起來正確:

== >> org.eclipse.ui.part.FileEditorInput(/g/Network.int)>>>> DesignEditor

我做錯了什麼?

我下面this建議做我的按鈕

對不起我的英語 問候

回答

1

id值應該更像一個Java包名稱:org.myorg.tooling.designeditor

+0

吧!已經做到了,但仍然這樣做。:( –

+0

所以只是爲了闡明:你應該在你的plugin.xml中定義一個單一標識符id(例如「designeditor」),你的plugin.xml和/或manifest.MF應該爲你的插件聲明一個plugin-id(例如「org.myorg.tooling」),你在API調用中指定的編輯器id是兩者的連接(在那裏有一段時間),對吧? –

+0

right!my editor id是「** DesignEditor **」,而我的插件ID是「** IntergridPlugin.integridPlugin **」,當我打電話時,我打電話給「** IntergridPlugin.integridPlugin.DesignEditor **。 –