Listing All Eclipse Editors?

I created a simple Eclipse plugin where a user can use TableViewerdatabase resources to open an editor for any of these resources.

This way, users can have zero instances of the editor.

Is there an API available to get a list of these editor instances?

+5
source share
3 answers

You can get links to all open editors:

PlatformUI.getWorkbench().getActiveWorkbenchWindow()
    .getActivePage().getEditorReferences();

And then check them out to select those that reference instances of your editor type.

+10
source

javadoc API , , .

, , - ( ..):

List<IEditorReference> editors = new ArrayList<IEditorReference>();
for (IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()) {
    for (IWorkbenchPage page : window.getPages()) {
        for (IEditorReference editor : page.getEditorReferences()) {
            editors.add(editor);
        }
    }
}
+5

Remember that such an enumeration will not follow the tab order

Here is an example of an enumeration of editors:

IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
IWorkbenchPage page = window.getActivePage();
IEditorPart actEditor = page.getActiveEditor();
IEditorReference[] editors = page.getEditorReferences();
for (int i=0; i<editors.length-1; i++) {
  if (editors[i].getEditor(true) == actEditor) {
    page.activate(editors[i+1].getEditor(true));
    return null;
  }
}
+1
source

All Articles