Example usage for org.eclipse.jface.viewers ITreeSelection getPathsFor

List of usage examples for org.eclipse.jface.viewers ITreeSelection getPathsFor

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ITreeSelection getPathsFor.

Prototype

public TreePath[] getPathsFor(Object element);

Source Link

Document

Returns the paths in this selection whose last segment is equal to the given element

Usage

From source file:com.android.ide.eclipse.adt.internal.wizards.newproject.WorkingSetHelper.java

License:Open Source License

private static IWorkingSet[] getSelectedWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return EMPTY_WORKING_SET_ARRAY;

    ITreeSelection treeSelection = (ITreeSelection) selection;
    if (treeSelection.isEmpty())
        return EMPTY_WORKING_SET_ARRAY;

    List<?> elements = treeSelection.toList();
    if (elements.size() == 1) {
        Object element = elements.get(0);
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return EMPTY_WORKING_SET_ARRAY;

        TreePath path = paths[0];
        if (path.getSegmentCount() == 0)
            return EMPTY_WORKING_SET_ARRAY;

        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return EMPTY_WORKING_SET_ARRAY;

        IWorkingSet workingSetCandidate = (IWorkingSet) candidate;
        if (isValidWorkingSet(workingSetCandidate))
            return new IWorkingSet[] { workingSetCandidate };

        return EMPTY_WORKING_SET_ARRAY;
    }/*from  www.  j  a  v a  2 s .co  m*/

    ArrayList<Object> result = new ArrayList<Object>();
    for (Iterator<?> iterator = elements.iterator(); iterator.hasNext();) {
        Object element = iterator.next();
        if (element instanceof IWorkingSet && isValidWorkingSet((IWorkingSet) element)) {
            result.add(element);
        }
    }
    return result.toArray(new IWorkingSet[result.size()]);
}

From source file:com.liferay.ide.project.ui.upgrade.animated.FindBreakingChangesPage.java

License:Open Source License

