문제

사용자가 사용할 수있는 간단한 일식 플러그인을 만들었습니다. TableViewer 해당 리소스에 대한 편집기를 열 수있는 데이터베이스 리소스

따라서 사용자는 편집기 실행의 상향 인스턴스가 0이 될 수 있습니다.

편집기 인스턴스 목록을 얻을 수있는 API가 있습니까?

도움이 되었습니까?

해결책

모든 오픈 편집자에 대한 참조를 얻을 수 있습니다.

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

그런 다음 편집기 유형의 인스턴스를 참조하는 것을 선택하려면 이것을 확인하십시오.

다른 팁

API의 Javadoc에 따르면 워크 벤치에는 여러 개의 창이있을 수 있으며 창에는 여러 페이지가있을 수 있으며 편집자를 공유하지 않습니다.

따라서 모든 열린 편집자를 모두 얻으려면이 라인을 따라 무언가를해야합니다 (오류 확인 등에 제외).

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);
        }
    }
}

그러한 열거가 될 것입니다 탭 순서를 존중하지 않습니다

편집자 열거의 예는 다음과 같습니다.

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;
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top