Example usage for org.eclipse.swt.widgets Display map

List of usage examples for org.eclipse.swt.widgets Display map

Introduction

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

Prototype

public Rectangle map(Control from, Control to, Rectangle rectangle) 

Source Link

Document

Maps a point from one coordinate system to another.

Usage

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

public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 276");
    shell.setBounds(200, 200, 400, 400);
    Label label = new Label(shell, SWT.NONE);
    label.setText("click in shell to print display-relative coordinate");
    Listener listener = event -> {//from   w  ww  . j  av a  2  s  .  co m
        Point point = new Point(event.x, event.y);
        System.out.println(display.map((Control) event.widget, null, point));
    };
    shell.addListener(SWT.MouseDown, listener);
    label.addListener(SWT.MouseDown, listener);
    Rectangle clientArea = shell.getClientArea();
    label.setLocation(clientArea.x, clientArea.y);
    label.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:Snippet31.java

public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setSize(200, 200);/*from  w  w  w.j a  va  2s  .co  m*/
    shell.open();
    Listener listener = new Listener() {
        Point point = null;

        static final int JITTER = 8;

        public void handleEvent(Event event) {
            switch (event.type) {
            case SWT.MouseDown:
                point = new Point(event.x, event.y);
                break;
            case SWT.MouseMove:
                if (point == null)
                    return;
                int deltaX = point.x - event.x, deltaY = point.y - event.y;
                if (Math.abs(deltaX) < JITTER && Math.abs(deltaY) < JITTER) {
                    return;
                }
                Tracker tracker = new Tracker(display, SWT.NONE);
                Rectangle rect = display.map(shell, null, shell.getClientArea());
                rect.x -= deltaX;
                rect.y -= deltaY;
                tracker.setRectangles(new Rectangle[] { rect });
                tracker.open();
                // FALL THROUGH
            case SWT.MouseUp:
                point = null;
                break;
            }
        }
    };
    shell.addListener(SWT.MouseDown, listener);
    shell.addListener(SWT.MouseMove, listener);
    shell.addListener(SWT.MouseUp, listener);
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

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

public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Snippet 31");
    shell.setSize(200, 200);/*from  w  w  w  . ja va  2 s.co m*/
    shell.open();
    Listener listener = new Listener() {
        Point point = null;
        static final int JITTER = 8;

        @Override
        public void handleEvent(Event event) {
            switch (event.type) {
            case SWT.MouseDown:
                point = new Point(event.x, event.y);
                break;
            case SWT.MouseMove:
                if (point == null)
                    return;
                int deltaX = point.x - event.x, deltaY = point.y - event.y;
                if (Math.abs(deltaX) < JITTER && Math.abs(deltaY) < JITTER) {
                    return;
                }
                tracker = new Tracker(display, SWT.NONE);
                Rectangle rect = display.map(shell, null, shell.getClientArea());
                rect.x -= deltaX;
                rect.y -= deltaY;
                tracker.setRectangles(new Rectangle[] { rect });
                tracker.open();
                //FALL THROUGH
            case SWT.MouseUp:
                point = null;
                if (tracker != null) {
                    tracker.dispose();
                    tracker = null;
                }
                break;
            }
        }
    };
    shell.addListener(SWT.MouseDown, listener);
    shell.addListener(SWT.MouseMove, listener);
    shell.addListener(SWT.MouseUp, listener);
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

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

public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Snippet 221");
    shell.setLayout(new FillLayout());
    final Tree tree = new Tree(shell, SWT.FULL_SELECTION | SWT.BORDER);
    tree.setHeaderVisible(true);/*w  ww  . jav  a  2s .  c  o m*/
    TreeColumn column0 = new TreeColumn(tree, SWT.LEFT);
    column0.setText("Column 0");
    TreeColumn column1 = new TreeColumn(tree, SWT.LEFT);
    column1.setText("Column 1");
    TreeColumn column2 = new TreeColumn(tree, SWT.LEFT);
    column2.setText("Column 2");
    for (int i = 0; i < 9; i++) {
        TreeItem item = new TreeItem(tree, SWT.NONE);
        item.setText("item " + i);
        item.setText(1, "column 1 - " + i);
        item.setText(2, "column 2 - " + i);
        for (int j = 0; j < 9; j++) {
            TreeItem subItem = new TreeItem(item, SWT.NONE);
            subItem.setText("item " + i + " " + j);
            subItem.setText(1, "column 1 - " + i + " " + j);
            subItem.setText(2, "column 2 - " + i + " " + j);
            for (int k = 0; k < 9; k++) {
                TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
                subsubItem.setText("item " + i + " " + j + " " + k);
                subsubItem.setText(1, "column 1 - " + i + " " + j + " " + k);
                subsubItem.setText(2, "column 2 - " + i + " " + j + " " + k);
            }
        }
    }
    column0.pack();
    column1.pack();
    column2.pack();

    Heartbeat = () -> {
        if (!Tracking || tree.isDisposed())
            return;
        Point cursor = display.getCursorLocation();
        cursor = display.map(null, tree, cursor);
        Scroll(tree, cursor.x, cursor.y);
        display.timerExec(ScrollSpeed, Heartbeat);
    };
    Listener listener = event -> {
        switch (event.type) {
        case SWT.MouseEnter:
            Tracking = true;
            display.timerExec(0, Heartbeat);
            break;
        case SWT.MouseExit:
            Tracking = false;
            break;
        }
    };
    tree.addListener(SWT.MouseEnter, listener);
    tree.addListener(SWT.MouseExit, listener);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

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

