2012-06-12 16 views
0

내 프로젝트 탐색기보기에 공통 탐색기 프레임 워크 (CNF)를 사용하고 있습니다. 트리 뷰어에 대한 컨텐트 공급자 및 레이블 공급자를 설정했습니다. 내 응용 프로그램에서 내부적으로 데이터가 변경되면 트리보기도 업데이트해야합니다 (예 : 노드 추가, 노드 삭제).트리 뷰어 새로 고침

이 경우 트리 뷰어를 새로 고쳤습니다. 그리고 새로 고침 작업이 성공적으로 작동합니다. 그러나 새로 고침 작업 후 트리 뷰어 선택은 뷰어에서 최상위 부모 노드로 이동합니다. 대신 새로 추가 된 노드 또는 새로 추가 된 노드의 부모 노드에서 선택해야합니다. 어떻게이 일을 성취 할 수 있습니까?

답변

0

수동으로 선택을 설정하고 트리 뷰어에서 공개 할 수

//after the refresh operation 
treeViewer.setSelection(new StructuredSelection(newlyAddedNode, true)); 
+0

안녕 llya, 여러분의 소중한 답변에 대한 Thnks. 하지만 원하는 결과를 얻지 못했습니다. 새로 고침 작업을 수행하면 트리 뷰어가 트리의 루트 노드로 자동으로 축소되고 트리의 첫 번째 노드에서 선택됩니다. –

+0

또한 treeViewer.refresh (node, true)가 업데이트 작업을 수행하는 노드를 새로 고치려고했습니다. 그러나 아무 일도 일어나지 않고 있습니다. 노드가 새로 고쳐지지 않습니다. –

+0

newlyAddedNode 클래스의 #equals 구현을 확인하십시오. –

0

Treeviewer 당신이 당신의 뷰어에서 객체에 대한 해시 코드()와 같음()를 구현해야합니다. 또한 IElementComparer를 뷰어에 제공해야합니다. 이클립스 포럼에

에서 모자 팁 : http://www.eclipse.org/forums/index.php/t/166563/