List of usage examples for org.eclipse.jface.viewers TreeViewer getSelection
@Override
public ISelection getSelection()
AbstractTreeViewer
implementation of this method returns the result as an ITreeSelection
. From source file:org.talend.core.ui.context.ContextManagerHelper.java
License:Open Source License
/** * //from ww w .ja va 2 s . c om * ggu Comment method "changeContextOrder". * * order the context parameter */ public static boolean changeContextOrder(TreeViewer viewer, IContextModelManager modelManager, boolean up) { if (viewer == null || modelManager == null) { return false; } final ISelection selection = viewer.getSelection(); if (selection == null || selection.isEmpty()) { return false; } if (!(selection instanceof IStructuredSelection)) { return false; } IStructuredSelection sSection = (IStructuredSelection) selection; if (sSection.size() != 1) { // not support multi-selection return false; } Object element = sSection.getFirstElement(); IContextParameter movedParam = null; if (element instanceof ContextVariableTabParentModel) { movedParam = ((ContextVariableTabParentModel) element).getContextParameter(); } if (element instanceof ContextTableTabParentModel) { movedParam = ((ContextTableTabParentModel) element).getContextParameter(); } if (movedParam == null) { return false; } OrderContextParameterCommand orderCommand = new OrderContextParameterCommand( modelManager.getContextManager(), movedParam, up); final CommandStack commandStack = modelManager.getCommandStack(); if (commandStack != null) { commandStack.execute(orderCommand); } else { orderCommand.execute(); } // modelManager.refresh(); revertTreeSelection(viewer, movedParam); return orderCommand.isExecution(); }
From source file:org.talend.designer.filemultischemas.managers.UIManager.java
License:Open Source License
public void refreshSchemasDetailView(TreeViewer schemaTreeViewer, TreeViewer schemaDetailsViewer, boolean model) { if (schemaTreeViewer == null || schemaTreeViewer.getTree().isDisposed() || schemaDetailsViewer == null || schemaDetailsViewer.getTree().isDisposed()) { return;/* w w w .j a v a2s . c o m*/ } IStructuredSelection selection = (IStructuredSelection) schemaTreeViewer.getSelection(); Object element = selection.getFirstElement(); if (element == null || !(element instanceof SchemasKeyData)) { return; } final Tree tree = schemaDetailsViewer.getTree(); tree.setRedraw(false); SchemasKeyData schemasData = (SchemasKeyData) element; final List<MultiMetadataColumn> metadataColumns = schemasData.getMetadataColumnsInModel(); if (model) { schemaDetailsViewer.setInput(metadataColumns); // tree.setRedraw(true); // type final TreeColumn typeColumn = tree.getColumns()[EPropertyName.indexOf(EPropertyName.TYPE)]; typeColumn.pack(); } else { final int colSize = metadataColumns.size(); if (colSize > 0) { // List<String> columnProperties = new ArrayList<String>(); // first column columnProperties.add(new Integer(-1).toString()); final int columnNum = tree.getColumnCount() - 1; for (int i = 0; i < colSize; i++) { TreeColumn dataColumn = null; if (i < columnNum) {// existed column, only update data. dataColumn = tree.getColumns()[i + 1]; } else { // create new column dataColumn = new TreeColumn(tree, SWT.NONE); dataColumn.setWidth(100); } // MultiSchemasMetadataColumn metadataColumn = metadataColumns.get(i); // dataColumn.setText(metadataColumn.getLabel()); // dataColumn.setData(metadataColumn); columnProperties.add(new Integer(i).toString()); } schemaDetailsViewer.setColumnProperties(columnProperties.toArray(new String[0])); schemaDetailsViewer.setInput(schemasData); } else { schemaDetailsViewer.setInput(null); } // tree.setRedraw(true); updateColumns(tree, colSize); } }
From source file:org.talend.designer.filemultischemas.managers.UIManager.java
License:Open Source License
public static String validSchemaDetailsColumns(final TreeViewer schemaDetailsViewer, final MultiMetadataColumn multiMetadataColumn, final EPropertyName property, final Object input) { String mess = null;//w w w . j a v a 2s . c o m if (input != null && input instanceof String) { final String value = (String) input; final String existedMessage = "The column name have existed."; if (isFirstForColumnModel(property)) { // for column model IStructuredSelection selection = (IStructuredSelection) schemaDetailsViewer.getSelection(); if (selection != null) { final Object firstElement = selection.getFirstElement(); if (firstElement != null && firstElement instanceof ColumnLineData) { ColumnLineData lineData = (ColumnLineData) firstElement; for (MultiMetadataColumn column : lineData.getKeyData().getMetadataColumnsInModel()) { if (multiMetadataColumn != column && value.equals(column.getLabel())) { mess = existedMessage; break; } } } } } else { final String invalidInput = "Invalid input."; switch (property) { case NAME: // for property model. IStructuredSelection selection = (IStructuredSelection) schemaDetailsViewer.getSelection(); if (selection != null) { final Object firstElement = selection.getFirstElement(); if (firstElement != null && firstElement instanceof MultiMetadataColumn) { MultiMetadataColumn column = (MultiMetadataColumn) firstElement; for (TreeItem item : schemaDetailsViewer.getTree().getItems()) { final Object data = item.getData(); if (data != column && data instanceof MultiMetadataColumn) { MultiMetadataColumn other = (MultiMetadataColumn) data; if (value.equals(other.getLabel())) { mess = existedMessage; break; } } } } } if (mess == null && !value.matches(RepositoryConstants.CONTEXT_AND_VARIABLE_PATTERN)) { mess = invalidInput; } break; case LENGTH: if (!value.matches(ExternalMultiSchemasUIProperties.NUMBER_PATTERN)) { mess = invalidInput; } break; } } } return mess; }
From source file:org.talend.designer.filemultischemas.managers.UIManager.java
License:Open Source License
public boolean enableMovedRecord(TreeViewer schemaTreeViewer, boolean left) { if (schemaTreeViewer == null) { return false; }//from w ww .ja v a2 s . c o m ISelection selection = schemaTreeViewer.getSelection(); if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; if (structuredSelection.size() == 1) { Object element = structuredSelection.getFirstElement(); if (element instanceof SchemasKeyData) { SchemasKeyData data = (SchemasKeyData) element; SchemasKeyData parent = data.getParent(); int index = parent.getChildren().indexOf(data); if (left) { SchemasKeyData grandfather = parent.getParent(); if (grandfather == null) { // in root. return false; } if (index != parent.getChildren().size() - 1) { // not the end of children. return false; } } else { if (index == 0) { // in first of children. return false; } } return true; } } } return false; }
From source file:org.talend.designer.filemultischemas.managers.UIManager.java
License:Open Source License
public void moveRecord(TreeViewer schemaTreeViewer, boolean left) { if (schemaTreeViewer == null) { return;//from w w w . j av a2 s . co m } ISelection selection = schemaTreeViewer.getSelection(); if (selection instanceof IStructuredSelection) { Object element = ((IStructuredSelection) selection).getFirstElement(); if (element instanceof SchemasKeyData) { SchemasKeyData data = (SchemasKeyData) element; SchemasKeyData parent = data.getParent(); if (left) { SchemasKeyData grandfather = parent.getParent(); if (grandfather != null) { // not in root. List<SchemasKeyData> children = grandfather.getChildren(); int index = -1; for (int i = 0; i < children.size(); i++) { if (children.get(i) == parent) { index = i; break; } } if (index > -1) { int index2 = index + 1; if (index2 > children.size()) { grandfather.addChild(data); } else { grandfather.addChild(index2, data); } } } } else { SchemasKeyData sibling = null; for (SchemasKeyData skd : parent.getChildren()) { if (skd == data) { break; } else { sibling = skd; } } if (sibling != null) { sibling.addChild(data); } } schemaTreeViewer.refresh(); } } }
From source file:org.talend.designer.runtime.visualization.internal.ui.properties.memory.SWTResourcesPage.java
License:Open Source License
/** * Refreshes the appearance.//ww w . jav a2 s.com * * @param force <tt>true</tt> to force refresh */ protected void refresh(final boolean force) { final boolean isVisible = isVisible(); new RefreshJob(NLS.bind(Messages.refreshMemorySectionJobLabel, section.getJvm().getPid()), toString()) { @Override protected void refreshModel(IProgressMonitor monitor) { try { IActiveJvm jvm = section.getJvm(); if (isVisible && jvm != null && jvm.isConnected() && (!section.isRefreshSuspended() || force) && jvm.getSWTResourceMonitor().isSupported()) { jvm.getSWTResourceMonitor().refreshResourcesCache(); } } catch (JvmCoreException e) { Activator.log(Messages.refreshHeapDataFailedMsg, e); } } @Override protected void refreshUI() { IActiveJvm jvm = section.getJvm(); boolean isConnected = jvm != null && jvm.isConnected(); if (!isDisposed()) { refreshBackground(); } refreshAction.setEnabled(isConnected); clearSWTResourceAction.setEnabled(isConnected); if (!force && section.isRefreshSuspended() || !isVisible) { return; } TreeViewer resourceViewer = resourceFilteredTree.getViewer(); if (!resourceViewer.getControl().isDisposed()) { resourceViewer.refresh(); if (jvm != null) { resourceFilteredTree.updateStatusLine(jvm.getSWTResourceMonitor().getResources()); } // select the first item if no item is selected if (resourceViewer.getSelection().isEmpty()) { TreeItem[] items = resourceViewer.getTree().getItems(); if (items != null && items.length > 0) { resourceViewer.getTree().select(items[0]); stackTraceViewer.setInput(resourceViewer.getSelection()); } else { stackTraceViewer.setInput(null); } } } if (!stackTraceViewer.getControl().isDisposed()) { stackTraceViewer.refresh(); } } }.schedule(); }
From source file:org.talend.repository.viewer.filter.PerspectiveFilterHelper.java
License:Open Source License
/** * Only activate the view content providers with the extension ID belonging to extensionIdsToActivate array. * //from w ww . j a v a 2 s . c o m * * @param extensionIdsToActivate * @param restoring, used because setting new selection cause renentrance and may create 2 action types when * restoring state */ protected void refreshNavigatorContents(String[] extensionIdsToActivate, boolean restoring) { boolean updateExtensionActivation = false; String[] contentExtensionsToActivate = Arrays.copyOf(extensionIdsToActivate, extensionIdsToActivate.length); // we sort the array in order to use Array.binarySearch(); Arrays.sort(contentExtensionsToActivate); IStructuredSelection ssel = null; TreeViewer commonViewer = getTreeViewer(); INavigatorContentService contentService = getNavigatorContentService(); try { commonViewer.getControl().setRedraw(false); // store the selection ISelection selection = commonViewer.getSelection(); if (selection instanceof IStructuredSelection) { ssel = (IStructuredSelection) selection; } INavigatorContentDescriptor[] visibleContentDescriptors = contentService.getVisibleExtensions(); int indexofContentExtensionIdToBeActivated; /* is there a delta? */ for (int i = 0; i < visibleContentDescriptors.length && !updateExtensionActivation; i++) { indexofContentExtensionIdToBeActivated = Arrays.binarySearch(contentExtensionsToActivate, visibleContentDescriptors[i].getId()); /* * Either we have a filter that should be active that isn't XOR a filter that shouldn't be active that * is currently */ if (indexofContentExtensionIdToBeActivated >= 0 ^ contentService.isActive(visibleContentDescriptors[i].getId())) { updateExtensionActivation = true; } } /* If so, update */ if (updateExtensionActivation) { contentService.getActivationService().activateExtensions(contentExtensionsToActivate, true); contentService.getActivationService().persistExtensionActivations(); // try to keep expanded elements state Object[] expandedElements = commonViewer.getExpandedElements(); contentService.update(); commonViewer.refresh(); if (!restoring) { Object[] originalObjects = ssel != null ? ssel.toArray() : new Object[0]; commonViewer.setExpandedElements(expandedElements); // restore the selection. IStructuredSelection newSelection = new StructuredSelection(originalObjects); commonViewer.setSelection(newSelection, true); } } } finally { commonViewer.getControl().setRedraw(true); } }
From source file:org.testeditor.ui.handlers.NewTestStructureHandler.java
License:Open Source License
/** * Find the selected Element in the Tree. If no tree is available or no * Element is selected then return the root Element from the * TeststructureService./*ww w . j av a 2 s. c o m*/ * * @param treeViewer * TestExplorer View from the Workbench. * @return the possible Parent for the new teststructure. * @throws SystemException * thrown by the TeststructureService. */ protected TestStructure findSelectedParent(TreeViewer treeViewer) throws SystemException { if (treeViewer == null) { return getRootElementFromTestStructureService(); } TreePath[] treePaths = ((ITreeSelection) treeViewer.getSelection()).getPaths(); if (treePaths.length == 0) { return getRootElementFromTestStructureService(); } return (TestStructure) treePaths[0].getLastSegment(); }
From source file:org.thanlwinsoft.doccharconvert.eclipse.editors.ScriptsEditorPart.java
License:Open Source License
private void addCheckerTable(ExpandableComposite parent) { //findSyllableCheckers(); final Tree tree = new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL); tree.setHeaderVisible(true);//from ww w. jav a2s .c o m final TreeViewer viewer = new TreeViewer(tree); final ITreeContentProvider contentProvider = new ITreeContentProvider() { public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public Object[] getElements(Object inputElement) { if (inputElement instanceof Checks) { return ((Checks) inputElement).getCheckerArray(); } return null; } @Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof Checker) { return ((Checker) parentElement).getArgArray(); } return null; } @Override public Object getParent(Object element) { Checks checks = parentEditor.getDocument().getSyllableConverter().getChecks(); if (element instanceof Checker) { return checks; } else if (element instanceof Argument) { for (Checker c : checks.getCheckerArray()) { for (Argument a : c.getArgArray()) { if (a == element) return c; } } } return null; } @Override public boolean hasChildren(Object element) { if (element instanceof Argument) return false; else if (element instanceof Checker && ((Checker) element).sizeOfArgArray() > 0) return true; else if (element instanceof Checks && ((Checks) element).sizeOfCheckerArray() > 0) return true; return false; } }; viewer.setContentProvider(contentProvider); TreeColumn columnA = new TreeColumn(tree, SWT.LEAD); columnA.setText(MessageUtil.getString("Type")); columnA.setWidth(COL_WIDTH); TreeColumn columnB = new TreeColumn(tree, SWT.LEAD); columnB.setText(MessageUtil.getString("Value")); columnB.setWidth(COL_WIDTH); TreeViewerColumn colAViewer = new TreeViewerColumn(viewer, columnA); TreeViewerColumn colBViewer = new TreeViewerColumn(viewer, columnB); colAViewer.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof Checker) { Checker c = (Checker) element; if (parentEditor.getCheckerNameMap().containsKey(c.getClass1())) return parentEditor.getCheckerNameMap().get(c.getClass1()); return c.getClass1(); } if (element instanceof Argument) { Checks checks = parentEditor.getDocument().getSyllableConverter().getChecks(); for (Checker c : checks.getCheckerArray()) { for (int i = 0; i < c.sizeOfArgArray(); i++) { if (c.getArgArray(i) == element) { if (parentEditor.getCheckerMap().containsKey(c.getClass1())) { SyllableChecker sc = parentEditor.getCheckerMap().get(c.getClass1()); String[] argDesc = sc.getArgumentDescriptions(); if (argDesc.length > i) return argDesc[i]; return Integer.toString(i); } } } } } return super.getText(element); } }); colBViewer.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof Argument) { Argument arg = (Argument) element; StringBuilder value = new StringBuilder(); NodeList textNodes = arg.getDomNode().getChildNodes(); for (int i = 0; i < textNodes.getLength(); i++) { value.append(textNodes.item(i).getNodeValue()); } return value.toString(); } return ""; } }); colBViewer.setEditingSupport(new EditingSupport(viewer) { private TextCellEditor textEditor = new TextCellEditor(tree); @Override protected boolean canEdit(Object element) { if (element instanceof Argument) return true; return false; } @Override protected CellEditor getCellEditor(Object element) { return textEditor; } @Override protected Object getValue(Object element) { if (element instanceof Argument) { Argument arg = (Argument) element; StringBuilder value = new StringBuilder(); NodeList textNodes = arg.getDomNode().getChildNodes(); for (int i = 0; i < textNodes.getLength(); i++) { value.append(textNodes.item(i).getNodeValue()); } return value.toString(); } return ""; } @Override protected void setValue(Object element, Object value) { String newValue = value.toString(); Argument arg = (Argument) element; while (arg.getDomNode().hasChildNodes()) arg.getDomNode().removeChild(arg.getDomNode().getLastChild()); org.w3c.dom.Text textNode = arg.getDomNode().getOwnerDocument().createTextNode(newValue); arg.getDomNode().appendChild(textNode); viewer.refresh(); parentEditor.setDirty(true); } }); viewer.setInput(parentEditor.getDocument().getSyllableConverter().getChecks()); MenuManager menuManager = new MenuManager( parentEditor.getPartName() + ":" + this.getPartName() + "Checkers"); for (String className : parentEditor.getCheckerNameMap().keySet()) { final String clazzName = className; Action newChecker = new Action() { @Override public void run() { Checks checks = parentEditor.getDocument().getSyllableConverter().getChecks(); if (checks == null) checks = parentEditor.getDocument().getSyllableConverter().addNewChecks(); Checker checker = checks.addNewChecker(); checker.setClass1(clazzName); SyllableChecker theChecker = parentEditor.getCheckerMap().get(clazzName); for (java.lang.Class<?> argType : theChecker.getArgumentTypes()) { if (argType.equals(File.class) || argType.equals(URL.class)) { checker.addNewArg().setType(Type.FILE); } else { checker.addNewArg(); } } viewer.setInput(checks); viewer.refresh(); parentEditor.setDirty(true); form.reflow(true); } }; newChecker .setText(MessageUtil.getString("AddChecker", parentEditor.getCheckerNameMap().get(className))); menuManager.add(newChecker); } Action deleteChecker = new Action() { @Override public void run() { Checks checks = parentEditor.getDocument().getSyllableConverter().getChecks(); ITreeSelection selection = (ITreeSelection) viewer.getSelection(); Object s = selection.getFirstElement(); if (s instanceof Argument) { s = contentProvider.getParent(s); } if (s instanceof Checker) { Checker c = (Checker) s; for (int i = 0; i < checks.sizeOfCheckerArray(); i++) { if (checks.getCheckerArray(i) == c) { checks.removeChecker(i); viewer.refresh(); parentEditor.setDirty(true); break; } } } } }; deleteChecker.setText(MessageUtil.getString("DeleteChecker")); menuManager.add(deleteChecker); Action moveUpAction = new Action() { public void run() { Checks checks = parentEditor.getDocument().getSyllableConverter().getChecks(); ITreeSelection selection = (ITreeSelection) viewer.getSelection(); Object s = selection.getFirstElement(); if (s instanceof Argument) { s = contentProvider.getParent(s); } if (s instanceof Checker) { Checker c = (Checker) s; int mapIndex = -1; for (int i = 0; i < checks.sizeOfCheckerArray(); i++) { if (checks.getCheckerArray(i) == c) mapIndex = i; } if (mapIndex > 0) { XmlObject toMove = checks.getCheckerArray(mapIndex).copy(); checks.removeChecker(mapIndex); Checker moved = checks.insertNewChecker(mapIndex - 1); moved.set(toMove); viewer.refresh(); parentEditor.setDirty(true); } } } }; moveUpAction.setId("moveUp"); moveUpAction.setText(MessageUtil.getString("MoveUp")); moveUpAction.setToolTipText(MessageUtil.getString("MoveUpToolTip")); Action moveDownAction = new Action() { public void run() { Checks checks = parentEditor.getDocument().getSyllableConverter().getChecks(); ITreeSelection selection = (ITreeSelection) viewer.getSelection(); Object s = selection.getFirstElement(); if (s instanceof Argument) { s = contentProvider.getParent(s); } if (s instanceof Checker) { Checker c = (Checker) s; int mapIndex = -1; for (int i = 0; i < checks.sizeOfCheckerArray(); i++) { if (checks.getCheckerArray(i) == c) mapIndex = i; } if (mapIndex > -1 && mapIndex + 1 < checks.sizeOfCheckerArray()) { XmlObject toMove = checks.getCheckerArray(mapIndex).copy(); checks.removeChecker(mapIndex); Checker moved = checks.insertNewChecker(mapIndex + 1); moved.set(toMove); viewer.refresh(); parentEditor.setDirty(true); } } } }; moveDownAction.setId("moveDown"); moveDownAction.setText(MessageUtil.getString("MoveDown")); moveDownAction.setToolTipText(MessageUtil.getString("MoveDownToolTip")); menuManager.add(moveUpAction); menuManager.add(moveDownAction); toolkit.adapt(tree); tree.setMenu(menuManager.createContextMenu(tree)); parent.setClient(tree); viewer.refresh(); }
From source file:org.wso2.developerstudio.appfactory.ui.views.AppfactoryApplicationListView.java
License:Open Source License
public void createPartControl(Composite parent) { // this.parent = parent; contentProvider = new AppListContentProvider(appLists); labelProvider = new AppListLabelProvider(); createToolbar();/*from w ww . j a va 2s .c o m*/ model = new AppListModel(); viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); viewer.setContentProvider(contentProvider); viewer.setLabelProvider(labelProvider); viewer.setInput(model); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { try { final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); Object selectedNode = selection.getFirstElement(); ApplicationInfo appInfo = null; if (selectedNode instanceof ApplicationInfo) { appInfo = (ApplicationInfo) selection.getFirstElement(); } else if (selectedNode instanceof AppVersionGroup) { appInfo = ((AppVersionGroup) selection.getFirstElement()).getApplication(); } else if (selectedNode instanceof AppVersionInfo) { appInfo = ((AppVersionInfo) selection.getFirstElement()).getVersionGroup().getApplication(); } appDetailView.clear(); if (!appInfo.getappVersionList().isEmpty()) { appDetailView.updateView(appInfo); } } catch (Throwable e) { /*safe to ignore*/ } } }); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { try { TreeViewer viewer = (TreeViewer) event.getViewer(); IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection(); Object selectedNode = thisSelection.getFirstElement(); if (selectedNode instanceof AppVersionInfo) { viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } else if (selectedNode instanceof AppVersionGroup) { viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } else if (selectedNode instanceof ApplicationInfo) { ApplicationInfo appInfo = (ApplicationInfo) selectedNode; if (appInfo.isLoaded()) { viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } else { getAppVersions(appInfo); getDataSources(appInfo); } } } catch (Throwable e) { /*safe to ignore*/ } } }); menuMgr = new MenuManager(); Menu menu = menuMgr.createContextMenu(viewer.getControl()); menu.setVisible(true); menuMgr.addMenuListener(new IMenuListener() { @Override public void menuAboutToShow(final IMenuManager manager) { try { if (viewer.getSelection().isEmpty()) { return; } if (viewer.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.getFirstElement() instanceof AppVersionInfo) { final AppVersionInfo appVersionInfo = (AppVersionInfo) selection.getFirstElement(); manager.add(checkOutAndImportAction(appVersionInfo)); manager.add(importAction(appVersionInfo)); manager.add(checkOutAction(appVersionInfo)); manager.add(buildAction(appVersionInfo)); if (!appVersionInfo.isForkedVersion()) { manager.add(repoDeployAction(appVersionInfo)); } manager.add(buildInfoAction(appVersionInfo)); } else if (selection.getFirstElement() instanceof ApplicationInfo) { ApplicationInfo appInfo = (ApplicationInfo) selection.getFirstElement(); String title = ""; //$NON-NLS-1$ if (appInfo.getappVersionList().isEmpty()) { title = "Open "; //$NON-NLS-1$ } else { title = "Update"; //$NON-NLS-1$ } manager.add(appOpenAction(appInfo, title)); manager.add(mainRepoSettingsAction(appInfo)); manager.add(forkedRepoSettingsAction(appInfo)); } else if (selection.getFirstElement() instanceof AppVersionGroup) { // AppVersionGroup group = (AppVersionGroup) selection.getFirstElement(); // TODO } } } catch (Throwable e) { /*safe to ignore*/ } } }); menuMgr.setRemoveAllWhenShown(true); viewer.getControl().setMenu(menu); updateApplicationView(); }