2011-07-01 6 views

답변

0

UI에 기여하는 템플릿으로 앱을 만든 경우 미리 생성 된 패키지 중 하나에 WorkbenchWindowAdvisor 파일이 있어야합니다. 닫을 때 창을 숨기는 정확한 구현 세부 사항에 대해서는 확신 할 수 없지만 응용 프로그램의 WorkbenchWindowAdvisor 구현에서 preWindowShellClose 메서드를 수정해야하는 것처럼 들립니다.

0

당신이 시도 할 수 있습니다 :

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이며, 이는 근본적으로 닫기 이벤트를 무효화합니다.

+0

viewpart가 셸에서 직접 호스팅되는 경우 이는 사실 일 수 있습니다. 이는 일반적으로 Eclipse에서 true가 아닙니다 ... –

0

내 지식으로는 일반적으로 가능하지 않습니다. 기본적으로 Workbench 파트는 편집기가 있거나 열려있는 뷰가있는 Workbench 창의 모든 Perspective에서 공유됩니다. 그래서 당신이 원근법을 전환 할 때 부품의 Composite은 단순히 부품이 보여야하는 새로운 프레젠테이션 사이트와 일치하도록 크기가 조정됩니다.

특정 시점에 대해 부품을 닫으면 원하는대로 숨길 수 있습니다. 창문의 모든 시각에 대해 파트가 숨겨지면 처리됩니다. 그리고 내가 볼 수있는 한, 그것을 막을 방법이 없습니다.

1

이것은 가능하지만 힘듭니다!

보기를 닫으면 현재 관점에서 실제로 '숨 깁니다'. 뷰가 어디에도 표시되지 않으면 뷰가 삭제됩니다.

두 가지 관점에서 동일한보기를 포함하여 RCP 응용 프로그램에 2 가지 관점을 추가하여이를 확인할 수 있습니다. 이제 관점 A에서보기를 닫으면 B가 여전히 열려 있기 때문에 처분하지 않습니다.

그래서보기를 삭제하지 않으려면 다른 관점에 포함되어 있는지 확인해야합니다. RCP 응용 프로그램에서 Perspective를 사용하지 않는 경우에는 표시되지 않는 '숨겨진'Perspective를 사용할 수 있지만 모든 숨겨진 뷰를 저장하여 처 리하지 않도록 할 수 있습니다.

How to close a ViewPart in Eclipse?도 참조하십시오. 정확한 반대가 요구됩니다.

관련 문제