1

にルートノードとしてディレクトリを追加する方法Treeviewer。現在のディレクトリ、つまりからファイル構造を表示したいC:/documents。現在のシステムのすべてのファイルを表示するプログラムがあります。しかし、私は特定のディレクトリからのみ表示したいと思います。現在のディレクトリからのみ表示したい。たとえば、システムにc、d、e、fドライブがある場合。cドライブのみを表示したい。

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()ますか?

4

1 に答える 1

2

まず、viewerルートを設定するディレクトリにの入力を設定します。たとえば、それがjava.io.Fileオブジェクトの場合、FileTreeContentProvider'getElements(Object)メソッドは次のようになります。

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

public Object[] getChildren(Object parentElement) {
    File dir = (File) parentElement;
    return dir.listFiles();
}
于 2013-01-08T11:13:39.787 に答える