List of usage examples for org.eclipse.swt.widgets Tree setMenu
public void setMenu(Menu menu)
From source file:org.eclipse.swt.snippets.Snippet97.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 97"); final Tree tree = new Tree(shell, SWT.BORDER | SWT.MULTI); final Menu menu = new Menu(shell, SWT.POP_UP); tree.setMenu(menu); for (int i = 0; i < 12; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText("Item " + i); }// ww w .j a v a2 s . c o m menu.addListener(SWT.Show, event -> { MenuItem[] menuItems = menu.getItems(); for (int i1 = 0; i1 < menuItems.length; i1++) { menuItems[i1].dispose(); } TreeItem[] treeItems = tree.getSelection(); for (int i2 = 0; i2 < treeItems.length; i2++) { MenuItem menuItem = new MenuItem(menu, SWT.PUSH); menuItem.setText(treeItems[i2].getText()); } }); 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:MenuFillDynamically.java
public static void main(String[] args) { final 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); for (int i = 0; i < 12; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText("Item " + i); }/*from ww w . jav a2s. c om*/ menu.addListener(SWT.Show, new Listener() { public void handleEvent(Event event) { MenuItem[] menuItems = menu.getItems(); for (int i = 0; i < menuItems.length; i++) { menuItems[i].dispose(); } TreeItem[] treeItems = tree.getSelection(); for (int i = 0; i < treeItems.length; i++) { MenuItem menuItem = new MenuItem(menu, SWT.PUSH); menuItem.setText(treeItems[i].getText()); } } }); tree.setSize(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); 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()); }/*from www .j a v a 2s . c om*/ 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.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); 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()); }//w w w . j a v a2 s .c o m 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: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 av a 2 s.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(); }
From source file:fr.inria.soctrace.framesoc.ui.piechart.view.StatisticsPieChartView.java
private void createContextMenu() { final Tree tree = tableTreeViewer.getTree(); final Menu menu = new Menu(tree); tree.setMenu(menu); menu.addMenuListener(new MenuAdapter() { private boolean allLeaves = false; private boolean allMerged = false; @Override/*from w w w . j a v a 2 s .c o m*/ public void menuShown(MenuEvent e) { // clean menu MenuItem[] items = menu.getItems(); for (int i = 0; i < items.length; i++) { items[i].dispose(); } // get current selection final List<String> rows = new ArrayList<>(); getSelectedRows(rows); // exclude if (allLeaves && rows.size() > 0) { MenuItem hide = new MenuItem(menu, SWT.NONE); hide.setText("Exclude " + ((rows.size() > 1) ? "Items" : "Item") + " from Statistics"); hide.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { currentDescriptor.excluded.addAll(rows); refresh(); refreshTableFilter(); tableTreeViewer.collapseAll(); } }); } // merge if (allLeaves && rows.size() > 1) { MenuItem merge = new MenuItem(menu, SWT.NONE); merge.setText("Merge Items"); merge.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MergeItemsDialog dlg = new MergeItemsDialog(getSite().getShell()); if (dlg.open() == Dialog.OK) { MergedItem mergedItem = new MergedItem(); mergedItem.setBaseItems(rows); if (!currentDescriptor.loader.checkLabel(dlg.getLabel())) { MessageDialog.openError(getSite().getShell(), "Error", "Illegal label: '" + dlg.getLabel() + "'. Labels must be unique."); return; } mergedItem.setColor(dlg.getColor()); mergedItem.setLabel(dlg.getLabel()); currentDescriptor.merged.addMergedItem(mergedItem); refresh(); tableTreeViewer.collapseAll(); } } }); } if (!currentDescriptor.excluded.isEmpty() || !currentDescriptor.merged.isEmpty()) { new MenuItem(menu, SWT.SEPARATOR); } // restore merged if (!currentDescriptor.merged.isEmpty() && allMerged) { MenuItem restore = new MenuItem(menu, SWT.NONE); restore.setText("Unmerge Items"); restore.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { currentDescriptor.merged.removeMergedItems(rows); refresh(); refreshTableFilter(); tableTreeViewer.collapseAll(); } }); } // restore excluded if (!currentDescriptor.excluded.isEmpty()) { MenuItem restore = new MenuItem(menu, SWT.NONE); restore.setText("Restore Excluded Items"); restore.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { currentDescriptor.excluded = new ArrayList<>(); refresh(); refreshTableFilter(); tableTreeViewer.collapseAll(); } }); } // restore all merged if (!currentDescriptor.merged.isEmpty()) { MenuItem restore = new MenuItem(menu, SWT.NONE); restore.setText("Unmerge All Merged Items"); restore.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { currentDescriptor.merged.removeAllMergedItems(); refresh(); refreshTableFilter(); tableTreeViewer.collapseAll(); } }); } } private void getSelectedRows(List<String> rows) { final IStructuredSelection sel = (IStructuredSelection) tableTreeViewer.getSelection(); if (sel.isEmpty()) { allLeaves = false; allMerged = false; return; } @SuppressWarnings("unchecked") Iterator<StatisticsTableRow> it = (Iterator<StatisticsTableRow>) sel.iterator(); allLeaves = true; allMerged = true; while (it.hasNext()) { StatisticsTableRow r = it.next(); try { rows.add(r.get(StatisticsTableColumn.NAME)); allLeaves = allLeaves && !r.hasChildren(); if (currentDescriptor.loader.isAggregationSupported()) { if (r.get(StatisticsTableColumn.NAME) .equals(currentDescriptor.loader.getAggregatedLabel())) { allMerged = false; } else { allMerged = allMerged && r.hasChildren(); } } else { allMerged = allMerged && r.hasChildren(); } } catch (SoCTraceException e) { e.printStackTrace(); } } return; } }); }