開いているエディターを取得できます
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()
このようにしますが、順序付けされていません (常に同じ方法で返されます。どちらのウィンドウが最初でどちらが 2 番目かは関係ありません)。プラグインの場合、開くためにそれらを取得することが重要です。それを行う方法はありますか?
開いているエディターを取得できます
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()
このようにしますが、順序付けされていません (常に同じ方法で返されます。どちらのウィンドウが最初でどちらが 2 番目かは関係ありません)。プラグインの場合、開くためにそれらを取得することが重要です。それを行う方法はありますか?
ここには、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 */
}
);
次に、プラグインでそのスタックにアクセスします。