2016-12-20 7 views
0

Eclipse RCP로 작업하고 있습니다. 내가로 구현 한 표준 방법의 createPartControl (복합 부모)과 함께보기가있는 것은 다음과 같습니다컴포지트의 자식을 즉시 삭제하고 SWT에 다시로드 한 후 표시하려면 어떻게해야합니까?

createContent()에서
public void createPartControl(Composite parent) { 

    this.parent = parent; 

    createContent(); 
} 

이 복합 부모가 (뭔가의 상태와 예 : 테이블) 몇 가지 요소를 가져옵니다 나는 그것을 갱신하고 싶다. 따라서 업데이트 버튼이 있습니다. 클릭하면 부모의 모든 자식이 삭제되고 createPartControl (부모) 메서드가 다시 실행되어야합니다. 내 응용 프로그램을 시작하고 업데이트 버튼을 클릭

buttonUpdate = new Button(parent, SWT.NONE); 
buttonUpdate.setText("Update"); 
GridData gridData = new GridData(80, 30); 
buttonUpdate.setLayoutData(gridData); 
buttonUpdate.addListener(SWT.Selection, new Listener() { 
    public void handleEvent(Event e) { 
     switch (e.type) { 
     case SWT.Selection: 
      for (Control control : parent.getChildren()) { 
       control.dispose(); 
      } 
      createPartControl(parent); 
      break; 
     } 
    } 
}); 

는, 윈도우가 비게되지만 새로운 콘텐츠가 나타납니다 :

이는 내 현재 코드입니다. 앱에서 다른보기를 열고 다시 전환하면 업데이트 된 콘텐츠가 표시됩니다. 새로운 콘텐츠를 즉시 보이게 만드는 방법?

답변

0

상위 컴포지트를 다시 레이아웃해야합니다.

를 호출 createPartControl 호출 후

parent.layout(true, true); 

.

+0

죄송합니다. 시간이 겹쳐 게시되었습니다. 하지만 고마워! – LCP

0

알았습니다. 찾았습니다 this page

나를 도와줍니다.