List of usage examples for org.eclipse.jface.viewers TreeViewer getControl
@Override
public Control getControl()
From source file:org.key_project.sed.ui.util.SEDUIUtil.java
License:Open Source License
/** * Checks if the given {@link Object} is unknown in the {@link TreeViewer}. * @param treeViewer The {@link TreeViewer}. * @param toTest The {@link Object} to test. * @return {@code true} is unknown, {@code false} is known. *//*from w ww . j a v a2s. co m*/ protected static boolean isUnknownInTreeViewer(final TreeViewer treeViewer, final Object toTest) { if (!treeViewer.getControl().isDisposed()) { IRunnableWithResult<Boolean> run = new AbstractRunnableWithResult<Boolean>() { @Override public void run() { Widget item = treeViewer.testFindItem(toTest); setResult(item == null); } }; treeViewer.getControl().getDisplay().syncExec(run); return run.getResult() != null && run.getResult().booleanValue(); } else { return false; } }
From source file:org.key_project.sed.ui.util.SEDUIUtil.java
License:Open Source License
/** * Injects all unknown elements of the {@link TreeViewer} in the * parent hierarchy order defined by the given {@link Deque}. * @param treeViewer The {@link TreeViewer} to make elements known in. * @param injectQue The {@link Deque} which contains the unknown elements from parent to leaf. * @param monitor The {@link IProgressMonitor} to use. * @throws DebugException Occurred Exception *//*from w w w . j av a 2 s .c om*/ protected static void injectElements(final TreeViewer treeViewer, Deque<Object> injectQue, final IProgressMonitor monitor) throws DebugException { SWTUtil.checkCanceled(monitor); // Check if something must be done if (!CollectionUtil.isEmpty(injectQue)) { // Check if the provider is of the expected form. IContentProvider cp = treeViewer.getContentProvider(); if (cp instanceof ILazyTreePathContentProvider) { final ILazyTreePathContentProvider lazyContentProvider = (ILazyTreePathContentProvider) cp; // Create tree path to last known element final LinkedList<Object> tpElements = new LinkedList<Object>(); Object knownParent = getParent(injectQue.getFirst()); while (knownParent != null) { SWTUtil.checkCanceled(monitor); tpElements.addFirst(knownParent); knownParent = getParent(knownParent); } // Injects elements starting at the root to make them familiar in tree for (final Object toInject : injectQue) { SWTUtil.checkCanceled(monitor); // Compute index on parent Object parent = getParent(toInject); final int viewIndex = ArrayUtil.indexOf(getChildren(parent), toInject); if (viewIndex >= 0) { // Create tree path to current element final TreePath tp = new TreePath(tpElements.toArray()); // Create job collector to collect update jobs started by the Debug API IFilter<Job> jobFilter = new IFilter<Job>() { @Override public boolean select(Job element) { String className = element.getClass().getName(); return className.startsWith("org.eclipse.debug") || className.startsWith("org.eclipse.ui.internal.progress"); } }; ScheduledJobCollector collector = new ScheduledJobCollector(jobFilter); try { // Start collecting update jobs started by the debug view collector.start(); IRunnableWithException run = new AbstractRunnableWithException() { @Override public void run() { try { // Inject the element into the TreeViewer lazyContentProvider.updateChildCount(tp, 0); lazyContentProvider.updateElement(tp, viewIndex); } catch (Exception e) { setException(e); } } }; if (!treeViewer.getControl().isDisposed()) { treeViewer.getControl().getDisplay().syncExec(run); if (run.getException() != null) { throw new DebugException(LogUtil.getLogger().createErrorStatus( run.getException().getMessage(), run.getException())); } } else { monitor.setCanceled(true); } } finally { // Stop collecting update jobs collector.stop(); } // Wait until all update jobs have finished before Job[] jobs = collector.getJobs(); for (Job job : jobs) { SWTUtil.checkCanceled(monitor); JobUtil.waitFor(job, 10); } // Wait until the element is known by the viewer since sometimes waiting for jobs is not enough. int numOfTries = 0; while (!treeViewer.getControl().isDisposed() && SWTUtil.testFindItem(treeViewer, toInject) == null && numOfTries < 200) { // Try at most for two seconds SWTUtil.checkCanceled(monitor); try { Thread.sleep(10); } catch (InterruptedException e) { // Nothing to do. } finally { numOfTries++; } } // Update tree path for next loop iteration tpElements.add(toInject); // Update monitor monitor.worked(1); } else { // Something has changed in between and injection is not possible. monitor.setCanceled(true); } } } } }
From source file:org.key_project.util.eclipse.swt.SWTUtil.java
License:Open Source License
/** * Thread save execution of {@link TreeViewer#expandToLevel(Object, int)}. * @param viewer The {@link TreeViewer} to expand element in. * @param elementOrTreePaths The element to expand. * @param level Non-negative level, or {@link AbstractTreeViewer#ALL_LEVELS} to expand all levels of the tree. *///from ww w . j av a 2 s. com public static void expandToLevel(final TreeViewer viewer, final Object elementOrTreePath, final int level) { if (viewer != null && !viewer.getControl().isDisposed()) { viewer.getControl().getDisplay().syncExec(new Runnable() { @Override public void run() { viewer.expandToLevel(elementOrTreePath, level); } }); } }
From source file:org.lyllo.kickassplugin.editor.ASMContentOutlinePage.java
License:Open Source License
/** * Sets the input for the outlinepage.//from w w w .j a v a 2s .com * * @param input The new input. */ public void setInput(IEditorInput input) { this.input = input; final TreeViewer viewer = getTreeViewer(); if ((viewer != null) && (viewer.getContentProvider() != null)) { editor.getSite().getShell().getDisplay().asyncExec(new Runnable() { public void run() { Control control = viewer.getControl(); control.setRedraw(false); ITextSelection textselect = (ITextSelection) editor.getSelectionProvider().getSelection(); TreeObject treeobj = getSelectedTreeObject(viewer); viewer.setInput(ASMContentOutlinePage.this.input); viewer.refresh(); viewer.expandAll(); selectTreeObject(viewer, treeobj); editor.getSelectionProvider().setSelection(textselect); control.setRedraw(true); } }); } }
From source file:org.mailster.gui.prefs.ConfigurationDialog.java
License:Open Source License
/** * Add the listeners to the tree viewer. * /*ww w . j a v a 2 s .c o m*/ * @param viewer * @since 3.1 */ protected void addListeners(final TreeViewer viewer) { viewer.addPostSelectionChangedListener(new ISelectionChangedListener() { private void handleError() { try { // remove the listener temporarily so that the events caused // by the error handling dont further cause error handling // to occur. viewer.removePostSelectionChangedListener(this); showPageFlippingAbortError(); selectLastVisitedPageAgain(); clearLastSelectedNode(); } finally { viewer.addPostSelectionChangedListener(this); } } public void selectionChanged(SelectionChangedEvent event) { Object selection = getSingleSelection(event.getSelection()); if (selection instanceof IPreferenceNode) { if (!isCurrentPageValid()) { handleError(); } else if (!showPage((IPreferenceNode) selection)) { // Page flipping wasn't successful handleError(); } else { // Everything went well lastSuccessfulNode = (IPreferenceNode) selection; } } } }); ((Tree) viewer.getControl()).addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(final SelectionEvent event) { ISelection selection = viewer.getSelection(); if (selection.isEmpty()) return; IPreferenceNode singleSelection = getSingleSelection(selection); boolean expanded = viewer.getExpandedState(singleSelection); viewer.setExpandedState(singleSelection, !expanded); } }); // Register help listener on the tree to use context sensitive help viewer.getControl().addHelpListener(new HelpListener() { public void helpRequested(HelpEvent event) { // call perform help on the current page if (getCurrentPage() != null) { getCurrentPage().performHelp(); } } }); }
From source file:org.modelversioning.emfprofile.application.registry.ui.views.EMFProfileApplicationsView.java
License:Open Source License
/** * This is a callback that will allow us to create the viewer and initialize * it./*from w w w. j a v a 2 s. c o m*/ */ public void createPartControl(Composite parent) { viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); drillDownAdapter = new DrillDownAdapter(viewer); viewer.setLabelProvider(new ProfileProviderLabelAdapter(getAdapterFactory())); viewer.setContentProvider(new ProfileProviderContentAdapter(getAdapterFactory())); viewer.setSorter(createGenericEObjectSorter()); viewer.setAutoExpandLevel(2); getSite().setSelectionProvider(viewer); EMFProfileApplicationsView.resourceManager = new LocalResourceManager(JFaceResources.getResources()); viewer.setInput(Collections.emptyList()); ActiveEditorObserver.INSTANCE.setViewer(viewer); new AdapterFactoryTreeEditor(viewer.getTree(), adapterFactory); MenuManager menuManager = new MenuManager("profileApplicationsPopupMenu"); menuManager.setRemoveAllWhenShown(true); menuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { EMFProfileApplicationsView.this.fillContextMenu(manager); } }); Menu menu = menuManager.createContextMenu(viewer.getControl()); viewer.getControl().setMenu(menu); getSite().registerContextMenu(menuManager, viewer); // To this group come New Child/Sibling contributions menuManager.add(new Separator("edit")); // Other plug-ins can contribute there actions here menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); drillDownAdapter.addNavigationActions(menuManager); drillDownAdapter.addNavigationActions(getViewSite().getActionBars().getToolBarManager()); getViewSite().getActionBars().getToolBarManager().add(new Separator()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { TreeViewer viewer = (TreeViewer) event.getViewer(); IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection(); Object selectedNode = thisSelection.getFirstElement(); viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } }); nestingCommonModelElements = new NestingCommonModelElementsInStereotypeApplications(); nestingCommonModelElements.contributeToMenu(menuManager); menuManager.addMenuListener(nestingCommonModelElements); viewer.addSelectionChangedListener(nestingCommonModelElements); // To enable the key binding we need to activate context // The reason why, is because this context overrides the // default key binding of workbench, e.g. key DEL IContextService contextService = (IContextService) getSite().getService(IContextService.class); IContextActivation contextActivation = contextService .activateContext("org.modelversioning.emfprofile.application.registry.ui.keybindingcontext"); }
From source file:org.multicore_association.shim.edit.actions.PasteChildAction.java
License:MIT License
/** * Constructs a new instance of PasteChildAction. * /*from w ww.ja v a2s. c o m*/ * @param viewer * the tree viewer with this menu */ public PasteChildAction(TreeViewer viewer) { this.viewer = viewer; this.shell = viewer.getControl().getShell(); }
From source file:org.nfc.eclipse.plugin.model.NdefRecordModelMenuListener.java
License:Open Source License
public NdefRecordModelMenuListener(final TreeViewer treeViewer, final NdefEditorPart ndefEditorPart, NdefMultiPageEditor ndefMultiPageEditor, NdefRecordModelParent root) { this.treeViewer = treeViewer; this.editorPart = ndefEditorPart; this.ndefMultiPageEditor = ndefMultiPageEditor; this.root = root; initializeRootAddInsert();//from www. jav a2 s. c o m // generic control // insert before insertGenericControlDataSiblingRecordBefore = new MenuManager("Insert record before", null); for (NdefRecordType recordType : genericControlRecordDataChildRecordTypes) { insertGenericControlDataSiblingRecordBefore .add(new InsertSiblingAction(recordType.getRecordLabel(), recordType.getRecordClass(), 0)); } // insert after insertGenericControlDataSiblingRecordAfter = new MenuManager("Insert record after", null); for (NdefRecordType recordType : genericControlRecordDataChildRecordTypes) { insertGenericControlDataSiblingRecordAfter .add(new InsertSiblingAction(recordType.getRecordLabel(), recordType.getRecordClass(), 1)); } // just insert addGenericControlDataChildRecord = new MenuManager("Add record", null); for (NdefRecordType recordType : genericControlRecordDataChildRecordTypes) { addGenericControlDataChildRecord .add(new AddChildAction(recordType.getRecordLabel(), recordType.getRecordClass())); } addGenericControlActionRecord = new MenuManager("Add record", null); addGenericControlActionRecord.add(new AddChildAction( NdefRecordType.getType(GcActionRecord.class).getRecordLabel(), GcActionRecord.class)); addGenericControlDataRecord = new MenuManager("Add record", null); addGenericControlDataRecord.add(new AddChildAction( NdefRecordType.getType(GcDataRecord.class).getRecordLabel(), GcDataRecord.class)); addGenericControlDataOrActionRecord = new MenuManager("Add record", null); addGenericControlDataOrActionRecord.add(new AddChildAction( NdefRecordType.getType(GcActionRecord.class).getRecordLabel(), GcActionRecord.class)); addGenericControlDataOrActionRecord.add(new AddChildAction( NdefRecordType.getType(GcDataRecord.class).getRecordLabel(), GcDataRecord.class)); removeRecord = new RemoveAction("Remove record"); setGenericControlTargetRecord = new MenuManager("Set target identifier", null); for (NdefRecordType recordType : genericControlRecordTargetRecordTypes) { setGenericControlTargetRecord .add(new SetChildAction(recordType.getRecordLabel(), recordType.getRecordClass())); } setGenericControlActionRecord = new MenuManager("Set action record", null); for (NdefRecordType recordType : rootRecordTypes) { setGenericControlActionRecord .add(new SetChildAction(recordType.getRecordLabel(), recordType.getRecordClass())); } MenuManager setGenericControlActionRecordHandoverRecords = new MenuManager("Handover records", null); for (NdefRecordType recordType : handoverRecordTypes) { setGenericControlActionRecordHandoverRecords .add(new SetChildAction(recordType.getRecordLabel(), recordType.getRecordClass())); } setGenericControlActionRecord.add(setGenericControlActionRecordHandoverRecords); // HandoverRequestRecord insertAlternativeCarrierRecordSiblingRecordBefore = new InsertSiblingAction( "Insert " + NdefRecordType.getType(AlternativeCarrierRecord.class).getRecordLabel() + " before", AlternativeCarrierRecord.class, 0); insertAlternativeCarrierRecordSiblingRecordAfter = new InsertSiblingAction( "Insert " + NdefRecordType.getType(AlternativeCarrierRecord.class).getRecordLabel() + " after", AlternativeCarrierRecord.class, 1); addAlternativeCarrierRecordChildRecord = new AddChildAction( "Add " + NdefRecordType.getType(AlternativeCarrierRecord.class).getRecordLabel(), AlternativeCarrierRecord.class); // HandoverCarrierRecord // well known type setHandoverCarrierWellKnownType = new MenuManager("Set carrier type", null); for (NdefRecordType recordType : wellKnownRecordTypes) { setHandoverCarrierWellKnownType .add(new SetChildAction(recordType.getRecordLabel(), recordType.getRecordClass())); } // external type setHandoverCarrierExternalType = new MenuManager("Set carrier type", null); for (NdefRecordType recordType : externalRecordTypes) { setHandoverCarrierExternalType .add(new SetChildAction(recordType.getRecordLabel(), recordType.getRecordClass())); } // list addListItem = new AddListItemAction("Add item"); insertListItemSiblingBefore = new InsertListItemAction("Insert item before", 0); insertListItemSiblingAfter = new InsertListItemAction("Insert item after", 1); removeListItem = new RemoveListItemAction("Remove item"); // mime interaction saveContent = new SaveContentAction("Save to file"); reloadContent = new ReloadContentAction("Reload previous file"); manager.setRemoveAllWhenShown(true); manager.addMenuListener(this); treeViewer.getControl().setMenu(manager.createContextMenu(treeViewer.getControl())); //triggerColumnSelectedColumn(treeViewer); treeViewer.addSelectionChangedListener(this); }
From source file:org.ofbiz.plugin.ExplorerView.java
License:Apache License
public void setFocus() { TreeViewer viewer = filteredTree.getViewer(); viewer.getControl().setFocus(); }
From source file:org.ofbiz.plugin.ExplorerView.java
License:Apache License
private void hookContextMenu() { MenuManager menuMgr = new MenuManager("#PopupMenu"); menuMgr.setRemoveAllWhenShown(true); menuMgr.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { ExplorerView.this.fillContextMenu(manager); }// w w w .ja v a 2s . com }); TreeViewer viewer = filteredTree.getViewer(); Menu menu = menuMgr.createContextMenu(viewer.getControl()); viewer.getControl().setMenu(menu); getSite().registerContextMenu(menuMgr, viewer); }