2010-06-06 4 views
2

이 질문은 사소한 것처럼 들릴지 모르지만 문제가 해결되지 않을 경우 도움을 요청하십시오. 그래서, 여기 있습니다 : 나는 좋은 이유 때문에 CheckboxTreeViewer을 사용하고 있습니다. 나는 일부 클래스 사용을 위해 google-it을 사용했으며, 현재 선택된 노드의 모든 하위 항목을 확인/선택 취소 할 수 있으며 StyledCellLabelProvider 공급자의 사용자 정의 구현을 사용하여 실시간 검색 후에 선택 항목을 보존 할 수 있습니다. 지금까지 좋은 모든 것. 그러나 지금까지 내가 위젯을 표시하고 뷰어의 setInput() 메서드를 호출 한 후 트리 뷰어의 하나 이상의 요소를 프로그래밍 방식으로 선택할 수 없습니다.Jface의 CheckboxTreeViewer 초기 선택을 설정하는 방법

예를 들어 트리에 10 개의 주 노드가 있고 노드 6에 5 개의 리프가 있다고 가정 해 봅시다. 제 질문은 세 번째 리프의 상태를 어떻게 설정합니까?

감사합니다.

답변

0

이것 좀보세요 : http://akravets.blogspot.com/2009/08/disabling-nodes-in-checkboxtreeviewer.html, 도움이 될 수 있습니다. 당신이 찾고있는 것에 대한 100 % 해결책이 아닐지 모르지만, 나는 몇몇 노드들을 건너 뛰는 방법을 설명한다.

+0

답장을 보내 주셔서 감사합니다. 불행히도, 지정된 링크에서 발견 된 코드에 의해 확인 된 것처럼, checkboxtreeviewer를 사용하는 것은 내 취향에 너무 복잡하고 퍼지기 쉽습니다. 대신, 나는 다양한 선택 모드를 허용하기 위해 일반 treeviewer를 적용하고 그 나무에서 검색을 가능하게하기 위해 텍스트 영역을 만들었습니다. 검색은 뷰어의 모델에서 수행되며 선택 모드는 뷰어의 컨트롤 인 일반 트리에서 향상됩니다. 그때 해결 된 문제와 강한 느낌이 나와 함께, checkboxtreeviewer를 다시 사용하지 않는 것 : D. 건배. – hypercube

3

트리 뷰어에 대해 ICheckedStateProvider를 사용해야합니다. 예 :

checkboxTreeViewer.setCheckStateProvider(new TreeCheckedStatedProvider()); 

private class TreeCheckedStatedProvider implements ICheckStateProvider { 

    @Override 
    public boolean isChecked(Object element) { 
     return false; 
    } 

    @Override 
    public boolean isGrayed(Object element) { 
     return false; 
    } 

} 
관련 문제