2016-12-21 2 views
0

JFace CheckboxTreeviewer를 사용하고 ICheckStateListener를 추가하여 검사 된 요소의 결과를 가져 왔습니다.CheckboxTreeviewer는 이전에 다시로드 한 후에 검사 된 요소를 설정했습니다.

private HashSet<Object> checkElement=new HashSet<Object>(); 
checkboxTreeViewer.addCheckStateListener(new ICheckStateListener() { 

     @Override 
     public void checkStateChanged(CheckStateChangedEvent event) { 
      String childNode=null; 
      String rootNode=null; 
      Object changed = event.getElement(); 
      if(changed instanceof ChildFacetNodeVo){ 
       checkElement.add(changed); 
       ChildFacetNodeVo childFacetNodeVo=(ChildFacetNodeVo)changed;      
       childNode=childFacetNodeVo.getLabelFacet(); 
       rootNode=childFacetNodeVo.getParent(); 
       //here to get a new result after element checked and put new result to checkboxtreeviewer 
       List<RootFacetNodeVo> facetNodeVos=createFacetFilter(rootNode,childNode); 
       if(facetNodeVos!=null){   

        checkboxTreeViewer.setInput(facetNodeVos);         
        checkboxTreeViewer.expandToLevel(3); 
        checkboxTreeViewer.setCheckedElements(checkElement.toArray()); 
       } 
      }     
     } 
    }); 

을 다음과 같이 코드는 내가 이전에 확인 요소가 선택 해제하지해야 새 요소를 선택한 경우 지금은 필요이다. CheckboxTreeviewer에서 새 입력을 설정할 때 아무 것도 표시되지 않습니다. 그래서 어떻게 checkboxTreeviewer에 prevously 체크 요소를 설정합니까. 예를

p1 
    -----A1 - previous checked 
    -----A2 
    -----A3 
    -----A4 
    -----A5 
p1 
    -----A6 
    -----A7 
    -----A8 - previous checked 
    -----A8 
    -----A9 
p1 
    -----A10 
    -----A11 
+0

나는 많은 문제가 Google 내 문제가 여전히 해결되지 않습니다. –

답변

0

당신이 호출 할 경우에 대한 는 setCheckedElements 당신은 당신이 지정한 배열에 확인해야합니다 모든 것을 포함해야합니다.

트리에 들어가기 위해 새 개체 집합을 만드는 것처럼 보이므로 이러한 새 항목 중 어떤 항목을 검사해야하는지 결정해야합니다.

이전 체크 된 요소를 가져 오려면 checkboxTreeViewer.getCheckedElements()으로 전화를 걸 수 있습니다 (새 입력을 설정하기 전에 수행). 이렇게하면 어떤 새로운 요소를 점검해야하는지 알아낼 수 있습니다.

+0

@ greg-449 답장을 보내 주셔서 감사합니다. 그러나 여전히 내 문제는 해결되지 않았습니다. –

+1

@RameshwarNagpure 그렇다면 현재 질문의 정보를 통해 알 수있는 것보다 더 많은 정보로 새로운 질문을해야 할 것입니다. 우리는 마술사가 아니며 정보가없는 문제를 해결할 수 없습니다. –

+0

이 링크에 대한 내 질문을 찾아주세요 [CheckBoxTreeviewer는 새 객체 세트를 만들 때 이전에 체크 된 요소를 설정했습니다.] (http://stackoverflow.com/questions/41267253/checkboxtreeviewer-set-old-checked-element-on-creating-new- 객체 집합) –

관련 문제