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:net.sourceforge.texlipse.outline.TexOutlinePage.java

License:Open Source License

/**
 * Updates the outline with new content. Called by TexDocumentModel
 * through the editor. Saves the visible state of the outline,
 * sets the new content and restores the state.
 *
 * @param input the new outline input//  w w  w  .  j ava2 s  . co  m
 */
public void update(TexOutlineInput input) {
    this.input = input;

    TreeViewer viewer = getTreeViewer();
    if (viewer != null) {

        Control control = viewer.getControl();
        if (control != null && !control.isDisposed()) {
            control.setRedraw(false);

            //First try smart update
            boolean succUpdate = ((TexContentProvider) viewer.getContentProvider()).updateElements(viewer,
                    input.getRootNodes());
            if (!succUpdate) {
                viewer.getTree().deselectAll();
                // save viewer state
                Object[] expandedElements = viewer.getExpandedElements();
                // set new input
                viewer.setInput(input.getRootNodes());
                /*viewer.getContentProvider().inputChanged(viewer, null, input.getRootNodes());
                viewer.refresh(true);*/
                // restore viewer state
                viewer.setExpandedElements(expandedElements);
            }
            control.setRedraw(true);

            // disable the refresh button, enable context stuff
            outlineActions.get(ACTION_UPDATE).setEnabled(false);
            outlineActions.get(ACTION_COPY).setEnabled(true);
            outlineActions.get(ACTION_CUT).setEnabled(true);
            outlineActions.get(ACTION_PASTE).setEnabled(true);
            outlineActions.get(ACTION_DELETE).setEnabled(true);
        }
    }
}

From source file:net.sourceforge.veditor.editor.HdlContentOutlinePage.java

License:Open Source License

/**
 * Searches for the given element and if found, makes it visible
 * @param element/*w  w w.j  a va  2  s  .c  om*/
 */
public void showElement(OutlineElement element) {
    if (element == null)
        return;
    TreeViewer viewer = getTreeViewer();
    viewer.reveal(element);
    TreeItem[] treeItems = viewer.getTree().getItems();

    viewer.getControl().setRedraw(false);
    Object[] expandedElements = viewer.getExpandedElements();
    //force all the elements to be scanned in
    viewer.expandAll();
    viewer.setExpandedElements(expandedElements);
    viewer.getControl().setRedraw(true);

    for (TreeItem item : treeItems) {
        TreeItem target = findTreeItem(item, element);
        if (target != null) {
            viewer.getTree().setSelection(target);
            viewer.reveal(element);
            break;
        }
    }

}

From source file:net.sourceforge.veditor.editor.HdlContentOutlinePage.java

License:Open Source License

public void update() {
    TreeViewer viewer = getTreeViewer();

    if (viewer != null) {
        if (enableSort)
            viewer.setSorter(new Sorter());
        else/*from   w  ww.j  a  va2 s.com*/
            viewer.setSorter(null);

        Control control = viewer.getControl();
        if (control != null && !control.isDisposed()) {
            Object expanded[] = viewer.getExpandedElements();
            control.setRedraw(false);
            viewer.setInput(editor.getDocument());
            if (expanded.length > 0) {
                viewer.setExpandedElements(expanded);
            } else {
                viewer.collapseAll();
            }
            control.setRedraw(true);
        }
    }
}

From source file:nz.co.senanque.madura.ruleeditor.editor.RuleOutlinePage.java

License:Open Source License

