Search code examples
eclipseeclipse-plugineditoreclipse-rcpwizard

Eclipse RCP: New Editor Wizard


I have a small experience with Eclipse RCP - 3.X and I created my own editor via org.eclipse.ui.editors extension point and in order to have multiple instance of that editor I have implemented a new editor wizard as you can see below;

IFile file = page1.createNewFile();

IWorkbenchWindow window = _workbench.getActiveWorkbenchWindow();
IWorkbenchPage page = window.getActivePage();
try {
    IDE.openEditor(page, file, SimpleEditor.ID, true);
} catch (PartInitException e) {
    e.printStackTrace();
}

My question, the only way I found is that, create a new file and associate that file with your unique Editor ID. What I want is, I would like parse some initial values -that defined by user- to editor from the wizard. But we really don't instantiate the EditorPart class in the process.

How can I achieve that?


Solution

  • The IDE.openEditor call returns the IEditorPart that was opened - this will be an instance of your editor class so you can do:

    IEditorPart part = IDE.openEditor(page, file, SimpleEditor.ID, true);
    if (part instanceof SimpleEditor) {
       SimpleEditor editor = (SimpleEditor)part;
    
       // TODO call methods you define in the editor to set the parameters
    }
    

    Alternatively you can use a custom IEditorInput and call the IDE

    openEditor(IWorkbenchPage page,
               IEditorInput input, String editorId)
    

    method. The init method of the editor is given the IEditorInput you specify.