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

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

Introduction

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

Prototype

@Override
public void setSelection(ISelection selection, boolean reveal) 

Source Link

Document

Sets a new selection for this viewer and optionally makes it visible.

Usage

From source file:org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal.java

License:Open Source License

public static void preservingSelection(final TreeViewer viewer, Runnable runnable) {
    final ISelection selection = viewer.getSelection();

    runnable.run();// w w  w. jav  a 2  s .c  o m

    if (selection != null) {
        ISelection newSelection = viewer.getSelection();
        if ((newSelection == null || newSelection.isEmpty()) && !(selection == null || selection.isEmpty())) {
            // delay execution to ensure that any delayed tree updates such as expand all have been processed and the selection is revealed properly
            Display.getDefault().asyncExec(new Runnable() {
                public void run() {
                    viewer.setSelection(selection, true);
                }
            });
        } else if (newSelection instanceof ITreeSelection && !newSelection.isEmpty()) {
            viewer.reveal(((ITreeSelection) newSelection).getFirstElement());
        }
    }
}

From source file:org.eclipse.oomph.setup.presentation.templates.GenericSetupTemplate.java

License:Open Source License

protected void updateSelection(VariableTask variable) {
    TreeViewer previewer = getContainer().getPreviewer();
    if (previewer != null) {
        focusUsages.clear();//w ww  .ja v  a  2  s . c o  m
        Set<Setting> settings = usages == null ? null : usages.get(variable);
        if (settings != null) {
            for (Setting setting : settings) {
                CollectionUtil.add(focusUsages, setting.getEObject(), setting.getEStructuralFeature());
            }
        }

        previewer.refresh(true);

        if (focusUsages.isEmpty()) {
            String name = variable.getName();
            if ("setup.location".equals(name) || "setup.filename".equals(name)) {
                previewer.setSelection(new StructuredSelection(getResource()), true);
            }
        } else {
            previewer.setSelection(new StructuredSelection(focusUsages.keySet().toArray()), true);
        }
    }
}

From source file:org.eclipse.papyrus.diagram.common.sheet.ReferenceElementChooserDialog.java

License:Open Source License

@Override
protected void setSelection(TreeViewer treeViewer) {
    Object featureValue = mySourceObject.eGet(myFeature);
    if (featureValue != null) {
        treeViewer.expandToLevel(3);/*www  .jav  a2s.c o m*/
        treeViewer.setSelection(new StructuredSelection(featureValue), true);
    }
}

From source file:org.eclipse.papyrus.infra.widgets.strategy.WorkspaceRevealStrategy.java

License:Open Source License

@Override
public void revealSemanticElement(List<?> elementsToReveal) {
    if (viewer instanceof TreeViewer) {
        TreeViewer treeViewer = (TreeViewer) viewer;
        TreePath[] paths = new TreePath[elementsToReveal.size()];
        int i = 0;

        List<?> roots = Arrays.asList(getElements());

        for (Object elementToReveal : elementsToReveal) {
            LinkedList<IResource> segments = new LinkedList<IResource>();

            if (elementToReveal instanceof IResource) {
                IResource currentElement = (IResource) elementToReveal;

                segments.add(currentElement);

                currentElement = currentElement.getParent();
                while (currentElement != null) {
                    segments.addFirst(currentElement);

                    if (roots.contains(currentElement)) {
                        break; //If the tree root is not the Workspace Root, stop now
                    }//from  w w w . j a  va  2 s  .c  o m
                    currentElement = currentElement.getParent();
                }
            }

            paths[i++] = new TreePath(segments.toArray());
        }

        TreeSelection selection = new TreeSelection(paths);
        treeViewer.setSelection(selection, true);
    } else {
        super.revealSemanticElement(elementsToReveal);
    }
}

From source file:org.eclipse.stardust.modeling.transformation.debug.views.TransformationMappingDebugView.java

License:Open Source License

