2011-01-04 5 views
0

내가 열 얻을 수있는 편집자올바른 순서로 열린 편집자를 얻는 방법?

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

이러한 방법으로, 그러나 순서 붙일는 (항상 제 1 및 제 2 어느 것이 어느 창 나던 문제, 같은 방법으로 반환). 플러그인의 경우, 플러그인을 열 때 순서대로 가져 오는 것이 중요하므로 구현할 방법이 있습니까?

답변

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 */ 

    } 
); 

그런 다음 당신은 당신의 플러그인에 해당 스택에 액세스 할 수 있습니다 :

그래서 내가 좋아하는 뭔가에 대해 이야기하고있다.

+0

위대한 아이디어, 그것을위한 thx. – IAdapter