public FindBreakingChangesPage(Composite parent, int style, LiferayUpgradeDataModel dataModel) {
    super(parent, style, dataModel, FINDBREACKINGCHANGES_PAGE_ID, true);

    final Composite findBreakingchangesContainer = SWTUtil.createComposite(this, 2, 1, GridData.FILL_BOTH, 0,
            0);//  w  w  w.  j  a  v  a2  s  . com

    _sashForm = new SashForm(findBreakingchangesContainer, SWT.HORIZONTAL | SWT.H_SCROLL);
    _sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));

    SashForm nestedSashForm = new SashForm(_sashForm, SWT.VERTICAL | SWT.H_SCROLL);
    nestedSashForm.setLayoutData(new GridData(GridData.FILL_BOTH));

    GridData treeData = new GridData(GridData.FILL_BOTH);
    treeData.minimumWidth = 200;
    treeData.heightHint = 200;

    _treeViewer = new TreeViewer(nestedSashForm);

    _treeViewer.getTree().setLayoutData(treeData);

    migrationContentProvider = new MigrationContentProvider();

    _treeViewer.setContentProvider(migrationContentProvider);

    ILabelDecorator decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
    _treeViewer.setLabelProvider(new DecoratingLabelProvider(new MigrationLabelProvider(), decorator));
    _treeViewer.setInput(getInitialInput());

    MenuManager menuMgr = new MenuManager();
    IAction removeAction = new RemoveAction(_treeViewer);
    menuMgr.add(removeAction);
    Menu menu = menuMgr.createContextMenu(_treeViewer.getTree());

    _treeViewer.getTree().setMenu(menu);
    _treeViewer.expandAll();

    createTableView(nestedSashForm);

    _browser = new Browser(_sashForm, SWT.BORDER);
    _browser.setLayoutData(new GridData(GridData.FILL_BOTH));

    _treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            List<Problem> problems = null;

            if (showAll) {
                problems = MigrationUtil.getProblemsFromTreeNode(event.getSelection());
            } else {
                problems = MigrationUtil.getCurrentProblemsFromTreeNode(event.getSelection());
            }

            if (problems != null && problems.size() > 0) {
                _problemsViewer.setInput(problems.toArray());
                _problemsViewer.setSelection(new StructuredSelection(problems.get(0)));
            } else {
                _problemsViewer.setInput(null);
            }
        }
    });

    _problemsViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            UIUtil.async(new Runnable() {

                public void run() {
                    updateForm(event);
                }
            }, 50);
        }
    });

    _treeViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();

            if (selection instanceof ITreeSelection) {
                ITreeSelection treeSelection = (ITreeSelection) selection;

                Object selectedItem = treeSelection.getFirstElement();

                if (selectedItem instanceof FileProblems) {
                    MigrationUtil.openEditor((FileProblems) selectedItem);

                    return;
                } else {
                    TreePath[] paths = treeSelection.getPathsFor(selectedItem);

                    for (int i = 0; i < paths.length; i++) {
                        _treeViewer.setExpandedState(paths[i], !_treeViewer.getExpandedState(paths[i]));
                    }
                }
            }
        }
    });

    Composite buttonContainer = new Composite(findBreakingchangesContainer, SWT.NONE);
    GridLayout buttonContainerLayout = new GridLayout(1, false);
    buttonContainerLayout.marginHeight = 0;
    buttonContainerLayout.marginWidth = 0;
    buttonContainer.setLayout(buttonContainerLayout);
    buttonContainer.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));

    Button findbreakingchangesButton = new Button(buttonContainer, SWT.NONE);

    findbreakingchangesButton.setImage(getImage("migration-tasks.png"));
    findbreakingchangesButton.setToolTipText("Find Breaking Changes");

    findbreakingchangesButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            IViewPart view = UIUtil.findView(UpgradeView.ID);
            new RunMigrationToolAction("Run Migration Tool", view.getViewSite().getShell()).run();
        }
    });

    Button correctAllImportIssuesButton = new Button(buttonContainer, SWT.NONE);

    correctAllImportIssuesButton.setImage(getImage("bandaid.gif"));
    correctAllImportIssuesButton.setToolTipText("Automatically Correct Problems");

    correctAllImportIssuesButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            new AutoCorrectAllAction(getInitialInput()).run();
        }
    });

    Button expendAll = new Button(buttonContainer, SWT.NONE);

    expendAll.setImage(getImage("expandall.gif"));
    expendAll.setToolTipText("Expand All");

    expendAll.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            _treeViewer.expandAll();
        }
    });

    Button collapseAll = new Button(buttonContainer, SWT.NONE);

    Image collapseAllImage = PlatformUI.getWorkbench().getSharedImages()
            .getImage(ISharedImages.IMG_ELCL_COLLAPSEALL);

    collapseAll.setImage(collapseAllImage);
    collapseAll.setToolTipText("Collapse All");

    collapseAll.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            _treeViewer.collapseAll();
        }
    });

    Button openIgnoredList = new Button(buttonContainer, SWT.NONE);

    openIgnoredList.setImage(getImage("properties.png"));
    openIgnoredList.setToolTipText("Open Ignored List");

    openIgnoredList.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(parent.getShell(),
                    MigrationProblemPreferencePage.ID, null, null);
            dialog.open();
        }
    });

    Button hideTree = new Button(buttonContainer, SWT.TOGGLE);

    hideTree.setImage(getImage("hide_tree.png"));
    hideTree.setToolTipText("Hide Tree");

    hideTree.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            isBrowserMaximized = !isBrowserMaximized;

            _sashForm.setMaximizedControl(isBrowserMaximized ? _browser : null);
        }
    });

    _sashForm.setWeights(new int[] { 2, 3 });
}

From source file:com.nokia.carbide.cpp.internal.pi.wizards.ui.util.PkgListTreeViewer.java

License:Open Source License