public void highlightOutMessageNode(String fieldPath) {
    // This counter should be incremented on each iter.next() call which succeeds.
    int usedFieldPathSegmentCounter = 0;
    Iterator iter = StringUtils.split(fieldPath, "/"); //$NON-NLS-1$
    // if no path at all -> return
    if (!iter.hasNext()) {
        // TODO: log this situation
        return;//from   w w  w. j  a v  a 2  s  .c  o m
    }

    TreeViewer target = controlsManager.getTargetMessageTreeViewer();
    MultipleAccessPathBrowserContentProvider contentProvider = (MultipleAccessPathBrowserContentProvider) target
            .getContentProvider();

    TreeItem[] items = target.getTree().getItems();

    String rootItemName = (String) iter.next();
    ++usedFieldPathSegmentCounter;

    TreeItem rootItem = null;
    for (int idx = 0; idx < items.length; idx++) {
        rootItem = items[idx];
        if (rootItemName.equals(rootItem.getText())) {
            break;
        }
    }

    // if no root item with this name exists -> return
    if (null == rootItem) {
        // TODO: log this situation
        return;
    }

    List itemData = CollectionUtils.newArrayList();
    StructAccessPointType sap = (StructAccessPointType) rootItem.getData();
    itemData.add(sap);

    // search for all children selected by field path elements
    boolean hasChildren = contentProvider.hasChildren(sap);
    while (hasChildren && iter.hasNext()) {
        hasChildren = false;
        String nextItemName = (String) iter.next();
        ++usedFieldPathSegmentCounter;

        Object[] children = contentProvider.getChildren(sap);
        for (int idx = 0; idx < children.length; idx++) {
            sap = (StructAccessPointType) children[idx];
            if (sap.getId().equals(nextItemName)) {
                itemData.add(sap);
                hasChildren = contentProvider.hasChildren(sap);
                break;
            }
        }
    }

    if (usedFieldPathSegmentCounter != itemData.size()) {
        // TODO: log this situation
        return;
    }

    // only set new selection if current selection is the same.
    TreeSelection selection = (TreeSelection) target.getSelection();
    TreePath[] selectedPath = selection.getPathsFor(itemData.get(itemData.size() - 1));
    if (selectedPath.length == 0) {
        target.setSelection(new TreeSelection(new TreePath(itemData.toArray())), true);
    }
}

From source file:org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards.NewNodeWizard.java

License:Open Source License

/**
 * Select the specified node in the selection provider.
 *
 * @param node The node to be selected./*from w ww.  ja  va 2 s . c  o  m*/
 */
void selectNewNode(IFSTreeNode node) {
    TreeViewer viewer = getFocusedViewer();
    if (viewer != null) {
        viewer.refresh(folder);
        ISelection selection = new StructuredSelection(node);
        viewer.setSelection(selection, true);
    }
}

From source file:org.eclipse.team.internal.ui.synchronize.AbstractTreeViewerAdvisor.java

License:Open Source License

private static void setSelection(TreeViewer viewer, TreeItem ti, boolean fireOpen, boolean expandOnly) {
    if (ti != null) {
        Object data = ti.getData();
        if (data != null) {
            // Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
            ISelection selection = new StructuredSelection(data);
            if (expandOnly) {
                viewer.expandToLevel(data, 0);
            } else {
                viewer.setSelection(selection, true);
                ISelection currentSelection = viewer.getSelection();
                if (fireOpen && currentSelection != null && selection.equals(currentSelection)) {
                    if (viewer instanceof ITreeViewerAccessor) {
                        ((ITreeViewerAccessor) viewer).openSelection();
                    }//www  . ja v a 2s  .  co m
                }
            }
        }
    }
}

From source file:org.eclipse.team.svn.ui.history.SVNHistoryPage.java

License:Open Source License

