【问题标题】:How to get opened Editors in right Order?如何以正确的顺序打开编辑器?
【发布时间】:2011-01-04 09:59:56
【问题描述】:

我可以打开编辑器

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

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

【问题讨论】:

    标签: eclipse text-editor pde eclipse-plugin


    【解决方案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 */
    
       }
    );
    

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

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多