Example usage for org.eclipse.swt.widgets Tree Tree

List of usage examples for org.eclipse.swt.widgets Tree Tree

Introduction

In this page you can find the example usage for org.eclipse.swt.widgets Tree Tree.

Prototype

public Tree(Composite parent, int style) 

Source Link

Document

Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.

Usage

From source file:org.eclipse.swt.snippets.Snippet73.java

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 73");
    final Tree tree = new Tree(shell, SWT.BORDER | SWT.MULTI);
    final Menu menu = new Menu(shell, SWT.POP_UP);
    tree.setMenu(menu);/*  ww  w  .ja  v  a2  s.  c  o m*/
    for (int i = 0; i < 12; i++) {
        TreeItem treeItem = new TreeItem(tree, SWT.NONE);
        treeItem.setText("Item " + i);
        MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
        menuItem.setText(treeItem.getText());
    }
    menu.addListener(SWT.Show, event -> {
        MenuItem[] menuItems = menu.getItems();
        TreeItem[] treeItems = tree.getSelection();
        for (int i = 0; i < menuItems.length; i++) {
            String text = menuItems[i].getText();
            int index = 0;
            while (index < treeItems.length) {
                if (treeItems[index].getText().equals(text))
                    break;
                index++;
            }
            menuItems[i].setEnabled(index != treeItems.length);
        }
    });
    Rectangle clientArea = shell.getClientArea();
    tree.setBounds(clientArea.x, clientArea.y, 200, 200);
    shell.setSize(300, 300);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:MenuItemEnableDynamically.java

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    final Tree tree = new Tree(shell, SWT.BORDER | SWT.MULTI);
    final Menu menu = new Menu(shell, SWT.POP_UP);
    tree.setMenu(menu);/*from  w  ww .  j a v  a  2s  .c o m*/
    for (int i = 0; i < 12; i++) {
        TreeItem treeItem = new TreeItem(tree, SWT.NONE);
        treeItem.setText("Item " + i);
        MenuItem menuItem = new MenuItem(menu, SWT.PUSH);
        menuItem.setText(treeItem.getText());
    }
    menu.addListener(SWT.Show, new Listener() {
        public void handleEvent(Event event) {
            MenuItem[] menuItems = menu.getItems();
            TreeItem[] treeItems = tree.getSelection();
            for (int i = 0; i < menuItems.length; i++) {
                String text = menuItems[i].getText();
                int index = 0;
                while (index < treeItems.length) {
                    if (treeItems[index].getText().equals(text))
                        break;
                    index++;
                }
                menuItems[i].setEnabled(index != treeItems.length);
            }
        }
    });
    tree.setSize(200, 200);
    shell.setSize(300, 300);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet61.java

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 61");
    shell.setLayout(new FillLayout());
    final Tree tree = new Tree(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
    for (int i = 0; i < 4; i++) {
        TreeItem item0 = new TreeItem(tree, 0);
        item0.setText("Item " + i);
        for (int j = 0; j < 4; j++) {
            TreeItem item1 = new TreeItem(item0, 0);
            item1.setText("SubItem " + i + " " + j);
            for (int k = 0; k < 4; k++) {
                TreeItem item2 = new TreeItem(item1, 0);
                item2.setText("SubItem " + i + " " + j + " " + k);
            }/* w w  w.  j  av a2  s  . c om*/
        }
    }
    tree.addListener(SWT.Selection, e -> {
        String string = "";
        TreeItem[] selection = tree.getSelection();
        for (int i = 0; i < selection.length; i++)
            string += selection[i] + " ";
        System.out.println("Selection={" + string + "}");
    });
    tree.addListener(SWT.DefaultSelection, e -> {
        String string = "";
        TreeItem[] selection = tree.getSelection();
        for (int i = 0; i < selection.length; i++)
            string += selection[i] + " ";
        System.out.println("DefaultSelection={" + string + "}");
    });
    tree.addListener(SWT.Expand, e -> System.out.println("Expand={" + e.item + "}"));
    tree.addListener(SWT.Collapse, e -> System.out.println("Collapse={" + e.item + "}"));
    tree.getItems()[0].setExpanded(true);
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet202.java

public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Snippet 202");
    shell.setLayout(new FillLayout());
    final Tree tree = new Tree(shell, SWT.VIRTUAL | SWT.BORDER);
    tree.addListener(SWT.SetData, event -> {
        TreeItem item = (TreeItem) event.item;
        TreeItem parentItem = item.getParentItem();
        String text = null;//ww  w .j  ava2s .c o  m
        if (parentItem == null) {
            text = "node " + tree.indexOf(item);
        } else {
            text = parentItem.getText() + " - " + parentItem.indexOf(item);
        }
        item.setText(text);
        item.setItemCount(10);
    });
    tree.setItemCount(20);
    shell.setSize(400, 300);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet170.java

public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Snippet 170");
    shell.setLayout(new FillLayout());
    Tree tree = new Tree(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    tree.setHeaderVisible(true);/*from   ww w. j a v a  2  s  . c o m*/
    TreeColumn column1 = new TreeColumn(tree, SWT.LEFT);
    column1.setText("Column 1");
    column1.setWidth(200);
    TreeColumn column2 = new TreeColumn(tree, SWT.CENTER);
    column2.setText("Column 2");
    column2.setWidth(200);
    TreeColumn column3 = new TreeColumn(tree, SWT.RIGHT);
    column3.setText("Column 3");
    column3.setWidth(200);
    for (int i = 0; i < 4; i++) {
        TreeItem item = new TreeItem(tree, SWT.NONE);
        item.setText(new String[] { "item " + i, "abc", "defghi" });
        for (int j = 0; j < 4; j++) {
            TreeItem subItem = new TreeItem(item, SWT.NONE);
            subItem.setText(new String[] { "subitem " + j, "jklmnop", "qrs" });
            for (int k = 0; k < 4; k++) {
                TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
                subsubItem.setText(new String[] { "subsubitem " + k, "tuv", "wxyz" });
            }
        }
    }
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet291.java

public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 291");
    shell.setLayout(new FillLayout());
    final Tree tree = new Tree(shell, SWT.BORDER);
    for (int i = 0; i < 5; i++) {
        TreeItem treeItem = new TreeItem(tree, SWT.NONE);
        treeItem.setText("item" + i);
        for (int j = 0; j < 3; j++) {
            TreeItem subItem = new TreeItem(treeItem, SWT.NONE);
            subItem.setText("item" + i + j);
        }//from  ww w .  j a  v  a2  s.  c  om
    }
    tree.getAccessible().addAccessibleListener(new AccessibleAdapter() {
        @Override
        public void getName(AccessibleEvent e) {
            if (e.childID == ACC.CHILDID_SELF) {
                e.result = "This is the Accessible Name for the Tree";
            } else {
                TreeItem item = (TreeItem) display.findWidget(tree, e.childID);
                if (item != null) {
                    e.result = "This is the Accessible Name for the TreeItem: " + item.getText();
                }
            }
        }
    });
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet302.java

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 302");
    FillLayout layout = new FillLayout();
    layout.marginHeight = 10;/*from   ww w  . j a  v  a2  s. c  om*/
    layout.marginWidth = 10;
    shell.setLayout(layout);
    Tree tree = new Tree(shell, SWT.BORDER | SWT.NO_SCROLL);
    for (int i = 0; i < 10; i++) {
        TreeItem item = new TreeItem(tree, SWT.NONE);
        item.setText("Item " + i);
    }
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet358.java

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 358");
    shell.setLayout(new GridLayout());
    final Tree tree = new Tree(shell, SWT.NONE);
    tree.setLayoutData(new GridData(200, 200));
    for (int i = 0; i < 9; i++) {
        TreeItem item = new TreeItem(tree, SWT.NONE);
        item.setText("root-level item " + i);
        for (int j = 0; j < 9; j++) {
            new TreeItem(item, SWT.NONE).setText("item " + i + "-" + j);
        }/*from  w w w  .  jav a2s. c  om*/
    }

    Button button = new Button(shell, SWT.PUSH);
    button.setText("Print item visibilities");
    button.addListener(SWT.Selection, event -> {
        Rectangle treeBounds = new Rectangle(0, 0, 0, 0);
        Point treeSize = tree.getSize();
        treeBounds.width = treeSize.x;
        treeBounds.height = treeSize.y;
        TreeItem[] rootItems = tree.getItems();
        for (int i = 0; i < rootItems.length; i++) {
            TreeItem rootItem = rootItems[i];
            System.out.println(rootItem.getText() + " is at least partially visible? "
                    + treeBounds.intersects(rootItem.getBounds()));
            TreeItem[] childItems = rootItem.getItems();
            for (int j = 0; j < childItems.length; j++) {
                TreeItem childItem = childItems[j];
                System.out.println(childItem.getText() + " is at least partially visible? "
                        + treeBounds.intersects(childItem.getBounds()));
            }
        }
    });

    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet8.java

public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Lazy Tree");
    shell.setLayout(new FillLayout());
    final Tree tree = new Tree(shell, SWT.BORDER);
    File[] roots = File.listRoots();
    for (int i = 0; i < roots.length; i++) {
        TreeItem root = new TreeItem(tree, 0);
        root.setText(roots[i].toString());
        root.setData(roots[i]);//from ww  w. j  a  v a 2 s  .  c  om
        new TreeItem(root, 0);
    }
    tree.addListener(SWT.Expand, event -> {
        final TreeItem root = (TreeItem) event.item;
        TreeItem[] items = root.getItems();
        for (int i1 = 0; i1 < items.length; i1++) {
            if (items[i1].getData() != null)
                return;
            items[i1].dispose();
        }
        File file = (File) root.getData();
        File[] files = file.listFiles();
        if (files == null)
            return;
        for (int i2 = 0; i2 < files.length; i2++) {
            TreeItem item = new TreeItem(root, 0);
            item.setText(files[i2].getName());
            item.setData(files[i2]);
            if (files[i2].isDirectory()) {
                new TreeItem(item, 0);
            }
        }
    });
    Point size = tree.computeSize(300, SWT.DEFAULT);
    int width = Math.max(300, size.x);
    int height = Math.max(300, size.y);
    shell.setSize(shell.computeSize(width, height));
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:org.eclipse.swt.snippets.Snippet193.java

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 193");
    shell.setLayout(new RowLayout(SWT.HORIZONTAL));
    final Tree tree = new Tree(shell, SWT.BORDER | SWT.CHECK);
    tree.setLayoutData(new RowData(-1, 300));
    tree.setHeaderVisible(true);/*from ww  w  .j  av  a 2s  .  co m*/
    TreeColumn column = new TreeColumn(tree, SWT.LEFT);
    column.setText("Column 0");
    column = new TreeColumn(tree, SWT.CENTER);
    column.setText("Column 1");
    column = new TreeColumn(tree, SWT.LEFT);
    column.setText("Column 2");
    column = new TreeColumn(tree, SWT.RIGHT);
    column.setText("Column 3");
    column = new TreeColumn(tree, SWT.CENTER);
    column.setText("Column 4");
    for (int i = 0; i < 5; i++) {
        TreeItem item = new TreeItem(tree, SWT.NONE);
        String[] text = new String[] { i + ":0", i + ":1", i + ":2", i + ":3", i + ":4" };
        item.setText(text);
        for (int j = 0; j < 5; j++) {
            TreeItem subItem = new TreeItem(item, SWT.NONE);
            text = new String[] { i + "," + j + ":0", i + "," + j + ":1", i + "," + j + ":2",
                    i + "," + j + ":3", i + "," + j + ":4" };
            subItem.setText(text);
            for (int k = 0; k < 5; k++) {
                TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
                text = new String[] { i + "," + j + "," + k + ":0", i + "," + j + "," + k + ":1",
                        i + "," + j + "," + k + ":2", i + "," + j + "," + k + ":3",
                        i + "," + j + "," + k + ":4" };
                subsubItem.setText(text);
            }
        }
    }
    Listener listener = e -> System.out.println("Move " + e.widget);
    TreeColumn[] columns = tree.getColumns();
    for (int i = 0; i < columns.length; i++) {
        columns[i].setWidth(100);
        columns[i].setMoveable(true);
        columns[i].addListener(SWT.Move, listener);
    }
    Button b = new Button(shell, SWT.PUSH);
    b.setText("invert column order");
    b.addListener(SWT.Selection, e -> {
        int[] order = tree.getColumnOrder();
        for (int i = 0; i < order.length / 2; i++) {
            int temp = order[i];
            order[i] = order[order.length - i - 1];
            order[order.length - i - 1] = temp;
        }
        tree.setColumnOrder(order);
    });
    shell.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}