2013-03-11 7 views
2

jFace 마법사가 있는데, 이것을 사용하여 새 프로젝트 유형 eclipse 플러그인을 만듭니다. 아래 이미지에서 볼 수 있듯이 왼쪽에는 트리 뷰어가 하나 있고 오른쪽에는 SWT 그룹이 있습니다. 내가 원했던 것은 사용자가 treeviewer에서 항목 중 하나를 선택할 때, 오른쪽 SWT 그룹에 동적 컨트롤을 생성 할 수 있어야한다는 것입니다. 사용자가 테스트 1을 선택한다고 말하면 오른쪽에 레이블, 텍스트 및 몇 개의 라디오 버튼과 같은 몇 가지 컨트롤을 만들 수 있어야합니다. 마찬가지로 사용자가 테스트 2를 선택하면 오른쪽에 동적 컨트롤을 만들 수 있어야합니다. enter image description hereJFace 마법사에서 동적으로 컨트롤을 생성하는 방법

은 현재 내가 코드를 아래 시도 :

tree.addSelectionListener(new SelectionAdapter() { 
    @Override 
public void widgetSelected(SelectionEvent e) { 
    for (int i = 0; i < selection.length; i++) { 

    String tempStr = selection[i].toString(); 
    tempStr = tempStr.replaceAll("TreeItem \\{", ""); 
    String finalStr = tempStr.replaceAll("\\}", ""); 

     if (finalStr.equals("Test One")) { 
      Button btn = new Button(g2, SWT.NONE); //g2 is right side group 

      btn.setText("Blaaaa"); 

      btn.setVisible(true); 
      container.redraw(); 
     } 

} 

을하지만 실행할 때, 나는 바로 그룹에 아무런 변경 사항을 확인할 수 없습니다. 누군가 내가 잘못하고있는 것을 인도 할 수 있습니까? 필자는 이클립스 개발과 SWT에 익숙하지 않기 때문에 어떤 포인터라도 매우 높이 평가할 것이다.

답변

4

g2 그룹의 레이아웃을 설정하지 않은 것 같습니다. 이것은 컨트롤이 나타나지 않는 일반적인 원인입니다. g2.layout()을 사용하여 새 컨트롤을 만든 후에 제대로 배치되도록 할 수도 있습니다.

또한 StackLayout을 사용하여 볼 수 있습니다. 일단 컨트롤 세트를 만들면 선택 항목이 변경 될 때 파괴되는 대신 모든 컨트롤을 한 번에 숨길 수 있습니다. 사용자가 이전 선택으로 돌아 가면 선택을 전환 할 때 입력 한 데이터를 동일한 상태로 찾을 수 있기 때문에 유용합니다. Here is an example.

+0

좋아, 고맙습니다. 시도하고 업데이트 해 드리겠습니다. :) –

관련 문제