JFace에서 트리 뷰어를 만들고 있는데 뭔가를 달성하고 싶습니다.빈 부모 숨기기 - JFace의 TreeViewer
필터를 사용합니다. 필터는 잘 작동하지만 완벽하지는 않습니다. filter.expandAll()
메서드를 사용하면 필터가 트리의 모든 항목을 필터링하지만 실제로는 짜증이납니다. 트리의 모든 항목을 필터링하지만 아이템 부모를 숨기지 않고 이제는 비어있게됩니다.
예 : "일반 /지도/새로운"당신이 볼 수 있듯이
, 필터와 일치 하나의 항목 만이있다. 그러나 실제로 부모가 모두 아이들을 포함하지는 않았지만 부모의 모든 모습이 나타납니다. 내 필터의 코드
부분 : 위에서 볼 수 있듯이
if (element instanceof HotkeyCategory) {
return true;
} else if (element instanceof HotkeyItem) {
return ((HotkeyItem) element).getLabel().toLowerCase()
.matches(searchString.toLowerCase());
}
return false;
, 나는 아이들의 부모를 모두 허용합니다. 그러나 어쩌면 빈 부모를 숨기는 자동적 인 방법이 있을까요?
몇 가지 아이디어가 있습니다. 트리 뷰어로 리다이렉트하기 전에 필터링을 수행하고 허용 된 항목과 부모를 사용하여 ArrayList를 만들거나 모든 항목과 모든 부모에게 boolean show;
을 추가하고 필터로 반환하십시오. 그러나 이러한 방법으로 만족스럽지 않습니다. 그들은이 작업을하기에는 너무 복잡합니다.
내 질문은 : 내가 원하는 것을 성취 할 수있는 간단한 방법이 있습니까?
감사합니다.
기타 : http://stackoverflow.com/questions/1035560/how-best-to-use-viewerfilter-on-a-treeviewer –