2014-04-05 1 views
0

필자는 JFace 트리 뷰어, 테이블 뷰어 및 많은 텍스트 상자가 상주하는 ViewPart를 확장하는 뷰를 구현했습니다. 이 뷰에 SelectionListener를 등록했습니다.이 뷰는 워크 벤치의 특수 도메인 모델을 수신합니다. 이 모델은 EMF 모델로 작성되므로 Ecore 편집기가 활성화되어 있고 모델 인스턴스가 있으면 선택시 데이터 바인딩이 발생하고 트리 뷰어에 입력이 채워집니다.도메인 객체가 수신되는 편집기가 닫힐 때 JFace TreeViewer를 지우는 방법은 무엇입니까?

하지만 일단 입력이 트리 뷰어에 설정되면 도메인 객체가있는 활성 Ecore 편집기를 닫으면 트리 뷰어의 입력이 그대로 유지됩니다. 필요한 것은 편집기에서 선택을 듣는 것이 닫히면 뷰어의 입력을 정리하고 트리 뷰어를 다시 비워야합니다.

아마도이 경우 더 많은 청취 메커니즘이 필요할 수 있습니다. 그러나 어떤 방법에 대해 확신 할 수 없습니까? 누군가가 도울 수 있다면 매우 기쁠 것입니다. 감사!

답변

1

보기에서 IPartListener을 사용하여 워크 벤치의 모든 부분에 대한 변경 사항을 수신 할 수 있습니다.

은보기에 IPartService를 가져옵니다 :

IPartService service = (IPartService)getSite().getService(IPartService.class); 

는 리스너를 추가 :

service.addPartListener(listener); 

뷰의 처분에 리스너를 제거하는 것을 잊지 마세요

.

아마도 partClosed 및/또는 partDeactivated 방법에 가장 관심이있을 것입니다.

또한 추가 이벤트가있는 IPartListener2도 있습니다.

관련 문제