如何以正确的顺序打开编辑?

时间:2011-01-04 09:59:56

标签: eclipse text-editor pde eclipse-plugin

我可以获得开放的编辑

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

这样,但它们是无序的(总是以相同的方式返回,无论哪个窗口是第一个,哪个窗口是第二个)。对于插件,我实现了它对我来说很重要,因为它们被打开了,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

有一些迹象here表示您无法直接从API中获得所需内容。

但是这个怎么样:用页面的IPartService注册一个IPartListener(或者更好的是,IPartListener2)。然后你应该得到部分开放和部分关闭的消息。从那以后,您可以保留自己的编辑器部件顺序(IEditorPart)。您可以直接使用它,也可以将它与getEditorReferences()的结果相结合。

所以我说的是:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(
   new IPartListener2() {
      private Stack<IWorkbenchPartReference> partStack = new Stack<IworkbenchPartReference>();

      public void partOpened(IWorkbenchPartReference ref) {
          partStack.push(ref);
      }

      public void partClosed(IWorkbenchPartReference ref) {
          partStack.pop(ref);
      }

      /* you'll need to implement or stub out the other methods of IPartListener2 */
      public void partActivated(IWorkbenchpartReference ref) {}
      public void partDeactivated(IWorkbenchpartReference ref) {}
      /* etc */

   }
);

然后你将在你的插件中访问该堆栈。