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

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

Introduction

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

Prototype

public Object[] getExpandedElements() 

Source Link

Document

Returns a list of elements corresponding to expanded nodes in this viewer's tree, including currently hidden ones that are marked as expanded but are under a collapsed ancestor.

Usage

From source file:org.entirej.ext.oracle.db.DBTypeSelectionPage.java

License:Apache License

public void refresh(Object input) {
    TreeViewer treeview = dbfilteredTree != null ? dbfilteredTree.getViewer() : null;
    if (treeview != null) {
        Object[] expanded = treeview.getExpandedElements();

        treeview.getControl().setRedraw(false);
        treeview.setInput(input);//w ww. j a va2 s.com
        treeview.setExpandedElements(expanded);
        treeview.getControl().setRedraw(true);
        treeview.refresh();
    }

}

From source file:org.entirej.ide.ui.nodes.AbstractNodeTreeSection.java

License:Apache License

@Override
public void refresh() {
    TreeViewer treeview = filteredTree.getViewer();
    Object[] expanded = treeview.getExpandedElements();

    treeview.getControl().setRedraw(false);
    treeview.setInput(getTreeInput());//from  w  ww.  ja v a2 s.  c om
    treeview.setExpandedElements(expanded);
    treeview.getControl().setRedraw(true);
    treeview.refresh();
    getManagedForm().fireSelectionChanged(AbstractNodeTreeSection.this, treeview.getSelection());
    showNodeDetails();
    super.refresh();
}

From source file:org.entirej.ide.ui.nodes.AbstractNodeTreeSection.java

License:Apache License

public AbstractNode<?> findNode(Object source, boolean force) {
    AbstractNode<?> node = findNode(source);
    if (node != null || !force) {
        return node;
    }/*from w  w w  .  ja  v a2 s.  c  om*/
    if (source == null)
        return null;

    TreeViewer treeview = filteredTree.getViewer();
    Object[] expanded = treeview.getExpandedElements();

    treeview.getControl().setRedraw(false);
    try {
        filteredTree.getViewer().expandAll();
        TreeItem[] items = filteredTree.getViewer().getTree().getItems();
        for (TreeItem treeItem : items) {
            AbstractNode<?> findNode = findNode(source, treeItem);
            if (findNode != null)
                return findNode;
        }
    } finally {
        treeview.collapseAll();
        treeview.setExpandedElements(expanded);
        treeview.getControl().setRedraw(true);
        treeview.refresh();

    }
    return null;
}

From source file:org.isoe.fwk.uihelper.impl.NavigatorHelper.java

License:Open Source License