private void toggleSelectionAndUpdateSelectionToViewer(final Object element) {
    ArrayList<TreePath> myNewTreePath;
    ISelection iSelection = this.getSelection();
    ITreeSelection iTreeSelection;
    if (iSelection instanceof TreeSelection) {
        iTreeSelection = (TreeSelection) iSelection;
    } else {/*from  w  w  w.j  ava 2  s.  c o m*/
        return;
    }
    TreePath[] selectedPaths = iTreeSelection.getPaths();

    if (PkgListTree.isFileItem(element)) {
        if (iTreeSelection.getPathsFor(element).length > 0) {
            // file already selected, clear self
            myNewTreePath = buildArrayWithoutElement(selectedPaths, element);
        } else {
            // file not yet selected, select self
            myNewTreePath = new ArrayList<TreePath>();
            for (TreePath path : selectedPaths) {
                myNewTreePath.add(path);
            }
            TreePath self = getTreePathForElement(element);
            if (self != null) {
                myNewTreePath.add(self);
            }
        }
    } else if (PkgListTree.isBuildConfigurationItem(element)) {
        Object projectSelection = contentProvider.getParent(element);
        myNewTreePath = buildArrayWithoutElement(selectedPaths, projectSelection);
        if (iTreeSelection.getPathsFor(element).length > 0) {
            // configuration already selected, clear self and parent project
            // do nothing, myNewTreePath already copied without parent project and self
        } else {
            // configuration not yet selected, clear siblings, select self
            TreePath self = getTreePathForElement(element);
            // myNewTreePath already copied without parent project and self
            if (self != null) {
                myNewTreePath.add(self); // add self back
            }
            TreePath projectPath = getTreePathForElement(projectSelection);
            if (projectPath != null) {
                myNewTreePath.add(projectPath); // add project back
            }
        }
    } else if (PkgListTree.isProjectItem(element)) {
        myNewTreePath = buildArrayWithoutElement(selectedPaths, element);
        if (iTreeSelection.getPathsFor(element).length > 0) {
            // project already selected, clear self and all children configurations
            // do nothing, myNewTreePath already copied without parent project and self
        } else {
            // project not yet selected, select self and a child configuration(default or next valid)
            TreePath self = getTreePathForElement(element);

            // so children are associated
            expandToLevel(self, 1);
            // I don't know why it didn't repaint proper without this
            collapseToLevel(self, 1);

            IProject project = (IProject) element;
            Object[] children = this.getRawChildren(project);

            ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project);
            ICarbideBuildConfiguration configDefault = cpi.getDefaultConfiguration();
            ICarbideBuildConfiguration configDefaultOrFirstGood = null;

            // enabled default or first enabled child
            for (Object child : children) {
                if (itemMap.get(getItemMapKey(child)) == null) {
                    continue;
                }
                if (itemMap.get(getItemMapKey(child)).getEnabled()) {
                    if (configDefaultOrFirstGood == null || ((ICarbideBuildConfiguration) child)
                            .getDisplayString().equals(configDefault.getDisplayString())) {
                        configDefaultOrFirstGood = (ICarbideBuildConfiguration) child;
                    }
                }
            }
            if (configDefaultOrFirstGood != null) {
                // myNewTreePath already copied without self and children
                if (self != null) {
                    myNewTreePath.add(self); // add self back
                }
                TreePath child = getTreePathForElement(configDefaultOrFirstGood);
                // myNewTreePath already copied without self and children
                if (child != null) {
                    myNewTreePath.add(child); // add child back
                }
            }
        }
    } else {
        myNewTreePath = new ArrayList<TreePath>();
        for (TreePath path : selectedPaths) {
            myNewTreePath.add(path);
        }
    }

    // fire event
    //updateSelection(getSelection());

    // select from viewer, viewer will fire event and eventually change UI with our
    // overrode routine
    ITreeSelection treeSelection = new TreeSelection(myNewTreePath.toArray(new TreePath[myNewTreePath.size()]));
    setSelection(treeSelection, true);
}

From source file:com.redhat.ceylon.eclipse.code.wizard.NewCeylonProjectWizardPageOne.java

License:Open Source License