protected void fetchRemoteHistory(final GetLogMessagesOperation msgsOp) {
    msgsOp.setIncludeMerged(SVNTeamPreferences.getMergeBoolean(SVNTeamUIPlugin.instance().getPreferenceStore(),
            SVNTeamPreferences.MERGE_INCLUDE_MERGED_NAME));

    final IStructuredSelection selected = (IStructuredSelection) this.history.getTreeViewer().getSelection();
    IActionOperation showOp = new AbstractActionOperation("Operation_HShowHistory", SVNUIMessages.class) { //$NON-NLS-1$
        private long revision = SVNHistoryPage.this.currentRevision;

        protected void runImpl(IProgressMonitor monitor) throws Exception {
            IRepositoryResource resource = SVNHistoryPage.this.repositoryResource;
            if (msgsOp.getExecutionState() != IActionOperation.OK || resource == null) {
                SVNHistoryPage.this.pending = false;
                UIMonitorUtility.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        SVNHistoryPage.this.history.refresh(LogMessagesComposite.REFRESH_ALL);
                    }/*w ww.java 2 s.c om*/
                });
                return;
            }
            if (SVNHistoryPage.this.wcResource == null) {
                this.revision = resource.getRevision();
            }

            if (!resource.equals(msgsOp.getResource())) {
                return;
            }

            SVNHistoryPage.this.currentRevision = this.revision;
            SVNHistoryPage.this.addPage(msgsOp.getMessages());

            UIMonitorUtility.getDisplay().syncExec(new Runnable() {
                public void run() {
                    SVNHistoryPage.this.history.refresh(LogMessagesComposite.REFRESH_ALL);
                    SVNHistoryPage.this.setButtonsEnablement();

                    TreeViewer treeTable = SVNHistoryPage.this.history.getTreeViewer();
                    if (!treeTable.getTree().isDisposed() && treeTable.getTree().getItems().length > 0) {
                        if (selected.size() != 0) {
                            treeTable.setSelection(selected, true);
                        } else {
                            TreeItem firstItem = treeTable.getTree().getItem(0);
                            if (((ILogNode) firstItem.getData()).getType() == ILogNode.TYPE_CATEGORY) {
                                firstItem = firstItem.getItem(0);
                            }
                            treeTable.getTree().setSelection(firstItem);
                        }
                        SVNHistoryPage.this.history.refresh(LogMessagesComposite.REFRESH_UI_AFFECTED);
                    }
                }
            });
        }
    };
    CompositeOperation op = new CompositeOperation(showOp.getId(), showOp.getMessagesClass(), true);
    op.add(new CorrectRevisionOperation(msgsOp, this.repositoryResource, this.currentRevision,
            this.wcResource));
    op.add(msgsOp);
    op.add(showOp);

    ProgressMonitorUtility.doTaskScheduled(op, false);
}

From source file:org.eclipse.ui.internal.keys.NewKeysPreferencePage.java

License:Open Source License