public void processChange(final Document doc) {
    if (doc == null) {
        RulesBuilder.buildFile(m_input, this);
        log.debug("Just invoked full build");
        return;//  w w  w.  j  av a  2s .co m
    }
    final Tree tree = (Tree) getControl();
    final TreeViewer treeView = getTreeViewer();
    try {
        Runnable runnable = new Runnable() {
            public void run() {
                getControl().setRedraw(false);
                try {
                    String s = doc.get();
                    Object expanded[] = treeView.getExpandedElements();
                    tree.removeAll();
                    SchemaParser schemaParser = Utils.getXSDFile(m_input);
                    if (schemaParser == null) {
                        return;
                    }

                    ITypedRegion r[] = doc.computePartitioning(0, s.length());
                    AdaptableList o = ((AdaptableList) getContentOutline(r, s, m_input.getName(),
                            m_input.getLocation().toOSString(), schemaParser));
                    treeView.setInput(o);
                    for (int i = 0; i < expanded.length; i++) {
                        int j = o.children.indexOf(expanded[i]);
                        if (j > -1)
                            treeView.setExpandedState(o.children.get(j), true);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                getControl().setRedraw(true);
                getControl().redraw();
                m_timerStarted = false;
            }
        };
        if (!m_timerStarted) {
            m_timerStarted = true;
            Display.getDefault().timerExec(1000, runnable);
        } else {
            getControl().setRedraw(true);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:nz.co.senanque.madura.workfloweditor.editor.WorkflowOutlinePage.java

License:Open Source License

public void processChange(final Document doc) {
    if (doc == null) {
        WorkflowBuilder.buildFile(m_input, this);
        log.debug("Just invoked full build");
        return;//from   www . j a  v  a  2s.  co m
    }
    final Tree tree = (Tree) getControl();
    final TreeViewer treeView = getTreeViewer();
    try {
        Runnable runnable = new Runnable() {
            public void run() {
                getControl().setRedraw(false);
                try {
                    String s = doc.get();
                    Object expanded[] = treeView.getExpandedElements();
                    tree.removeAll();
                    SchemaParser schemaParser = Utils.getXSDFile(m_input);
                    if (schemaParser == null) {
                        return;
                    }

                    ITypedRegion r[] = doc.computePartitioning(0, s.length());
                    AdaptableList o = ((AdaptableList) getContentOutline(r, s, m_input.getName(),
                            m_input.getLocation().toOSString(), schemaParser));
                    treeView.setInput(o);
                    for (int i = 0; i < expanded.length; i++) {
                        int j = o.children.indexOf(expanded[i]);
                        if (j > -1)
                            treeView.setExpandedState(o.children.get(j), true);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                getControl().setRedraw(true);
                getControl().redraw();
                m_timerStarted = false;
            }
        };
        if (!m_timerStarted) {
            m_timerStarted = true;
            Display.getDefault().timerExec(1000, runnable);
        } else {
            getControl().setRedraw(true);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.cs3.pdt.editor.internal.views.lightweightOutline.NonNaturePrologOutline.java

License:Open Source License

public void setInput(Object information) {
    if (model == null) {
        return;/*  ww w .j a va 2 s .c o m*/
    }

    String fileName = editor.getPrologFileName();

    Map<String, OutlineModuleElement> modules;
    TreeViewer treeViewer = getTreeViewer();
    if (!fileName.isEmpty()) {
        Object[] expandedElements = null;
        try {
            modules = PDTOutlineQuery.getProgramElementsForFile(fileName);
            model.update(modules, fileName);

            expandedElements = treeViewer.getExpandedElements();
            treeViewer.setInput(model);
            treeViewer.setAutoExpandLevel(EXPANDING_LEVEL);

        } catch (Exception e) {
            Debug.report(e);
        }
        if (treeViewer != null) {
            treeViewer.refresh();
            if (expandedElements != null && expandedElements.length > 0) {
                treeViewer.setExpandedElements(expandedElements);
            }
        }
    }
}

From source file:org.ebayopensource.vjet.eclipse.internal.ui.typehierarchy.VjoHierarchyInformationControl.java

License:Open Source License

protected void toggleHierarchy() {
    TreeViewer treeViewer = getTreeViewer();

    treeViewer.getTree().setRedraw(false);

    Object[] expandedElements = treeViewer.getExpandedElements();
    TypeHierarchyContentProvider contentProvider = (TypeHierarchyContentProvider) treeViewer
            .getContentProvider();//from   w ww  . j a  v a 2  s. c  o  m
    treeViewer.setContentProvider(fOtherContentProvider);

    treeViewer.refresh();
    if (fOtherExpandedElements != null) {
        treeViewer.setExpandedElements(fOtherExpandedElements);
    } else {
        treeViewer.expandAll();
    }

    treeViewer.getTree().setRedraw(true);

    fOtherContentProvider = contentProvider;
    fOtherExpandedElements = expandedElements;

    updateStatusFieldText();
}

From source file:org.eclipse.cdt.internal.ui.cview.CView.java

License:Open Source License

public void setWorkingSet(IWorkingSet workingSet) {
    TreeViewer treeViewer = getViewer();
    Object[] expanded = treeViewer.getExpandedElements();
    ISelection selection = treeViewer.getSelection();

    workingSetFilter.setWorkingSet(workingSet);
    /*/* w  w  w .  java2 s  .  c o m*/
     * if (workingSet != null) { settings.put(STORE_WORKING_SET,
     * workingSet.getName()); } else { settings.put(STORE_WORKING_SET, "");
     * //$NON-NLS-1$ }
     */
    updateTitle();
    treeViewer.refresh();
    treeViewer.setExpandedElements(expanded);
    if (selection.isEmpty() == false && selection instanceof IStructuredSelection) {
        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
        treeViewer.reveal(structuredSelection.getFirstElement());
    }
}

From source file:org.eclipse.e4.demio.views.nav.ResourceNavigator.java

License:Open Source License

public void setWorkingSet(IWorkingSet workingSet) {
    TreeViewer treeViewer = getTreeViewer();
    Object[] expanded = treeViewer.getExpandedElements();
    ISelection selection = treeViewer.getSelection();

    boolean refreshNeeded = internalSetWorkingSet(workingSet);

    workingSetFilter.setWorkingSet(emptyWorkingSet ? null : workingSet);
    if (workingSet != null) {
        settings.put(STORE_WORKING_SET, workingSet.getName());
    } else {/*  ww  w .j  a v  a  2s.com*/
        settings.put(STORE_WORKING_SET, ""); //$NON-NLS-1$
    }
    updateTitle();
    if (refreshNeeded) {
        treeViewer.refresh();
    }
    treeViewer.setExpandedElements(expanded);
    if (selection.isEmpty() == false && selection instanceof IStructuredSelection) {
        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
        treeViewer.reveal(structuredSelection.getFirstElement());
    }
}

From source file:org.eclipse.emf.cdo.ui.CDOTreeExpansionAgent.java

License:Open Source License

public CDOTreeExpansionAgent(final CDOView view, final TreeViewer viewer) {
    CheckUtil.checkArg(view, "view");
    CheckUtil.checkArg(viewer, "viewer");

    this.view = view;
    this.viewer = viewer;

    final Tree tree = viewer.getTree();
    if (!tree.isDisposed()) {
        tree.getDisplay().syncExec(new Runnable() {
            public void run() {
                for (Object element : viewer.getExpandedElements()) {
                    addExpandedElement(element);
                }//from w w  w.j  av a 2s. c om

                view.addListener(listener);
                viewer.addTreeListener(listener);
                viewer.getTree().addDisposeListener(listener);
            }
        });
    }
}