List of usage examples for org.eclipse.jface.action IContributionItem isVisible
boolean isVisible();
From source file:com.github.haixing_hu.swt.menu.MenuManagerEx.java
License:Open Source License
private boolean isChildVisible(IContributionItem item) { final Boolean v = getOverrides().getVisible(item); if (v != null) { return v.booleanValue(); }//from w w w. j a va2 s .c o m return item.isVisible(); }
From source file:com.isb.datamodeler.internal.ui.views.actions.workingset.CompoundContributionItem.java
License:Open Source License
public void fill(Menu menu, int index) { if (index == -1) { index = menu.getItemCount();/* w ww . jav a 2 s.c om*/ } if (!dirty && menu.getParentItem() != null) { // insert a dummy item so that the parent item is not disabled new MenuItem(menu, SWT.NONE, index); return; } IContributionItem[] items = getContributionItemsToFill(); for (int i = 0; i < items.length; i++) { IContributionItem item = items[i]; int oldItemCount = menu.getItemCount(); if (item.isVisible()) { item.fill(menu, index); } int newItemCount = menu.getItemCount(); int numAdded = newItemCount - oldItemCount; index += numAdded; } dirty = false; }
From source file:com.sap.dirigible.ide.ui.rap.managers.ContribItem.java
License:Open Source License
public boolean isVisible() { boolean visibleItem = false; if (toolBarManager != null) { IContributionItem[] contributionItems = toolBarManager.getItems(); for (int i = 0; i < contributionItems.length && !visibleItem; i++) { IContributionItem contributionItem = contributionItems[i]; if ((!contributionItem.isGroupMarker()) && (!contributionItem.isSeparator()) && (contributionItem.isVisible())) { visibleItem = true;//from w ww. j a v a 2 s . c om } } } return (visibleItem || super.isVisible()); }
From source file:com.sap.dirigible.ide.ui.rap.managers.CoolBarManager.java
License:Open Source License
public void update(final boolean force) { if ((isDirty() || force) && getControl2() != null) { refresh();// w w w . j ava2 s.c om boolean changed = false; /* * Make a list of items including only those items that are visible. * Separators are being removed. Because we use only one Toolbar all * ToolBarContributionItems will be extracted in their IContribution * Items. */ final IContributionItem[] items = getItems(); final List<IContributionItem> visibleItems = new ArrayList<IContributionItem>(items.length); for (int i = 0; i < items.length; i++) { final IContributionItem item = items[i]; if (item.isVisible()) { if (item instanceof IToolBarContributionItem) { IToolBarContributionItem toolbarItem = (IToolBarContributionItem) item; IToolBarManager toolBarManager = toolbarItem.getToolBarManager(); IContributionItem[] toolbarItems = toolBarManager.getItems(); for (int j = 0; j < toolbarItems.length; j++) { final IContributionItem toolItem = toolbarItems[j]; if (toolItem.isVisible() && !toolItem.isSeparator()) { visibleItems.add(toolItem); } } } } } /* * Make a list of ToolItem widgets in the tool bar for which there * is no current visible contribution item. These are the widgets to * be disposed. Dynamic items are also removed. */ ToolItem[] toolItems = toolbar.getItems(); final ArrayList<ToolItem> toolItemsToRemove = new ArrayList<ToolItem>(toolItems.length); for (int i = 0; i < toolItems.length; i++) { final Object data = toolItems[i].getData(); if ((data == null) || (!visibleItems.contains(data)) || ((data instanceof IContributionItem) && ((IContributionItem) data).isDynamic())) { toolItemsToRemove.add(toolItems[i]); } } // Dispose of any items in the list to be removed. for (int i = toolItemsToRemove.size() - 1; i >= 0; i--) { ToolItem toolItem = (ToolItem) toolItemsToRemove.get(i); if (!toolItem.isDisposed()) { Control control = toolItem.getControl(); if (control != null) { toolItem.setControl(null); control.dispose(); } toolItem.dispose(); } } // Add any new items by telling them to fill. toolItems = toolbar.getItems(); IContributionItem sourceItem; IContributionItem destinationItem; int sourceIndex = 0; int destinationIndex = 0; final Iterator<IContributionItem> visibleItemItr = visibleItems.iterator(); while (visibleItemItr.hasNext()) { sourceItem = visibleItemItr.next(); // Retrieve the corresponding contribution item from SWT's // data. if (sourceIndex < toolItems.length) { destinationItem = (IContributionItem) toolItems[sourceIndex].getData(); } else { destinationItem = null; } // The items match if they are equal or both separators. if (destinationItem != null) { if (sourceItem.equals(destinationItem)) { sourceIndex++; destinationIndex++; sourceItem.update(); continue; } else if ((destinationItem.isSeparator()) && (sourceItem.isSeparator())) { toolItems[sourceIndex].setData(sourceItem); sourceIndex++; destinationIndex++; sourceItem.update(); continue; } } // Otherwise, a new item has to be added. final int start = toolbar.getItemCount(); sourceItem.fill(toolbar, destinationIndex); final int newItems = toolbar.getItemCount() - start; // add the selection listener for the styling StylingSelectionAdapter listener = new StylingSelectionAdapter(HEADER_TOOLBAR_VARIANT); for (int i = 0; i < newItems; i++) { ToolItem item = toolbar.getItem(destinationIndex++); item.setData(sourceItem); item.addSelectionListener(listener); } changed = true; } // Remove any old widgets not accounted for. for (int i = toolItems.length - 1; i >= sourceIndex; i--) { final ToolItem item = toolItems[i]; if (!item.isDisposed()) { Control control = item.getControl(); if (control != null) { item.setControl(null); control.dispose(); } item.dispose(); changed = true; } } // Update wrap indices. only needed by a coolbar // updateWrapIndices(); // Update the sizes. for (int i = 0; i < items.length; i++) { IContributionItem item = items[i]; item.update(SIZE); } if (changed) { updateToolbarTabOrder(); } // We are no longer dirty. setDirty(false); styleToolItems(); toolbar.pack(); toolbar.layout(true, true); manageOverflow(); } }
From source file:com.sap.dirigible.ide.ui.rap.managers.MenuBarManager.java
License:Open Source License
protected void update(final boolean force, final boolean recursive) { super.update(force, recursive); if (menuParent != null && (force || isDirty())) { disposeToolItems();//w w w.ja v a2 s .co m IContributionItem[] items = getItems(); if (items.length > 0 && menuParent != null) { for (int i = 0; i < items.length; i++) { IContributionItem item = items[i]; if (item.isVisible()) { makeEntry(item); } } } menuParent.layout(true, true); } }
From source file:gov.nasa.ensemble.core.plan.editor.actions.AbstractCommandItemContributor.java
License:Open Source License
@Override public void fill(Menu menu, int index) { dirty = true;//from w w w. j a va 2s . com if (index == -1) { index = menu.getItemCount(); } if (!dirty && menu.getParentItem() != null) { // insert a dummy item so that the parent item is not disabled new MenuItem(menu, SWT.NONE, index); return; } for (IContributionItem item : getItems()) { int oldItemCount = menu.getItemCount(); if (item.isVisible()) { item.fill(menu, index); } int newItemCount = menu.getItemCount(); int numAdded = newItemCount - oldItemCount; index += numAdded; } dirty = false; }
From source file:net.enilink.komma.edit.ui.action.ActionMenuManager.java
License:Open Source License
public boolean isVisible() { IContributionItem[] items = getRealItems(); for (int i = 0; i < items.length; i++) { IContributionItem item = items[i]; if (!(item instanceof AbstractGroupMarker) && item.isVisible()) { return actionContributionItem.isVisible(); }//w w w . j a v a 2 s . c o m } return false; }
From source file:net.sf.eclipsensis.editor.NSISActionContributor.java
License:Open Source License
private boolean showHideAction(IContributionManager manager, String id, boolean show) { IContributionItem item = manager.find(id); if (item != null) { if (item.isVisible() != show) { item.setVisible(show);// ww w.j ava 2s. c o m item.update(); return true; } } return false; }
From source file:net.yatomiya.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java
License:Open Source License
/** * @param menuManager//from ww w. j a v a 2 s . c o m * @param menuModel */ public void reconcileManagerToModel(MenuManager menuManager, MMenu menuModel) { List<MMenuElement> modelChildren = menuModel.getChildren(); HashSet<MMenuItem> oldModelItems = new HashSet<>(); HashSet<MMenu> oldMenus = new HashSet<>(); HashSet<MMenuSeparator> oldSeps = new HashSet<>(); for (MMenuElement itemModel : modelChildren) { if (OpaqueElementUtil.isOpaqueMenuSeparator(itemModel)) { oldSeps.add((MMenuSeparator) itemModel); } else if (OpaqueElementUtil.isOpaqueMenuItem(itemModel)) { oldModelItems.add((MMenuItem) itemModel); } else if (OpaqueElementUtil.isOpaqueMenu(itemModel)) { oldMenus.add((MMenu) itemModel); } } IContributionItem[] items = menuManager.getItems(); for (int src = 0, dest = 0; src < items.length; src++, dest++) { IContributionItem item = items[src]; if (item instanceof SubContributionItem) { // get the wrapped contribution item item = ((SubContributionItem) item).getInnerItem(); } if (item instanceof MenuManager) { MenuManager childManager = (MenuManager) item; MMenu childModel = getMenuModel(childManager); if (childModel == null) { MMenu legacyModel = OpaqueElementUtil.createOpaqueMenu(); legacyModel.setElementId(childManager.getId()); legacyModel.setVisible(childManager.isVisible()); legacyModel.setLabel(childManager.getMenuText()); linkModelToManager(legacyModel, childManager); OpaqueElementUtil.setOpaqueItem(legacyModel, childManager); if (modelChildren.size() > dest) { modelChildren.add(dest, legacyModel); } else { modelChildren.add(legacyModel); } reconcileManagerToModel(childManager, legacyModel); } else { if (OpaqueElementUtil.isOpaqueMenu(childModel)) { oldMenus.remove(childModel); } if (modelChildren.size() > dest) { if (modelChildren.get(dest) != childModel) { modelChildren.remove(childModel); modelChildren.add(dest, childModel); } } else { modelChildren.add(childModel); } if (childModel instanceof MPopupMenu) { if (((MPopupMenu) childModel).getContext() == null) { IEclipseContext lclContext = getContext(menuModel); if (lclContext != null) { ((MPopupMenu) childModel) .setContext(lclContext.createChild(childModel.getElementId())); } } } if (childModel.getChildren().size() != childManager.getSize()) { reconcileManagerToModel(childManager, childModel); } } } else if (item.isSeparator() || item.isGroupMarker()) { MMenuElement menuElement = getMenuElement(item); if (menuElement == null) { MMenuSeparator legacySep = OpaqueElementUtil.createOpaqueMenuSeparator(); legacySep.setElementId(item.getId()); legacySep.setVisible(item.isVisible()); OpaqueElementUtil.setOpaqueItem(legacySep, item); linkModelToContribution(legacySep, item); if (modelChildren.size() > dest) { modelChildren.add(dest, legacySep); } else { modelChildren.add(legacySep); } } else if (OpaqueElementUtil.isOpaqueMenuSeparator(menuElement)) { MMenuSeparator legacySep = (MMenuSeparator) menuElement; oldSeps.remove(legacySep); if (modelChildren.size() > dest) { if (modelChildren.get(dest) != legacySep) { modelChildren.remove(legacySep); modelChildren.add(dest, legacySep); } } else { modelChildren.add(legacySep); } } } else { MMenuElement menuElement = getMenuElement(item); if (menuElement == null) { MMenuItem legacyItem = OpaqueElementUtil.createOpaqueMenuItem(); legacyItem.setElementId(item.getId()); legacyItem.setVisible(item.isVisible()); OpaqueElementUtil.setOpaqueItem(legacyItem, item); linkModelToContribution(legacyItem, item); if (modelChildren.size() > dest) { modelChildren.add(dest, legacyItem); } else { modelChildren.add(legacyItem); } } else if (OpaqueElementUtil.isOpaqueMenuItem(menuElement)) { MMenuItem legacyItem = (MMenuItem) menuElement; oldModelItems.remove(legacyItem); if (modelChildren.size() > dest) { if (modelChildren.get(dest) != legacyItem) { modelChildren.remove(legacyItem); modelChildren.add(dest, legacyItem); } } else { modelChildren.add(legacyItem); } } } } if (!oldModelItems.isEmpty()) { modelChildren.removeAll(oldModelItems); for (MMenuItem model : oldModelItems) { IContributionItem ici = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model); clearModelToContribution(model, ici); } } if (!oldMenus.isEmpty()) { modelChildren.removeAll(oldMenus); for (MMenu oldMenu : oldMenus) { MenuManager oldManager = getManager(oldMenu); clearModelToManager(oldMenu, oldManager); } } if (!oldSeps.isEmpty()) { modelChildren.removeAll(oldSeps); for (MMenuSeparator model : oldSeps) { IContributionItem item = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model); clearModelToContribution(model, item); } } }
From source file:net.yatomiya.e4.ui.workbench.renderers.swt.StackRenderer.java
License:Open Source License
/** * Determine whether the given view menu has any visible menu items. * * @param viewMenu//w w w.j a va2s. c o m * the view menu to check * @param part * the view menu's parent part * @return <tt>true</tt> if the specified view menu has visible children, * <tt>false</tt> otherwise */ private boolean hasVisibleMenuItems(MMenu viewMenu, MPart part) { if (!viewMenu.isToBeRendered() || !viewMenu.isVisible()) { return false; } for (MMenuElement menuElement : viewMenu.getChildren()) { if (menuElement.isToBeRendered() && menuElement.isVisible()) { if (OpaqueElementUtil.isOpaqueMenuItem(menuElement) || OpaqueElementUtil.isOpaqueMenuSeparator(menuElement)) { IContributionItem item = (IContributionItem) OpaqueElementUtil.getOpaqueItem(menuElement); if (item != null && item.isVisible()) { return true; } } else { return true; } } } Object menuRenderer = viewMenu.getRenderer(); if (menuRenderer instanceof MenuManagerRenderer) { MenuManager manager = ((MenuManagerRenderer) menuRenderer).getManager(viewMenu); if (manager != null && manager.isVisible()) { return true; } } Control control = (Control) part.getWidget(); if (control != null) { Menu menu = (Menu) renderer.createGui(viewMenu, control.getShell(), part.getContext()); if (menu != null) { menuRenderer = viewMenu.getRenderer(); if (menuRenderer instanceof MenuManagerRenderer) { MenuManagerRenderer menuManagerRenderer = (MenuManagerRenderer) menuRenderer; MenuManager manager = menuManagerRenderer.getManager(viewMenu); if (manager != null) { // remark ourselves as dirty so that the menu will be // reconstructed manager.markDirty(); } } return menu.getItemCount() != 0; } } return false; }