private IViewPart focusInPackageExplorerTraverserSnippet(String language) {
    IViewPart navigator = null;/*w  w  w.java 2s.c o m*/

    try {
        navigator = findView("org.eclipse.jdt.ui.PackageExplorer"); // FP130130x
        if (navigator == null)
            navigator = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
                    .showView("org.eclipse.jdt.ui.PackageExplorer");

        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        ISelection selection_ = window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");

        if (selection_ instanceof Tree) {
            TreeItem[] selected = ((Tree) selection_).getSelection();
            for (TreeItem treeItem : selected) {
                System.out.println(treeItem.getText());
            }

        }

        if (selection_ instanceof TreeSelection) {
            TreeSelection ts = (TreeSelection) selection_;
            List tsl = ts.toList();
            for (Object object : tsl) {
                System.out.println(tsl.getClass().getName());
            }
        }

        Iterator ite = ((IStructuredSelection) selection_).iterator();
        while (ite.hasNext()) {
            Object obj = ite.next();
            String testString = "";
            if (obj instanceof IJavaElement) {
                IPath packageName = ((IJavaElement) obj).getPath();// /lang.m2.helloworld
                System.out.println("getFileExtension()   " + packageName.getFileExtension());
                String s = packageName.toString();
                String s1[] = s.split("/");
                if ("java".equals(packageName.getFileExtension())) {
                    System.out.println("package name " + s1[1]);
                    System.out.println("project name" + ((IJavaElement) obj).getElementName());
                }
            }
        }

        if (navigator instanceof PackageExplorerPart) {
            PackageExplorerPart pe = (PackageExplorerPart) navigator;
            TreeViewer tree = pe.getTreeViewer();

            Control[] childs = tree.getTree().getChildren();
            for (Control control : childs) {
                System.out.println(control.getClass().getName());
            }

            TreeItem[] selected = tree.getTree().getSelection();
            for (TreeItem treeItem : selected) {
                System.out.println(treeItem.getText());
            }

            TreeItem[] items = tree.getTree().getItems();
            for (TreeItem treeItem : items) {
                ;// System.out.println(treeItem.getText());
            }

            Object[] els = tree.getExpandedElements();
            for (Object el : els) {
                System.out.println(el.getClass().getName());
            }
            // tree.getChildren(widget, elementChildren)

            org.eclipse.jface.viewers.TreePath[] tp = tree.getExpandedTreePaths();
            for (TreePath treePath : tp) {
                System.out.println(treePath.getFirstSegment().toString());
            }

            List<IProject> projects = controler.getDsmlProjects();
            for (IProject iProject : projects) {
                if (iProject.getName().endsWith("." + language)) {
                    StructuredSelection ssel = new StructuredSelection(iProject);
                    tree.getControl().setRedraw(false);
                    tree.setSelection(ssel, true);
                    tree.getControl().setRedraw(true);

                    IEditorPart opened = bringToTop(iProject);
                    // if (currentPackage==null)
                    // throw new
                    // RuntimeException("should not happen in getPackage()");
                    ((EcoreDiagramEditor) opened).getDiagram();

                }
            }

        }
        // org.eclipse.jdt.ui.PackageExplorer pe;

        IViewReference[] views = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
                .getViewReferences();
        for (IViewReference view : views) {
            if ("org.eclipse.jdt.ui.PackageExplorer".equals(view.getId())) {
                IViewPart pExplorer = view.getView(true);

                TreeViewer viewer;

                // pExplorer.
                // pExplorer.getViewSite().getSelectionProvider().setSelection(selection);
                break;
            }
        }

    } catch (PartInitException e1) {
        e1.printStackTrace();
        return null;
    }
    return navigator;
}

From source file:org.kalypso.ui.editor.gmleditor.part.GMLContentProvider.java

License:Open Source License

protected void handleModelChanged(final ModellEvent modellEvent) {
    if (!m_handleModelEvents)
        return;/*from  ww w. j  a  v a 2s .  c  o m*/

    final TreeViewer treeViewer = m_viewer;
    if (treeViewer == null)
        return;

    final Control control = treeViewer.getControl();

    if (modellEvent instanceof FeatureStructureChangeModellEvent) {
        if (m_featureStructureChangedJob != null)
            m_featureStructureChangedJob.cancel();

        m_featureStructureChangedJob = new UIJob(Messages.getString("GMLContentProvider_0")) //$NON-NLS-1$
        {
            @Override
            public IStatus runInUIThread(final IProgressMonitor monitor) {
                if (monitor.isCanceled())
                    return Status.CANCEL_STATUS;
                if (Objects.isNull(control) || control.isDisposed())
                    return Status.CANCEL_STATUS;

                final Object[] expandedElements = treeViewer.getExpandedElements();

                treeViewer.refresh();

                treeViewer.setExpandedElements(expandedElements);

                return Status.OK_STATUS;
            }
        };

        m_featureStructureChangedJob.setSystem(true);
        m_featureStructureChangedJob.setUser(false);

        m_featureStructureChangedJob.schedule(50);

    } else if (modellEvent instanceof FeaturesChangedModellEvent) {
        final FeaturesChangedModellEvent fcme = (FeaturesChangedModellEvent) modellEvent;

        // TODO: ugly abstraction, mover into separate class!
        synchronized (m_featureChangeStack) {
            Collections.addAll(m_featureChangeStack, fcme.getFeatures());

            if (m_featureChangeJob != null) {
                m_featureChangeJob.cancel();
                m_featureChangeJob = null;
            }

            // FIXME; why recreate the job at all?
            final UIJob featureChangeJob = new UIJob(Messages.getString("GMLContentProvider_1")) //$NON-NLS-1$
            {
                @Override
                public IStatus runInUIThread(final IProgressMonitor monitor) {
                    if (monitor.isCanceled())
                        return Status.CANCEL_STATUS;

                    if (Objects.isNull(control) || control.isDisposed())
                        return Status.CANCEL_STATUS;

                    final Feature[] features = popChangedFeatures();

                    for (final Feature feature : features) {
                        // FIXME: handle special case: also refresh elements of tree that reference this feature...

                        treeViewer.refresh(feature, true);
                    }

                    return Status.OK_STATUS;
                }
            };

            featureChangeJob.setSystem(true);
            featureChangeJob.setUser(false);
            featureChangeJob.schedule(50);

            m_featureChangeJob = featureChangeJob;
        }
    }
}

