2013-01-08 2 views
1

Treeviewer에 루트 노드로 디렉토리를 추가하는 방법. 현재 디렉토리의 파일 구조를 표시하고 싶습니다. 즉, C:/documents입니다. 나는 cureent 시스템의 모든 파일을 표시하는 프로그램을 가지고있다. 하지만 특정 디렉토리에서만 표시하고 싶습니다. 현재 디렉토리에서만 표시하고 싶습니다. 예를 들어 시스템에 c, d, e, f 드라이브가있는 경우. C 드라이브 만 표시하고 싶습니다.Treeviewer에서 루트 노드로 디렉토리를 추가하는 방법은 무엇입니까?

final TreeViewer tv = new TreeViewer(composite); 
tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); 
tv.setContentProvider(new FileTreeContentProvider()); 
tv.setLabelProvider(new FileTreeLabelProvider()); 
tv.setInput("null"); // pass a non-null that will be ignored 

입력으로 디렉토리를 설정하는 방법은 무엇입니까? setInput()에 무엇을 전달해야합니까?

+0

당신이 당신의 요구 사항을 설명 할 수있다 : 예를 들어 그것은 java.io.File 객체의 모양은 당신의 FileTreeContentProvidergetElements(Object) 방법은 다음 경우? – Arshad

+0

API의'FileTreeContentProvider'인가요? 당신이 쓴 학급입니까? –

답변

2

먼저 루트가 될 디렉토리에 viewer의 입력을 설정하십시오.

public Object[] getElements(Object inputElement) { 
    return getChildren(inputElement); 
} 

public Object[] getChildren(Object parentElement) { 
    File dir = (File) parentElement; 
    return dir.listFiles(); 
} 
관련 문제