private IWorkingSet[] getSelectedWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return EMPTY_WORKING_SET_ARRAY;

    ITreeSelection treeSelection = (ITreeSelection) selection;
    if (treeSelection.isEmpty())
        return EMPTY_WORKING_SET_ARRAY;

    List<?> elements = treeSelection.toList();
    if (elements.size() == 1) {
        Object element = elements.get(0);
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return EMPTY_WORKING_SET_ARRAY;

        TreePath path = paths[0];
        if (path.getSegmentCount() == 0)
            return EMPTY_WORKING_SET_ARRAY;

        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return EMPTY_WORKING_SET_ARRAY;

        IWorkingSet workingSetCandidate = (IWorkingSet) candidate;
        if (isValidWorkingSet(workingSetCandidate))
            return new IWorkingSet[] { workingSetCandidate };

        return EMPTY_WORKING_SET_ARRAY;
    }/* w  w  w.  j  av a 2s  .  com*/

    ArrayList<IWorkingSet> result = new ArrayList<IWorkingSet>();
    for (Iterator<?> iterator = elements.iterator(); iterator.hasNext();) {
        Object element = iterator.next();
        if (element instanceof IWorkingSet && isValidWorkingSet((IWorkingSet) element)) {
            result.add((IWorkingSet) element);
        }
    }
    return result.toArray(new IWorkingSet[result.size()]);
}

From source file:ext.org.eclipse.jdt.internal.ui.workingsets.RemoveWorkingSetElementAction.java

License:Open Source License

private IWorkingSet getWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return null;
    ITreeSelection treeSelection = (ITreeSelection) selection;
    List<?> elements = treeSelection.toList();
    IWorkingSet result = null;//from w  w  w . j ava 2s.  c  om
    for (Iterator<?> iter = elements.iterator(); iter.hasNext();) {
        Object element = iter.next();
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return null;
        TreePath path = paths[0];
        if (path.getSegmentCount() != 2)
            return null;
        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return null;
        if (result == null) {
            result = (IWorkingSet) candidate;
        } else {
            if (result != candidate)
                return null;
        }
    }
    return result;
}

From source file:io.sarl.eclipse.wizards.newproject.MainProjectWizardPage.java

License:Apache License

private static IWorkingSet[] getSelectedWorkingSet(ITreeSelection treeSelection) {
    assert !treeSelection.isEmpty();
    final List<?> elements = treeSelection.toList();
    if (elements.size() == 1) {
        final Object element = elements.get(0);
        final TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length == 1 && paths[0].getSegmentCount() != 0) {
            final Object candidate = paths[0].getSegment(0);
            if (candidate instanceof IWorkingSet && isValidWorkingSet((IWorkingSet) candidate)) {
                return new IWorkingSet[] { (IWorkingSet) candidate };
            }//from  w  w  w  . j  a  va 2  s .c  om
        }
    } else {
        final List<IWorkingSet> result = new ArrayList<>();
        for (Iterator<?> iterator = elements.iterator(); iterator.hasNext();) {
            final Object element = iterator.next();
            if (element instanceof IWorkingSet && isValidWorkingSet((IWorkingSet) element)) {
                result.add((IWorkingSet) element);
            }
        }
        return result.toArray(new IWorkingSet[result.size()]);
    }
    return EMPTY_WORKING_SET_ARRAY;
}

From source file:net.rim.ejde.internal.ui.wizards.BlackBerryProjectWizardPageOne.java

License:Open Source License

private IWorkingSet[] getSelectedWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return EMPTY_WORKING_SET_ARRAY;

    ITreeSelection treeSelection = (ITreeSelection) selection;
    if (treeSelection.isEmpty())
        return EMPTY_WORKING_SET_ARRAY;

    List elements = treeSelection.toList();
    if (elements.size() == 1) {
        Object element = elements.get(0);
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return EMPTY_WORKING_SET_ARRAY;

        TreePath path = paths[0];
        if (path.getSegmentCount() == 0)
            return EMPTY_WORKING_SET_ARRAY;

        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return EMPTY_WORKING_SET_ARRAY;

        IWorkingSet workingSetCandidate = (IWorkingSet) candidate;
        if (isValidWorkingSet(workingSetCandidate))
            return new IWorkingSet[] { workingSetCandidate };

        return EMPTY_WORKING_SET_ARRAY;
    }/*from  www. ja  va 2 s .  c  o  m*/

    ArrayList result = new ArrayList();
    for (Iterator iterator = elements.iterator(); iterator.hasNext();) {
        Object element = iterator.next();
        if (element instanceof IWorkingSet && isValidWorkingSet((IWorkingSet) element)) {
            result.add(element);
        }
    }
    return (IWorkingSet[]) result.toArray(new IWorkingSet[result.size()]);
}