From source file:org.modelversioning.emfprofile.application.registry.ui.observer.ViewerState.java

License:Open Source License

public ViewerState(TreeViewer viewer) {
    super();//from w  w w.  j a  va 2  s  .co  m
    this.input = viewer.getInput();
    this.viewerExpandedElements = viewer.getExpandedElements();
    this.selection = viewer.getSelection();
}

From source file:org.objectstyle.wolips.eomodeler.outline.EOModelTreeViewUpdater.java

License:Open Source License

protected void refreshRelationshipsForEntity(EOEntity entity) {
    TreeViewer treeViewer = getTreeViewer();
    if (treeViewer != null) {
        treeViewer.refresh(entity, true);
        Object[] expandedElements = treeViewer.getExpandedElements();
        for (int expandedElementNum = 0; expandedElementNum < expandedElements.length; expandedElementNum++) {
            if (expandedElements[expandedElementNum] instanceof EORelationshipPath) {
                EORelationshipPath relationshipPath = (EORelationshipPath) expandedElements[expandedElementNum];
                if (relationshipPath.getChildRelationship().getEntity().equals(entity)) {
                    treeViewer.refresh(relationshipPath, true);
                }//from   w  ww  .  j  a v a2  s.c o m
            }
        }
    }
}

From source file:org.python.pydev.debug.codecoverage.PyCodeCoverageTestWorkbench.java

License:Open Source License

