closable이 true로 설정된 viewpart가 있습니다. 사용자가 x를 클릭합니다. viewpart를 숨기고 닫고 싶습니다. 어떻게 할 수 있습니까?x를 클릭 할 때 viewpart 대신 dispose 처리
답변
UI에 기여하는 템플릿으로 앱을 만든 경우 미리 생성 된 패키지 중 하나에 WorkbenchWindowAdvisor 파일이 있어야합니다. 닫을 때 창을 숨기는 정확한 구현 세부 사항에 대해서는 확신 할 수 없지만 응용 프로그램의 WorkbenchWindowAdvisor 구현에서 preWindowShellClose 메서드를 수정해야하는 것처럼 들립니다.
당신이 시도 할 수 있습니다 :
shell
가 Viewpart의 바로 위 부모 쉘입니다
shell.addShellListener(new ShellListener() {
public void shellIconified(ShellEvent e) {
}
public void shellDeiconified(ShellEvent e) {
}
public void shellDeactivated(ShellEvent e) {
}
public void shellClosed(ShellEvent e) {
shell.setVisible(false);
e.doit = false;
}
public void shellActivated(ShellEvent e) {
}
});
. 주목할 주 요점은 e.doit=false
이며, 이는 근본적으로 닫기 이벤트를 무효화합니다.
내 지식으로는 일반적으로 가능하지 않습니다. 기본적으로 Workbench 파트는 편집기가 있거나 열려있는 뷰가있는 Workbench 창의 모든 Perspective에서 공유됩니다. 그래서 당신이 원근법을 전환 할 때 부품의 Composite
은 단순히 부품이 보여야하는 새로운 프레젠테이션 사이트와 일치하도록 크기가 조정됩니다.
특정 시점에 대해 부품을 닫으면 원하는대로 숨길 수 있습니다. 창문의 모든 시각에 대해 파트가 숨겨지면 처리됩니다. 그리고 내가 볼 수있는 한, 그것을 막을 방법이 없습니다.
이것은 가능하지만 힘듭니다!
보기를 닫으면 현재 관점에서 실제로 '숨 깁니다'. 뷰가 어디에도 표시되지 않으면 뷰가 삭제됩니다.
두 가지 관점에서 동일한보기를 포함하여 RCP 응용 프로그램에 2 가지 관점을 추가하여이를 확인할 수 있습니다. 이제 관점 A에서보기를 닫으면 B가 여전히 열려 있기 때문에 처분하지 않습니다.
그래서보기를 삭제하지 않으려면 다른 관점에 포함되어 있는지 확인해야합니다. RCP 응용 프로그램에서 Perspective를 사용하지 않는 경우에는 표시되지 않는 '숨겨진'Perspective를 사용할 수 있지만 모든 숨겨진 뷰를 저장하여 처 리하지 않도록 할 수 있습니다.
How to close a ViewPart in Eclipse?도 참조하십시오. 정확한 반대가 요구됩니다.
- 1. close() 메서드 대신 dispose() 메서드를 사용하여
- 2. jquery 툴팁, 그러나 호버 대신 클릭 할 때
- 3. 이미지를 전환 할 때 클릭 할 때
- 4. ObjectDisposedException 처리 할 수없는 양식을 .Show()로 처리 할 때
- 5. 클릭 할 때 JTable 업데이트
- 6. Dispose() 호출 할 때 객체가 스코프/메소드 종료 됨 vs
- 7. 제품을 클릭 할 때 표시되는 내용 변경
- 8. 중간 마우스 클릭 처리
- 9. 컬렉션을 처리 할 때 예외는 어떻게 처리해야합니까?
- 10. 다른 이미지를 클릭 할 때 이미지가 클릭 할 때 텍스트를 숨길 때
- 11. 처리 방법 Form.MaximumBox 클릭
- 12. Zingchart 클릭 이벤트 처리
- 13. Y를 삽입 할 때 레코드 X를 업데이트하는 가장 좋은 방법
- 14. Helios : ViewPart 도구 모음이 RCP보기에서 복제 됨
- 15. Silverlight InvalidOperationException 링크를 클릭 할 때
- 16. 클릭 할 때 HyperLink NavigteURL을 변경하는 방법
- 17. jQuery : 배경/컨테이너 처리 클릭
- 18. autofac, ASP.NET 통합 및 Dispose
- 19. 크롬 링크 클릭 이벤트 처리
- 20. 스칼라에서 파일을 처리 할 때 java.nio.BufferUnderflowException이 발생했습니다
- 21. asp.net 페이지에서 Dispose()
- 22. FolderBrowserDialog에서 Dispose 메서드를 호출해야합니까?
- 23. Firefox에서 버튼을 클릭 할 때 가로선
- 24. 사용자가 링크를 클릭 할 때 텍스트 표시
- 25. 링크를 클릭 할 때 JavaScript 실행
- 26. 링크를 클릭 할 때 화면을 정적으로 유지
- 27. UIButton을 클릭 할 때 함수를 호출하지 않습니까?
- 28. ToggleButton을 클릭 할 때 선택을 취소하지 않음
- 29. android - Progressbar 버튼을 클릭 할 때 늦게로드
- 30. 버튼을 클릭 할 때 앱이 종료 됨
viewpart가 셸에서 직접 호스팅되는 경우 이는 사실 일 수 있습니다. 이는 일반적으로 Eclipse에서 true가 아닙니다 ... –