0

開いているエディターを取得できます

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

このようにしますが、順序付けされていません (常に同じ方法で返されます。どちらのウィンドウが最初でどちらが 2 番目かは関係ありません)。プラグインの場合、開くためにそれらを取得することが重要です。それを行う方法はありますか?

4

1 に答える 1

1

ここには、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 */

   }
);

次に、プラグインでそのスタックにアクセスします。

于 2011-01-04T21:13:40.643 に答える