public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Snippet 320");
    shell.setLayout(new GridLayout());
    final Text text = new Text(shell, SWT.SINGLE | SWT.BORDER);
    text.setLayoutData(new GridData(150, SWT.DEFAULT));
    shell.pack();/*from w  w  w  .  ja v  a  2s .c om*/
    shell.open();

    final Shell popupShell = new Shell(display, SWT.ON_TOP);
    popupShell.setLayout(new FillLayout());
    final Table table = new Table(popupShell, SWT.SINGLE);
    for (int i = 0; i < 5; i++) {
        new TableItem(table, SWT.NONE);
    }

    text.addListener(SWT.KeyDown, event -> {
        switch (event.keyCode) {
        case SWT.ARROW_DOWN:
            int index = (table.getSelectionIndex() + 1) % table.getItemCount();
            table.setSelection(index);
            event.doit = false;
            break;
        case SWT.ARROW_UP:
            index = table.getSelectionIndex() - 1;
            if (index < 0)
                index = table.getItemCount() - 1;
            table.setSelection(index);
            event.doit = false;
            break;
        case SWT.CR:
            if (popupShell.isVisible() && table.getSelectionIndex() != -1) {
                text.setText(table.getSelection()[0].getText());
                popupShell.setVisible(false);
            }
            break;
        case SWT.ESC:
            popupShell.setVisible(false);
            break;
        }
    });
    text.addListener(SWT.Modify, event -> {
        String string = text.getText();
        if (string.length() == 0) {
            popupShell.setVisible(false);
        } else {
            TableItem[] items = table.getItems();
            for (int i = 0; i < items.length; i++) {
                items[i].setText(string + '-' + i);
            }
            Rectangle textBounds = display.map(shell, null, text.getBounds());
            popupShell.setBounds(textBounds.x, textBounds.y + textBounds.height, textBounds.width, 150);
            popupShell.setVisible(true);
        }
    });

    table.addListener(SWT.DefaultSelection, event -> {
        text.setText(table.getSelection()[0].getText());
        popupShell.setVisible(false);
    });
    table.addListener(SWT.KeyDown, event -> {
        if (event.keyCode == SWT.ESC) {
            popupShell.setVisible(false);
        }
    });

    Listener focusOutListener = event -> display.asyncExec(() -> {
        if (display.isDisposed())
            return;
        Control control = display.getFocusControl();
        if (control == null || (control != text && control != table)) {
            popupShell.setVisible(false);
        }
    });
    table.addListener(SWT.FocusOut, focusOutListener);
    text.addListener(SWT.FocusOut, focusOutListener);

    shell.addListener(SWT.Move, event -> popupShell.setVisible(false));

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

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

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

    final Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
    table.setHeaderVisible(true);/*w  w  w .  j a v  a2  s .co m*/
    final Menu headerMenu = new Menu(shell, SWT.POP_UP);
    final TableColumn columnName = new TableColumn(table, SWT.NONE);
    columnName.setText("Name");
    columnName.setWidth(150);
    createMenuItem(headerMenu, columnName);
    final TableColumn columnSize = new TableColumn(table, SWT.NONE);
    columnSize.setText("Size");
    columnSize.setWidth(150);
    createMenuItem(headerMenu, columnSize);
    final TableColumn columnType = new TableColumn(table, SWT.NONE);
    columnType.setText("Type");
    columnType.setWidth(150);
    createMenuItem(headerMenu, columnType);
    final TableColumn columnDate = new TableColumn(table, SWT.NONE);
    columnDate.setText("Date");
    columnDate.setWidth(150);
    createMenuItem(headerMenu, columnDate);
    final TableColumn columnOwner = new TableColumn(table, SWT.NONE);
    columnOwner.setText("Owner");
    columnOwner.setWidth(0);
    columnOwner.setResizable(false);
    createMenuItem(headerMenu, columnOwner);

    for (int i = 0; i < files.length; i++) {
        TableItem item = new TableItem(table, SWT.NONE);
        item.setText(files[i]);
    }

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

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

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

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

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);// w  w w .  ja v  a  2s. c  o  m
    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();
}