From source file:org.eclipse.dltk.internal.ui.workingsets.RemoveWorkingSetElementAction.java

License:Open Source License

private IWorkingSet getWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return null;
    ITreeSelection treeSelection = (ITreeSelection) selection;
    List elements = treeSelection.toList();
    IWorkingSet result = null;/* w w  w . jav  a2 s .  c  o m*/
    for (Iterator iter = elements.iterator(); iter.hasNext();) {
        Object element = iter.next();
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return null;
        TreePath path = paths[0];
        if (path.getSegmentCount() != 2)
            return null;
        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return null;
        if (result == null) {
            result = (IWorkingSet) candidate;
        } else {
            if (result != candidate)
                return null;
        }
    }
    return result;
}

From source file:org.eclipse.dltk.mod.ui.wizards.WorkingSetConfigurationBlock.java

License:Open Source License

/**
 * Retrieves a working set from the given <code>selection</code> or
 * <b>null</b> if no working set could be retrieved.
 * /*  w ww  .j a va 2  s  .  c o m*/
 * @param selection
 *            the selection to retrieve the working set from
 * @return the selected working set or <b>null</b>
 */
public static IWorkingSet[] getSelectedWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return null;

    ITreeSelection treeSelection = (ITreeSelection) selection;
    if (treeSelection.isEmpty())
        return null;

    List elements = treeSelection.toList();
    if (elements.size() == 1) {
        Object element = elements.get(0);
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return null;

        TreePath path = paths[0];
        if (path.getSegmentCount() == 0)
            return null;

        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return null;

        return new IWorkingSet[] { (IWorkingSet) candidate };
    } else {
        ArrayList result = new ArrayList();
        for (Iterator iterator = elements.iterator(); iterator.hasNext();) {
            Object element = iterator.next();
            if (element instanceof IWorkingSet) {
                result.add(element);
            }
        }
        return (IWorkingSet[]) result.toArray(new IWorkingSet[result.size()]);
    }
}

From source file:org.eclipse.dltk.ui.wizards.WorkingSetDetector.java

License:Open Source License

private IWorkingSet[] getSelectedWorkingSet(IStructuredSelection selection) {
    if (!(selection instanceof ITreeSelection))
        return EMPTY_WORKING_SET_ARRAY;

    ITreeSelection treeSelection = (ITreeSelection) selection;
    if (treeSelection.isEmpty())
        return EMPTY_WORKING_SET_ARRAY;

    List<?> elements = treeSelection.toList();
    if (elements.size() == 1) {
        Object element = elements.get(0);
        TreePath[] paths = treeSelection.getPathsFor(element);
        if (paths.length != 1)
            return EMPTY_WORKING_SET_ARRAY;

        TreePath path = paths[0];
        if (path.getSegmentCount() == 0)
            return EMPTY_WORKING_SET_ARRAY;

        Object candidate = path.getSegment(0);
        if (!(candidate instanceof IWorkingSet))
            return EMPTY_WORKING_SET_ARRAY;

        IWorkingSet workingSetCandidate = (IWorkingSet) candidate;
        if (isValidWorkingSet(workingSetCandidate))
            return new IWorkingSet[] { workingSetCandidate };

        return EMPTY_WORKING_SET_ARRAY;
    }/*from   w  w w  .  ja v  a2  s.c  o  m*/

    List<IWorkingSet> result = new ArrayList<IWorkingSet>();
    for (Iterator<?> iterator = elements.iterator(); iterator.hasNext();) {
        Object element = iterator.next();
        if (element instanceof IWorkingSet) {
            final IWorkingSet ws = (IWorkingSet) element;
            if (isValidWorkingSet(ws)) {
                result.add(ws);
            }
        }
    }
    return result.toArray(new IWorkingSet[result.size()]);
}