JFace wraps SWT's Tree widget with a class called TreeViewer.
Creating a TreeViewer
TreeViewer treeViewer = new TreeViewer(shell);
Create a TreeViewer to wrap an existing Tree control, like this:
Tree tree = new Tree(shell, SWT.SINGLE);
TreeViewer treeViewer = new TreeViewer(tree);
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
public class TreeViewerFileFromTree {
public static void main(String[] args) {
FileTreeWindow main = new FileTreeWindow();
}
}
class FileTreeWindow extends ApplicationWindow {
public FileTreeWindow() {
super(null);
// Don't return from open() until window closes
setBlockOnOpen(true);
// Open the main window
open();
// Dispose the display
Display.getCurrent().dispose();
}
protected void configureShell(Shell shell) {
super.configureShell(shell);
// Set the title bar text and the size
shell.setText("File Tree");
shell.setSize(400, 400);
}
protected Control createContents(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new FillLayout());
Tree tree = new Tree(composite, SWT.SINGLE);
for (int i = 0; i < 4; i++) {
TreeItem iItem = new TreeItem(tree, 0);
iItem.setText("TreeItem (0) -" + i);
for (int j = 0; j < 4; j++) {
TreeItem jItem = new TreeItem(iItem, 0);
jItem.setText("TreeItem (1) -" + j);
for (int k = 0; k < 4; k++) {
TreeItem kItem = new TreeItem(jItem, 0);
kItem.setText("TreeItem (2) -" + k);
for (int l = 0; l < 4; l++) {
TreeItem lItem = new TreeItem(kItem, 0);
lItem.setText("TreeItem (3) -" + l);
for (int m = 0; m < 4; m++) {
TreeItem mItem = new TreeItem(lItem, 0);
mItem.setText("TreeItem (3) -" + l);
}
}
}
}
}
TreeViewer treeViewer = new TreeViewer(tree);
return composite;
}
}