Tree Viewers : TreeViewer « SWT « Java Tutorial





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;
  }
}










17.62.TreeViewer
17.62.1.Tree Viewers
17.62.2.Using a TreeViewer
17.62.3.Create CheckBoxTreeView and react to CheckStateListener
17.62.4.Create TreeView based on your own tree node structure