[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.tools] Using editors from IEditorRegistry from another plugin

I need to find out if it's possible to use an editor from the
IEditorRegistry in my own plugin (I'm working on Asset Locator, if your
interested).
From the plugin's perspective, a user is going to be viewing the contents
of a variety of file types.  What I want is to be able to show the
contents of a file using the current preferred editor for a given file
type.  If no preferred editor exists, I would display it using the
org.eclipse.ui.DefaultTextEditor.    

Here's a sample of code of what I'm trying to do. 

------------------------------------------------------------
// Assume these are initialized...
IWorkbenchPage workbenchPage;
IEditorRegistry editorRegistry;
IStorageEditorInput storageEditorInput;   
String fileName;

IEditorDescriptor defaultEditor = editorRegistry.getDefaultEditor();
IEditorDescriptor preferredEditor =
editorRegistry.getDefaultEditor(fileName);
workbenchPage.setEditorAreaVisible(true);
if (preferredEditor != null)
   workbenchPage.openEditor(storageEditorInput, preferredEditor.getId());
else
   workbenchPage.openEditor(storageEditorInput, defaultEditor.getId());
------------------------------------------------------------

Here's the exception that I get when I try to use anything other
than a org.eclipse.ui.DefaultTextEditor:

------------------------------------------------------------
org.eclipse.ui.PartInitException: Invalid resource type for null.
        at
org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:1294)
        at
org.eclipse.ui.internal.EditorManager$2.run(EditorManager.java:379)
        at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:9
        at
org.eclipse.ui.internal.EditorManager.openInternalEditor(EditorMana
        at
org.eclipse.ui.internal.EditorManager.openInternalEditor(EditorMana
        at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java
        at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java
        at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java
        at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java
        at
com.ibm.etools.assetlocator.views.ContentView.setContent(ContentVie
        at
com.ibm.etools.assetlocator.views.ResultViewer$SelectionChangedList
        at
org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:1
        at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(Structur
        at
org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredV
        at
org.eclipse.jface.viewers.TableViewer$1.widgetSelected(TableViewer.
        at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.jav
        at
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java(Compil
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:622)
        at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1277
        at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1087)
        at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:639)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:622)
        at
org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootL
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:119)
        at org.eclipse.core.launcher.Main.run(Main.java:401)
        at org.eclipse.core.launcher.UIMain.main(UIMain.java:52)
------------------------------------------------------------

Any help would be appreciated....
Thanx.