Example usage for org.eclipse.jface.viewers TreeViewer getControl

List of usage examples for org.eclipse.jface.viewers TreeViewer getControl

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer getControl.

Prototype

@Override
    public Control getControl() 

Source Link

Usage

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);
}