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

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

Introduction

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

Prototype

public TreeColumn[] getColumns() 

Source Link

Document

Returns an array of TreeColumns which are the columns in the receiver.

Usage

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 www.j av a  2s  . c  o  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();
}

From source file:org.eclipse.swt.examples.controlexample.TreeTab.java

void resetSortState(final Tree tree) {
    tree.setSortDirection(SWT.NONE);/*from w  ww .j ava 2  s. c  o m*/
    TreeColumn[] columns = tree.getColumns();
    for (TreeColumn column : columns) {
        SelectionListener listener = (SelectionListener) column.getData("SortListener"); //$NON-NLS-1$
        if (listener != null)
            column.removeSelectionListener(listener);
    }
}

From source file:org.eclipse.swt.examples.controlexample.TreeTab.java

/**
 * Sets the initial sort indicator state and adds a listener
 * to cycle through sort states and columns.
 *//*from   ww  w  .j  a v a2s.  c  o  m*/
void initializeSortState(final Tree tree) {
    /* Reset to known state: 'down' on column 0. */
    tree.setSortDirection(SWT.DOWN);
    TreeColumn[] columns = tree.getColumns();
    for (int i = 0; i < columns.length; i++) {
        TreeColumn column = columns[i];
        if (i == 0)
            tree.setSortColumn(column);
        SelectionListener listener = widgetSelectedAdapter(e -> {
            int sortDirection = SWT.DOWN;
            if (e.widget == tree.getSortColumn()) {
                /* If the sort column hasn't changed, cycle down -> up -> none. */
                switch (tree.getSortDirection()) {
                case SWT.DOWN:
                    sortDirection = SWT.UP;
                    break;
                case SWT.UP:
                    sortDirection = SWT.NONE;
                    break;
                }
            } else {
                tree.setSortColumn((TreeColumn) e.widget);
            }
            tree.setSortDirection(sortDirection);
        });
        column.addSelectionListener(listener);
        column.setData("SortListener", listener); //$NON-NLS-1$
    }
}