List of usage examples for org.eclipse.swt.widgets Display map
public Rectangle map(Control from, Control to, Rectangle rectangle)
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(); }