Editor öffnen
Im folgenden Beispiel wird ein Editor geöffnet.
Dies erfolgt in einem seperatem Thread, damit das GUI während des Öffnens nicht „einfriert“.
Die Methode openEditor(..) muss natürlich nicht zwangsläufig innerhalb des Editors sein.
Der Editor muss in den Extensions innerhalb der plugin.xml unter dem Extension Point org.eclipse.ui.editors registriert sein (dazu PDE-Editor verwenden; Aufruf erfolgt duch Öffnen der MANIFEST.MF-Datei).
Minimal müssen id (hier: com.sowas.javawiki.MyEditor) und class (hier: com.sowas.javawiki.MyEditor) angegeben werden; empfehlenswert sind auch name und icon, welche Beide natürlich frei wählbar sind).
package com.sowas.javawiki; ... public class MyEditor extends FormEditor implements IMyEditor { public static final String ID = "com.sowas.javawiki.MyEditor"; ... public static IEditorPart openEditor(final Object myDataObject) { final IWorkbenchPage wbp = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); final MutableObject response = new MutableObject(); Display.getCurrent().asyncExec(new Runnable() { public void run() { final IMyEditorInput input = new MyEditorInput(myDataObject); final IEditorPart editor = wbp.openEditor(input, MyEditor.ID); response.setValue(editor); } }); IEditorPart editorPart = (IEditorPart) response.getValue(); return editorPart; } } class MutableObject { private Object obj = null; public Object getObj(){ return obj; } public void setObj(Object obj){ this.obj = obj; } }
MyEditorInput muss wie folgt aufgebaut sein:
public class MyEditorInput extends PlatformObject implements IMyEditorInput { ... } public interface IMyEditorInput extends IEditorInput { ... }