public void testPyCodeCoverageView() throws Exception {

    final PyCodeCoverageView view = PyCodeCoverageView.getView(true);
    //At this point it should have no folder selected and the option to run things in coverage should be
    //set to false.
    assertTrue(!PyCoveragePreferences.getAllRunsDoCoverage());
    assertTrue(PyCodeCoverageView.getChosenDir() == null);

    assertTrue(!view.allRunsGoThroughCoverage.getSelection());
    assertTrue(!PyCoveragePreferences.getInternalAllRunsDoCoverage());
    view.allRunsGoThroughCoverage.setSelection(true);
    view.allRunsGoThroughCoverage.notifyListeners(SWT.Selection, new Event());

    assertTrue(PyCoveragePreferences.getInternalAllRunsDoCoverage());
    assertTrue(!PyCoveragePreferences.getAllRunsDoCoverage());

    view.setSelectedContainer(sourceFolder);
    TreeViewer treeViewer = view.getTreeViewer();
    ITreeContentProvider cp = (ITreeContentProvider) treeViewer.getContentProvider();
    Object[] elements = cp.getElements(treeViewer.getInput());
    assertEquals(1, elements.length);/*from ww  w.ja  v a 2s  .  com*/
    ILabelProvider labelProvider = (ILabelProvider) treeViewer.getLabelProvider();
    assertEquals("pack_cov", labelProvider.getText(elements[0]));

    TestCaseUtils.assertContentsEqual(getInitialCoverageText(), view.getCoverageText());

    Object[] expandedElements = treeViewer.getExpandedElements();
    assertEquals(0, expandedElements.length);
    treeViewer.expandAll();
    expandedElements = treeViewer.getExpandedElements();
    assertEquals(1, expandedElements.length);

    view.executeRefreshAction(new NullProgressMonitor());
    expandedElements = treeViewer.getExpandedElements();
    assertEquals(1, expandedElements.length);

    assertTrue(PyCoveragePreferences.getAllRunsDoCoverage());

    final IWorkbench workBench = PydevPlugin.getDefault().getWorkbench();
    Display display = workBench.getDisplay();

    // Make sure to run the UI thread.
    final PyEdit modCovEditor = (PyEdit) PyOpenEditor.doOpenEditor(modCov);
    try {
        display.syncExec(new Runnable() {
            public void run() {
                LaunchShortcut launchShortcut = new LaunchShortcut();
                launchShortcut.launch(modCovEditor, "run");
            }
        });

        final String modCovCoverageText = StringUtils.replaceNewLines(getModCovCoverageText(), "\n");
        //Should be enough time for the refresh to happen!
        goToManual(10000, new ICallback<Boolean, Object>() {

            public Boolean call(Object arg) {
                return modCovCoverageText.equals(StringUtils.replaceNewLines(view.getCoverageText(), "\n"));
            }
        });

        TestCaseUtils.assertContentsEqual(modCovCoverageText, view.getCoverageText());

        //goToManual();
    } finally {
        try {
            modCovEditor.close(false);
        } catch (Exception e) {
            //ignore anything here
        }
    }

}

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 .  ja  va  2 s .co  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.vast.stt.gui.widgets.catalog.SceneTreeDropListener.java

License:Mozilla Public License

protected boolean dropItem(DataItem item) {
    if (item.getName() == null) {
        System.err.println("DataItem name is null in SceneTreeDropListner.  Should not have gotten here.");
        return false;
    }//from  ww w.  j  av  a2 s  .  c  o  m

    DataEntry dropTarget = (DataEntry) this.getCurrentTarget();
    TreeViewer vwr = (TreeViewer) this.getViewer();
    //  If target is a folder, drop into folder and open it
    if (dropTarget instanceof DataFolder) {
        ((DataFolder) dropTarget).add(item);
        item.dispatchEvent(new STTEvent(item, EventType.SCENE_TREE_CHANGED), false);
        //         vwr.reveal(item);  //  vwr.reveal() does not work as advertised in Eclipse 3.1!!!
        vwr.expandToLevel(dropTarget, 2); //  ensure dropped item is visible
        vwr.refresh();
        return true;
    }
    DataTree tree = null;
    //  If target is scene (Un-expanded tree), drop at root of Tree and expand
    if (dropTarget instanceof WorldScene) {
        tree = ((WorldScene) dropTarget).getDataTree();
        tree.add(0, item);
        item.dispatchEvent(new STTEvent(item, EventType.SCENE_TREE_CHANGED), false);
        vwr.expandToLevel(2); //  ensure dropped item is visible
        vwr.refresh();
        return true;
    }

    //  If we get here, WorldScene MUST be expandedElements[0];
    Object[] elems = vwr.getExpandedElements();
    WorldScene scene = (WorldScene) elems[0];
    tree = scene.getDataTree();

    //  Iterate the DataTree to find the target item,
    //  and insert it there, then refresh
    DataEntry entryTmp = null;
    Iterator<DataEntry> it = tree.iterator();
    boolean done = false;
    int index = 0;
    while (it.hasNext() && !done) {
        entryTmp = it.next();
        if (entryTmp instanceof DataFolder) {
            done = recurseFolder((DataFolder) entryTmp, (DataItem) dropTarget, item);
        } else {
            if (entryTmp == dropTarget) {
                tree.add(index, item);
                break;
            }
        }
        index++;
    }
    item.dispatchEvent(new STTEvent(item, EventType.SCENE_TREE_CHANGED), false);
    vwr.refresh();
    return true;
}