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

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

Introduction

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

Prototype

public int getHeaderHeight() 

Source Link

Document

Returns the height of the receiver's header

Usage

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

public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 312");
    shell.setLayout(new FillLayout());

    final Tree tree = new Tree(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
    tree.setHeaderVisible(true);/*from   w w  w  .j  a v  a  2  s  .com*/
    final Menu headerMenu = new Menu(shell, SWT.POP_UP);
    final TreeColumn columnName = new TreeColumn(tree, SWT.NONE);
    columnName.setText("Name");
    columnName.setWidth(150);
    createMenuItem(headerMenu, columnName);
    final TreeColumn columnSize = new TreeColumn(tree, SWT.NONE);
    columnSize.setText("Size");
    columnSize.setWidth(150);
    createMenuItem(headerMenu, columnSize);
    final TreeColumn columnType = new TreeColumn(tree, SWT.NONE);
    columnType.setText("Type");
    columnType.setWidth(150);
    createMenuItem(headerMenu, columnType);
    final TreeColumn columnDate = new TreeColumn(tree, SWT.NONE);
    columnDate.setText("Date");
    columnDate.setWidth(150);
    createMenuItem(headerMenu, columnDate);
    final TreeColumn columnOwner = new TreeColumn(tree, SWT.NONE);
    columnOwner.setText("Owner");
    columnOwner.setWidth(0);
    columnOwner.setResizable(false);
    createMenuItem(headerMenu, columnOwner);

    for (int i = 0; i < files.length; i++) {
        TreeItem item = new TreeItem(tree, SWT.NONE);
        item.setText(files[i]);
        TreeItem subItem = new TreeItem(item, SWT.NONE);
        subItem.setText("node");
    }

    final Menu treeMenu = new Menu(shell, SWT.POP_UP);
    MenuItem item = new MenuItem(treeMenu, SWT.PUSH);
    item.setText("Open");
    item = new MenuItem(treeMenu, SWT.PUSH);
    item.setText("Open With");
    new MenuItem(treeMenu, SWT.SEPARATOR);
    item = new MenuItem(treeMenu, SWT.PUSH);
    item.setText("Cut");
    item = new MenuItem(treeMenu, SWT.PUSH);
    item.setText("Copy");
    item = new MenuItem(treeMenu, SWT.PUSH);
    item.setText("Paste");
    new MenuItem(treeMenu, SWT.SEPARATOR);
    item = new MenuItem(treeMenu, SWT.PUSH);
    item.setText("Delete");

    tree.addListener(SWT.MenuDetect, event -> {
        Point pt = display.map(null, tree, new Point(event.x, event.y));
        Rectangle clientArea = tree.getClientArea();
        boolean header = clientArea.y <= pt.y && pt.y < (clientArea.y + tree.getHeaderHeight());
        tree.setMenu(header ? headerMenu : treeMenu);
    });

    /* IMPORTANT: Dispose the menus (only the current menu, set with setMenu(), will be automatically disposed) */
    tree.addListener(SWT.Dispose, event -> {
        headerMenu.dispose();
        treeMenu.dispose();
    });

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

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

static void Scroll(Tree tree, int x, int y) {
    TreeItem item = tree.getItem(new Point(x, y));
    if (item == null)
        return;/* ww w  . ja  v a2  s.com*/
    Rectangle area = tree.getClientArea();
    int headerHeight = tree.getHeaderHeight();
    int itemHeight = tree.getItemHeight();
    TreeItem nextItem = null;
    if (y < area.y + headerHeight + 2 * itemHeight) {
        nextItem = PreviousItem(tree, item);
    }
    if (y > area.y + area.height - 2 * itemHeight) {
        nextItem = NextItem(tree, item);
    }
    if (nextItem != null)
        tree.showItem(nextItem);
}