private void createTree(Composite parent) {
    fPatternFilter = new CategoryPatternFilter(true, fDefaultCategory);
    fPatternFilter.filterCategories(true);

    GridData gridData;/*from w  ww .  jav  a2 s  . co  m*/

    fFilteredTree = new CategoryFilterTree(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER,
            fPatternFilter);
    final GridLayout layout = new GridLayout(1, false);
    layout.marginWidth = 0;
    fFilteredTree.setLayout(layout);
    gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    fFilteredTree.setLayoutData(gridData);

    final TreeViewer viewer = fFilteredTree.getViewer();
    // Make sure the filtered tree has a height of ITEMS_TO_SHOW
    final Tree tree = viewer.getTree();
    tree.setHeaderVisible(true);
    final Object layoutData = tree.getLayoutData();
    if (layoutData instanceof GridData) {
        gridData = (GridData) layoutData;
        final int itemHeight = tree.getItemHeight();
        if (itemHeight > 1) {
            gridData.heightHint = ITEMS_TO_SHOW * itemHeight;
        }
    }

    BindingModelComparator comparator = new BindingModelComparator();
    viewer.setComparator(comparator);

    final TreeColumn commandNameColumn = new TreeColumn(tree, SWT.LEFT, COMMAND_NAME_COLUMN);
    commandNameColumn.setText(NewKeysPreferenceMessages.CommandNameColumn_Text);
    tree.setSortColumn(commandNameColumn);
    tree.setSortDirection(comparator.isAscending() ? SWT.UP : SWT.DOWN);
    commandNameColumn
            .addSelectionListener(new ResortColumn(comparator, commandNameColumn, viewer, COMMAND_NAME_COLUMN));

    final TreeColumn triggerSequenceColumn = new TreeColumn(tree, SWT.LEFT, KEY_SEQUENCE_COLUMN);
    triggerSequenceColumn.setText(NewKeysPreferenceMessages.TriggerSequenceColumn_Text);
    triggerSequenceColumn.addSelectionListener(
            new ResortColumn(comparator, triggerSequenceColumn, viewer, KEY_SEQUENCE_COLUMN));

    final TreeColumn whenColumn = new TreeColumn(tree, SWT.LEFT, CONTEXT_COLUMN);
    whenColumn.setText(NewKeysPreferenceMessages.WhenColumn_Text);
    whenColumn.addSelectionListener(new ResortColumn(comparator, whenColumn, viewer, CONTEXT_COLUMN));

    final TreeColumn categoryColumn = new TreeColumn(tree, SWT.LEFT, CATEGORY_COLUMN);
    categoryColumn.setText(NewKeysPreferenceMessages.CategoryColumn_Text);
    categoryColumn.addSelectionListener(new ResortColumn(comparator, categoryColumn, viewer, CATEGORY_COLUMN));

    final TreeColumn userMarker = new TreeColumn(tree, SWT.LEFT, USER_DELTA_COLUMN);
    userMarker.setText(NewKeysPreferenceMessages.UserColumn_Text);
    userMarker.addSelectionListener(new ResortColumn(comparator, userMarker, viewer, USER_DELTA_COLUMN));

    viewer.setContentProvider(new ModelContentProvider());
    viewer.setLabelProvider(new BindingElementLabelProvider());

    fFilteredTree.getPatternFilter().setIncludeLeadingWildcard(true);
    final TreeColumn[] columns = viewer.getTree().getColumns();

    columns[COMMAND_NAME_COLUMN].setWidth(240);
    columns[KEY_SEQUENCE_COLUMN].setWidth(130);
    columns[CONTEXT_COLUMN].setWidth(130);
    columns[CATEGORY_COLUMN].setWidth(130);
    columns[USER_DELTA_COLUMN].setWidth(50);

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        // When the viewer changes selection, update the model's current
        // selection
        public void selectionChanged(SelectionChangedEvent event) {
            ModelElement binding = (ModelElement) ((IStructuredSelection) event.getSelection())
                    .getFirstElement();
            keyController.getBindingModel().setSelectedElement(binding);
        }
    });

    IPropertyChangeListener treeUpdateListener = new IPropertyChangeListener() {

        // When the model changes a property, update the viewer
        public void propertyChange(PropertyChangeEvent event) {
            if (event.getSource() == keyController.getBindingModel()
                    && CommonModel.PROP_SELECTED_ELEMENT.equals(event.getProperty())) {
                Object newVal = event.getNewValue();
                StructuredSelection structuredSelection = newVal == null ? null
                        : new StructuredSelection(newVal);
                viewer.setSelection(structuredSelection, true);
            } else if (event.getSource() instanceof BindingElement
                    && ModelElement.PROP_MODEL_OBJECT.equals(event.getProperty())) {
                viewer.update(event.getSource(), null);
            } else if (BindingElement.PROP_CONFLICT.equals(event.getProperty())) {
                viewer.update(event.getSource(), null);
            } else if (BindingModel.PROP_BINDINGS.equals(event.getProperty())) {
                viewer.refresh();
            } else if (BindingModel.PROP_BINDING_ADD.equals(event.getProperty())) {
                viewer.add(keyController.getBindingModel(), event.getNewValue());
            } else if (BindingModel.PROP_BINDING_REMOVE.equals(event.getProperty())) {
                viewer.remove(event.getNewValue());
            } else if (BindingModel.PROP_BINDING_FILTER.equals(event.getProperty())) {
                viewer.refresh();
            }
        }
    };
    keyController.addPropertyChangeListener(treeUpdateListener);
    // as far as I got
}

From source file:org.eclipse.ui.internal.themes.ColorsAndFontsPreferencePage.java

License:Open Source License

/**
 * Selects and reveals the given element.
 * //  w w w  . ja  va  2  s  .c om
 * @param selection
 *            the object to select and reveal
 * @since 3.7
 */
private void selectAndReveal(Object selection) {
    TreeViewer viewer = tree.getViewer();
    viewer.setSelection(new StructuredSelection(selection), false);
    viewer.reveal(selection);
    viewer.getTree().setFocus();
}