List of usage examples for org.eclipse.jface.action ContributionItem ContributionItem
protected ContributionItem()
null id. From source file:com.aptana.explorer.navigator.actions.CommandsActionProvider.java
License:Open Source License
protected void fillMenu(MenuManager menuManager) { IContributionItem item = menuManager.find(IContextMenuConstants.GROUP_PROPERTIES); if (item == null) { menuManager.add(new GroupMarker(IContextMenuConstants.GROUP_PROPERTIES)); }// w ww . j a v a 2 s . com // Stick Delete in Properties area menuManager.appendToGroup(IContextMenuConstants.GROUP_PROPERTIES, new ContributionItem() { @Override public void fill(Menu menu, int index) { final IProject selectedProject = getSelectedProject(); MenuItem item = new MenuItem(menu, SWT.PUSH); item.setText(Messages.SingleProjectView_DeleteProjectMenuItem_LBL); item.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { DeleteResourceAction action = new DeleteResourceAction(getPartSite()); action.selectionChanged(new StructuredSelection(selectedProject)); action.run(); } }); boolean enabled = (selectedProject != null && selectedProject.exists()); ISharedImages images = PlatformUI.getWorkbench().getSharedImages(); item.setImage(enabled ? images.getImage(ISharedImages.IMG_TOOL_DELETE) : images.getImage(ISharedImages.IMG_TOOL_DELETE_DISABLED)); item.setEnabled(enabled); } @Override public boolean isDynamic() { return true; } }); }
From source file:com.aptana.git.ui.internal.actions.CommitDialog.java
License:Open Source License
private Table createTable(Composite composite, final boolean staged) { Table table = new Table(composite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION); table.setLinesVisible(true);//from ww w .j a v a2 s. c o m table.setHeaderVisible(true); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.heightHint = 200; data.widthHint = 250; table.setLayoutData(data); String[] titles = { " ", Messages.CommitDialog_PathColumnLabel }; //$NON-NLS-1$ int[] widths = new int[] { 20, 250 }; for (int i = 0; i < titles.length; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setText(titles[i]); column.setWidth(widths[i]); } List<ChangedFile> changedFiles = gitRepository.index().changedFiles(); Collections.sort(changedFiles); for (ChangedFile file : changedFiles) { boolean match = false; if (staged && file.hasStagedChanges()) { match = true; } else if (!staged && file.hasUnstagedChanges()) { match = true; } if (match) { createTableItem(table, file, false); } } // Drag and Drop // FIXME If user drags and drops while we're still crunching on last drag/drop then we end up hanging // Seems to be related to manipulating the table here before we receive the index changed callback Transfer[] types = new Transfer[] { LocalSelectionTransfer.getTransfer() }; // Drag Source DragSource source = new DragSource(table, DND.DROP_MOVE); source.setTransfer(types); source.addDragListener(new DragSourceAdapter() { public void dragStart(DragSourceEvent event) { DragSource ds = (DragSource) event.widget; draggingFromTable = ds.getControl(); LocalSelectionTransfer.getTransfer() .setSelection(new StructuredSelection(((Table) draggingFromTable).getSelection())); LocalSelectionTransfer.getTransfer().setSelectionSetTime(event.time & 0xFFFFFFFFL); } public void dragSetData(DragSourceEvent event) { // do nothing } }); // Create the drop target DropTarget target = new DropTarget(table, DND.DROP_MOVE); target.setTransfer(types); if (table.getItemCount() == 0) target.setDropTargetEffect(null); target.addDropListener(new DropTargetAdapter() { public void dropAccept(DropTargetEvent event) { DropTarget dp = (DropTarget) event.widget; if (dp.getControl() == draggingFromTable) { event.detail = DND.DROP_NONE; } } public void dragEnter(DropTargetEvent event) { // Allow dropping text only for (int i = 0, n = event.dataTypes.length; i < n; i++) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataTypes[i])) { event.currentDataType = event.dataTypes[i]; } } event.operations = DND.DROP_MOVE; } public void dragOver(DropTargetEvent event) { event.feedback = DND.FEEDBACK_SCROLL; } @SuppressWarnings("unchecked") public void drop(DropTargetEvent event) { if (!LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType)) return; // Get the dropped data IStructuredSelection selection = (IStructuredSelection) event.data; moveItems(!staged, ((List<TableItem>) selection.toList()).toArray(new TableItem[selection.size()])); } }); table.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { super.widgetSelected(e); if (e.item == null) return; TableItem item = (TableItem) e.item; updateDiff(staged, getChangedFile(item)); } }); // Allow double-clicking to toggle staged/unstaged table.addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { if (e.getSource() == null) return; Table table = (Table) e.getSource(); Point point = new Point(e.x, e.y); TableItem item = table.getItem(point); if (item == null) { return; } // did user click on file image? If so, toggle staged/unstage Rectangle imageBounds = item.getBounds(0); if (imageBounds.contains(point)) { moveItems(staged, new TableItem[] { item }); } } @Override public void mouseDoubleClick(MouseEvent e) { if (e.getSource() == null) return; Table table = (Table) e.getSource(); TableItem[] selected = table.getSelection(); moveItems(staged, selected); } }); // Custom drawing so we can truncate filepaths in middle... table.addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { // Only draw the text custom if (event.index != 1) return; event.detail &= ~SWT.FOREGROUND; } }); table.addListener(SWT.PaintItem, new Listener() { public void handleEvent(Event event) { // Only draw the text custom if (event.index != 1) return; TableItem item = (TableItem) event.item; String text = item.getText(event.index); // Truncate middle of string Table theTable = (Table) event.widget; int width = theTable.getColumn(event.index).getWidth(); Point p = event.gc.stringExtent(text); // is text wider than available width? if (p.x > width) { // chop string in half and drop a few characters int middle = text.length() / 2; String beginning = text.substring(0, middle - 1); String end = text.substring(middle + 2, text.length()); // Now repeatedly chop off one char from each end until we fit // TODO Chop each side separately? it'd take more loops, but text would fit tighter when uneven // lengths work better.. while (event.gc.stringExtent(beginning + "..." + end).x > width) //$NON-NLS-1$ { if (beginning.length() > 0) { beginning = beginning.substring(0, beginning.length() - 1); } else { break; } if (end.length() > 0) { end = end.substring(1); } else { break; } } text = beginning + "..." + end; //$NON-NLS-1$ } event.gc.drawText(text, event.x, event.y, true); event.detail &= ~SWT.FOREGROUND; } }); if (!staged) { final Table myTable = table; MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$ menuMgr.setRemoveAllWhenShown(true); menuMgr.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { TableItem[] selected = myTable.getSelection(); List<IResource> files = new ArrayList<IResource>(); final List<ChangedFile> changedFiles = new ArrayList<ChangedFile>(); for (TableItem item : selected) { ChangedFile file = getChangedFile(item); if (file != null) { changedFiles.add(file); IFile iFile = gitRepository.getFileForChangedFile(file); if (iFile != null) { files.add(iFile); } } } ContributionItem ci = new ContributionItem() { public void fill(Menu menu, int index) { MenuItem item = new MenuItem(menu, SWT.NONE); item.setText(Messages.CommitDialog_RevertLabel); // need to remove the file(s) from staged table once action runs item.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // need to make a copy because operation will actually change input files. final List<ChangedFile> copy = new ArrayList<ChangedFile>(changedFiles); for (ChangedFile cf : changedFiles) { copy.add(new ChangedFile(cf)); } gitRepository.index().discardChangesForFiles(changedFiles); PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { // If this file was shown in diff area, we need to blank the diff area! if (fLastDiffFile != null) { for (ChangedFile file : copy) { if (file != null && file.equals(fLastDiffFile)) { updateDiff(null, Messages.CommitDialog_NoFileSelected); } } } removeDraggedFilesFromSource(unstagedTable, copy); } }); } }); } }; manager.add(ci); // Other plug-ins can contribute there actions here manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); } }); Menu menu = menuMgr.createContextMenu(table); table.setMenu(menu); } return table; }
From source file:com.genuitec.eclipse.gerrit.tools.internal.gps.commands.QuickGpsImportCommandsProvider.java
License:Open Source License
@Override protected IContributionItem[] getContributionItems() { File[] files = GpsQuickImportFiles.getGpsFiles(); if (files.length == 0) { return new IContributionItem[] { new ContributionItem() { @Override/*from w w w . ja v a2 s . c o m*/ public void fill(Menu menu, int index) { MenuItem item = new MenuItem(menu, 0); item.setText("No files available"); } } }; } IContributionItem[] result = new IContributionItem[files.length]; for (int i = 0; i < result.length; i++) { CommandContributionItemParameter parameter = new CommandContributionItemParameter(serviceLocator, "com.genuitec.eclipse.gerrit.tools.quickImportProjects." + i, //$NON-NLS-1$ "com.genuitec.eclipse.gerrit.tools.importProjects", SWT.PUSH); //$NON-NLS-1$ parameter.parameters = Collections.singletonMap("file", files[i].toString()); //$NON-NLS-1$ parameter.label = files[i].getName(); result[i] = new CommandContributionItem(parameter); } return result; }
From source file:com.google.gdt.eclipse.core.browser.BrowserMenuPopulator.java
License:Open Source License
public void populate(final IProject project, IMenuManager menu, final String url) { this.project = project; menu.add(new Action("&Open") { @Override/*from www .j a v a2s.c o m*/ public void run() { openBrowser(getDefaultBrowserName(), url); } }); // Open With: MenuManager openWithMenuManager = new MenuManager("Open wit&h"); openWithMenuManager.add(new ContributionItem() { @Override public void fill(Menu menu, int index) { Menu openWithMenu = menu; for (final String browserName : BrowserUtilities.getBrowserNames()) { final MenuItem item = new MenuItem(openWithMenu, SWT.RADIO); // Add a keyboard accelerator item.setText("&" + browserName); item.setSelection(JavaUtilities.equalsWithNullCheck(browserName, getDefaultBrowserName())); item.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { // The previously selected item will get a callback too, hence the selection check if (item.getSelection()) { openBrowser(browserName, url); defaultProvider.setDefaultBrowserName(browserName); } } }); } new MenuItem(openWithMenu, SWT.SEPARATOR); MenuItem configureItem = new MenuItem(openWithMenu, SWT.NONE); configureItem.setText("&Add a Browser"); configureItem.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { AddBrowserDialog addBrowserDialog = new AddBrowserDialog(SWTUtilities.getShell()); if (addBrowserDialog.open() == Window.OK) { String browserName = addBrowserDialog.getBrowserName(); openBrowser(browserName, url); defaultProvider.setDefaultBrowserName(browserName); } } }); } }); menu.add(openWithMenuManager); // Registered launchers will be added to the menu addExtensionDebugLauncherMenus(menu, url); }
From source file:com.rcpcompany.uibindings.navigator.internal.handlers.OpenWithContributionFactory.java
License:Open Source License
@Override public void createContributionItems(IServiceLocator serviceLocator, IContributionRoot additions) { final ISelectionService ss = (ISelectionService) serviceLocator.getService(ISelectionService.class); final List<EObject> list = SelectionUtils.computeSelection(ss.getSelection(), EObject.class); /*/*from w w w .j a va2 s .co m*/ * Only know how to handle one item */ if (list.size() != 1) return; final EObject obj = list.get(0); final IEditorInformation mt = INavigatorManager.Factory.getManager().getEditorInformation(obj.getClass()); if (mt == null) return; final List<IEditorPartDescriptor> editors = mt.getEnabledEditors(); /* * Less than two editors... no need for an open with menu... Ignore. */ if (editors.size() < 2) return; /* * Create contributions items for all the editors based on the name and image */ for (final IEditorPartDescriptor d : editors) { final IContributionItem item = new ContributionItem() { @Override public void fill(Menu menu, int index) { final MenuItem mi = new MenuItem(menu, SWT.NONE); mi.setText(d.getName()); final CEResourceHolder image = d.getImage(); if (image != null) { mi.setImage(image.getImage()); } mi.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { mt.setPreferredEditor(d); INavigatorManager.Factory.getManager().openView(obj, false); } }); } }; additions.addContributionItem(item, null); } }
From source file:de.bodden.tamiflex.views.ReflectionView.java
License:Open Source License
private void fillContextMenu(IMenuManager manager) { manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); manager.add(new ContributionItem() { @Override/*from w ww . j ava 2 s. c o m*/ public void fill(Menu menu, int index) { super.fill(menu, index); MenuItem menuItem = new MenuItem(menu, 0); menuItem.setText("Remove log from view"); menuItem.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { TreeItem[] selection = viewer.getTree().getSelection(); if (selection.length == 1) { TreeItem treeItem = selection[0]; TreeObject node = (TreeObject) treeItem.getData(); if (node.getKind() == Kind.ONLINEMONITOR) { contentProvider.removeRoot(node); } else if (node.getKind() == Kind.TRACEFILE) { TraceFileNode tfn = (TraceFileNode) node; traceFiles.remove(tfn.getAbsolutePath()); contentProvider.removeRoot(node); } } } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); } }); }
From source file:descent.internal.ui.actions.MultiActionGroup.java
License:Open Source License
/** * Adds the actions to the given menu manager. *//*from w w w .j a v a 2s . c o m*/ protected void addActions(IMenuManager viewMenu) { viewMenu.add(new Separator()); fItems = new MenuItem[fActions.length]; for (int i = 0; i < fActions.length; i++) { final int j = i; viewMenu.add(new ContributionItem() { public void fill(Menu menu, int index) { int style = SWT.CHECK; if ((fActions[j].getStyle() & IAction.AS_RADIO_BUTTON) != 0) style = SWT.RADIO; MenuItem mi = new MenuItem(menu, style, index); ImageDescriptor d = fActions[j].getImageDescriptor(); mi.setImage(JavaPlugin.getImageDescriptorRegistry().get(d)); fItems[j] = mi; mi.setText(fActions[j].getText()); mi.setSelection(fCurrentSelection == j); mi.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (fCurrentSelection == j) { fItems[fCurrentSelection].setSelection(true); return; } fActions[j].run(); // Update checked state fItems[fCurrentSelection].setSelection(false); fCurrentSelection = j; fItems[fCurrentSelection].setSelection(true); } }); } public boolean isDynamic() { return false; } }); } }
From source file:eu.numberfour.n4js.ui.navigator.internal.SelectTopLevelElementActionGroup.java
License:Open Source License
private void addActions(final IMenuManager menuManager) { menuManager.add(new Separator()); // Projects menu item menuManager.add(new ContributionItem() { @Override/* w w w .jav a 2s. c o m*/ public void fill(final Menu menu, final int index) { projectsItem = new MenuItem(menu, SWT.CHECK); projectsItem.setText("Projects"); projectsItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { projectsItem.setSelection(true); workingSetsItem.setSelection(false); workingSetManagerBroker.setWorkingSetTopLevel(false); } }); if (!workingSetManagerBroker.isWorkingSetTopLevel()) { projectsItem.setSelection(true); } } }); menuManager.add(new ContributionItem() { @Override public void fill(final Menu menu, final int index) { workingSetsItem = new MenuItem(menu, SWT.CHECK); workingSetsItem.setText("Working Sets"); workingSetsItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { workingSetsItem.setSelection(true); projectsItem.setSelection(false); workingSetManagerBroker.setWorkingSetTopLevel(true); } }); if (workingSetManagerBroker.isWorkingSetTopLevel()) { workingSetsItem.setSelection(true); } } }); }
From source file:ext.org.eclipse.jdt.internal.ui.actions.MultiActionGroup.java
License:Open Source License
/** * Adds the actions to the given menu manager. *//* w w w .ja v a2 s .c o m*/ protected void addActions(IMenuManager viewMenu) { viewMenu.add(new Separator()); fItems = new MenuItem[fActions.length]; for (int i = 0; i < fActions.length; i++) { final int j = i; viewMenu.add(new ContributionItem() { @Override public void fill(Menu menu, int index) { int style = SWT.CHECK; if ((fActions[j].getStyle() & IAction.AS_RADIO_BUTTON) != 0) style = SWT.RADIO; MenuItem mi = new MenuItem(menu, style, index); ImageDescriptor d = fActions[j].getImageDescriptor(); mi.setImage(JavaPlugin.getImageDescriptorRegistry().get(d)); fItems[j] = mi; mi.setText(fActions[j].getText()); mi.setSelection(fCurrentSelection == j); mi.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (fCurrentSelection == j) { fItems[fCurrentSelection].setSelection(true); return; } fActions[j].run(); // Update checked state fItems[fCurrentSelection].setSelection(false); fCurrentSelection = j; fItems[fCurrentSelection].setSelection(true); } }); } @Override public boolean isDynamic() { return false; } }); } }
From source file:gov.nasa.ensemble.common.ui.detail.view.DetailPage.java
License:Open Source License
private void createActions() { IActionBars bars = getSite().getActionBars(); ContributionItem item = new ContributionItem() { @Override/*from w w w. j ava2s . co m*/ public void fill(Menu menu, int index) { Collection<String> disabledFilterFlags = DetailUtils.getDisabledFilterFlags(); Collection<String> availableFilterFlags = DetailUtils.getAvailableFilterFlags(); for (final String filterFlag : availableFilterFlags) { final MenuItem item = new MenuItem(menu, SWT.CHECK); item.setText("Hide " + filterFlag + " parameters"); item.setSelection(!disabledFilterFlags.contains(filterFlag)); Listener listener = new Listener() { @Override public void handleEvent(Event event) { switch (event.type) { case SWT.Selection: if (item.getSelection()) { DetailUtils.removeDisabledFilterFlags(filterFlag); } else { DetailUtils.addDisabledFilterFlags(filterFlag); } break; } } }; item.addListener(SWT.Selection, listener); } } @Override public boolean isDynamic() { return true; } }; bars.getMenuManager().add(item); }