Example usage for org.eclipse.jface.viewers AbstractTreeViewer setExpandedState

List of usage examples for org.eclipse.jface.viewers AbstractTreeViewer setExpandedState

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers AbstractTreeViewer setExpandedState.

Prototype

public void setExpandedState(Object elementOrTreePath, boolean expanded) 

Source Link

Document

Sets whether the node corresponding to the given element or tree path is expanded or collapsed.

Usage

From source file:com.cloudbees.eclipse.dev.ui.views.jobs.JobsContentProvider.java

License:Open Source License

public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
    if (newInput instanceof List
            && (((List) newInput).isEmpty() || ((List) newInput).get(0) instanceof JobHolder)) {
        root = (List<JobHolder>) newInput;
    } else {// w w  w .j a  va2 s .  co m
        root = null; // reset
    }

    if (viewer instanceof AbstractTreeViewer) {
        manager = new DeferredTreeContentManager((AbstractTreeViewer) viewer, viewSite) {
            @Override
            protected IDeferredWorkbenchAdapter getAdapter(Object element) {
                IDeferredWorkbenchAdapter ret = super.getAdapter(element);
                if (ret != null) {
                    return ret;
                }

                if (element instanceof JobHolder) {
                    if (((JobHolder) element).job.isFolderOrView()) {
                        return new DeferWrapper((JobHolder) element);
                    }
                }

                return null;
            }

        };

        final AbstractTreeViewer treeViewer = ((AbstractTreeViewer) viewer);

        Object[] expelems = ((AbstractTreeViewer) viewer).getVisibleExpandedElements();
        expList.clear();
        expList.addAll(Arrays.asList(expelems));

        IJobChangeListener listener = new JobChangeAdapter() {
            @Override
            public void done(IJobChangeEvent event) {
                if (event.getResult().isOK()) {
                    // try to expand the state again
                    PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                        public void run() {

                            if (expList.size() == 0) {
                                // all good, managed to expand all previous nodes
                                return;
                            }

                            for (Object o : expList) {
                                treeViewer.setExpandedState(o, true);
                            }

                            List<Object> toremove = new ArrayList<Object>();
                            for (Object o : expList) {
                                if (treeViewer.getExpandedState(o)) {
                                    toremove.add(o);
                                }
                            }
                            expList.removeAll(toremove);

                        }
                    });
                }
            }
        };

        manager.addUpdateCompleteListener(listener);

    }

}

From source file:org.eclipse.team.internal.ccvs.ui.CVSCompareEditorInput.java

License:Open Source License

public Viewer createDiffViewer(Composite parent) {
    final Viewer viewer = super.createDiffViewer(parent);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            CompareConfiguration cc = getCompareConfiguration();
            setLabels(cc, (IStructuredSelection) event.getSelection());
        }//from  ww  w  . ja v a2 s.c om
    });
    ((StructuredViewer) viewer).addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            ISelection selection = event.getSelection();
            if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                Object o = ((IStructuredSelection) selection).getFirstElement();
                if (o instanceof DiffNode) {
                    updateLabelsFor((DiffNode) o);
                }
            }
        }
    });
    ((StructuredViewer) viewer).addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                Object o = ((IStructuredSelection) selection).getFirstElement();
                if (o instanceof DiffNode) {
                    DiffNode diffNode = ((DiffNode) o);
                    if (diffNode.hasChildren()) {
                        AbstractTreeViewer atv = ((AbstractTreeViewer) viewer);
                        atv.setExpandedState(o, !atv.getExpandedState(o));
                    }
                }
            }
        }
    });
    return viewer;
}

From source file:org.pwsafe.passwordsafeswt.listener.ViewerDoubleClickListener.java

License:Open Source License

/**
 * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
 *//*from   w  w w  .ja va 2s.  c  o  m*/
public void doubleClick(final DoubleClickEvent dce) {
    if (dce.getSelection() instanceof ITreeSelection) {
        final ITreeSelection treeSelection = (ITreeSelection) dce.getSelection();
        final AbstractTreeViewer treeViewer = (AbstractTreeViewer) dce.getSource();
        boolean state = treeViewer.getExpandedState(treeSelection.getPaths()[0]);
        treeViewer.setExpandedState(treeSelection.getPaths()[0], !state);
    }
    if (UserPreferences.getInstance().getBoolean(JpwPreferenceConstants.DOUBLE_CLICK_COPIES_TO_CLIPBOARD)) {
        cpa.run();
    } else {
        era.run();
    }
}