2011-07-02 4 views
1

두 개의 Eclipse 플러그인 (사용자 정의 텍스트 편집기 플러그인과 두 개의 다른 프로젝트로서보기 플러그인)이 있습니다. 텍스트 편집기에는 모든 종속 소스 파일의 '함수'색인을 작성하는 작업이 있습니다. 이 작업이 끝나면 뷰 플러그인의 테이블 뷰어에 인덱스 ('함수'목록)를 보여주고 싶습니다. 이것을 달성하는 가장 좋은 방법은 무엇이라고 생각하십니까? 뷰는 편집기를 경청 할 필요가 없습니다. 에디터 플러그인의 액션이 실행될 때만 업데이트되어야합니다.텍스트 편집기 플러그인의 작업에서보기 플러그인 업데이트

텍스트 편집기 플러그인이 뷰 플러그인에서 tableViewer를 채우기 위해 뷰 유형을 참조해야하고 뷰 플러그인이 tableviewer의 contentProvider에서 편집기 유형을 참조해야하므로 뷰 플러그인에서 패키지를 내보내고 다른 패키지를 내 보냈습니다. 사이클은

가 어떻게이 문제를 해결 할 수 프로젝트

의 빌드 경로에서 발견 된

: 그러나 나는 빌드 경로 오류는 무엇입니까? 또는 이것이 나쁜 접근이라면, 나는 더 좋은 방법이 있습니까?

감사합니다.

tk.

답변

1

우선, 플러그인 간의 순환 참조는 허용되지 않습니다. 따라서 플러그인간에 정보를 양방향으로 공유해야하는 경우 방향 중 하나에 대한 리스너 패턴을 갖기 위해 종종 문제를 리팩토링해야합니다.

이 경우 기존 개요보기에 사용 된 것과 같은 구조로 표시됩니다. 따라서 뷰는 하위 편집기 인 PageBookView에 참여하는 편집기가 데이터를 뷰에 제공하는 방법에 대한 다소 간단한 프로토콜을 가져야합니다.

기본적으로 개요보기의 경우와 동일하게 수행하고 편집기 자체가 적응을 통해보기의 내용을 제공하게합니다. 윤곽선보기는 현재 편집기를 추적하여이를 수행하며, 새 편집기가 "본"때마다 윤곽보기는 IEditorPartIContentOutlinePage으로 변경하려고 시도합니다. 편집기는이 특정 편집기의보기 페이지에서 필요할 SWT 위젯 및 수신기 등을 담당합니다 ... ContentOutline에 대한 JavaDoc을 자세히 살펴보십시오 - 관련된 프로토콜에 대한 설명입니다.

"열린"편집기가 여러 개있는 경우 새보기에는 자동으로 활성 편집기에 대한 관련 정보가 표시되며 마지막으로 작업을 실행했을 때 활성화 된 편집기가 "단지"표시되지는 않습니다. 이 계획, 액션 것이다 단순히

  • 쇼 (및 활성화) 새보기로

    . 이는 IWorkbenchPage.showView(...)을 통해 이루어질 수 있습니다.

  • 제공 페이지에서 해당보기를 업데이트하도록 요청하십시오.
+0

우수. 고맙습니다. – timk