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

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

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer 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:org.eclipse.emf.cdo.explorer.ui.ViewerUtil.java

License:Open Source License

public static void expand(final TreeViewer viewer, final Object element, final boolean expanded) {
    if (viewer != null) {
        Tree tree = viewer.getTree();/*from  w  w w.ja v a  2  s . co  m*/
        if (!tree.isDisposed()) {
            Display display = tree.getDisplay();
            display.asyncExec(new Runnable() {
                public void run() {
                    if (!viewer.getControl().isDisposed()) {
                        viewer.setExpandedState(element, expanded);
                    }
                }
            });
        }
    }
}

From source file:org.eclipse.emf.cdo.internal.ui.dialogs.AbstractBranchPointDialog.java

License:Open Source License

protected void createUI(Composite container) {
    branchPointComposite = new ComposeBranchPointComposite(container, allowTimeStamp, branchPoint) {
        @Override//  w  w  w. jav  a 2  s . c  o m
        protected void timeStampError(String message) {
            timeStampError = message;
            validate();
        }

        @Override
        protected void branchPointChanged(CDOBranchPoint branchPoint) {
            if (validate()) {
                AbstractBranchPointDialog.this.branchPointChanged(branchPoint);
            }
        }

        @Override
        protected void doubleClicked() {
            AbstractBranchPointDialog.this.doubleClicked();
        }
    };

    branchPointComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    CDOBranch branch = branchPoint.getBranch();

    TreeViewer branchViewer = branchPointComposite.getBranchViewer();
    branchViewer.setSelection(new StructuredSelection(branch));
    branchViewer.setExpandedState(branch, true);
}

From source file:org.eclipse.imp.ui.explorer.ProjectExplorerActionGroup.java

License:Open Source License

void handleDoubleClick(DoubleClickEvent event) {
    TreeViewer viewer = fPart.getViewer();
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    Object element = selection.getFirstElement();
    if (viewer.isExpandable(element)) {
        if (doubleClickGoesInto()) {
            // don't zoom into compilation units and class files
            if (element instanceof ICompilationUnit || element instanceof IClassFile)
                return;
            if (element instanceof IOpenable || element instanceof IContainer
                    || element instanceof IWorkingSet) {
                fZoomInAction.run();//  w  w  w .  j  a  va  2  s. co  m
            }
        } else {
            IAction openAction = fNavigateActionGroup.getOpenAction();
            if (openAction != null && openAction.isEnabled()
                    && OpenStrategy.getOpenMethod() == OpenStrategy.DOUBLE_CLICK)
                return;
            if (selection instanceof ITreeSelection) {
                TreePath[] paths = ((ITreeSelection) selection).getPathsFor(element);
                for (int i = 0; i < paths.length; i++) {
                    viewer.setExpandedState(paths[i], !viewer.getExpandedState(paths[i]));
                }
            } else {
                viewer.setExpandedState(element, !viewer.getExpandedState(element));
            }
        }
    }
}

From source file:org.eclipse.jubula.client.ui.rcp.controllers.dnd.AbstractEditorDndSupport.java

License:Open Source License

/**
 * Executes actions after the drop.// w ww  .ja v  a  2s.c  o  m
 * 
 * @param node
 *            the dropped node.
 * @param targetEditor
 *            The editor to which the item has been dropped/pasted.
 */
protected static void postDropAction(INodePO node, AbstractJBEditor targetEditor) {
    TreeViewer tree = targetEditor.getTreeViewer();
    IPersistentObject root = targetEditor.getEditorHelper().getEditSupport().getWorkVersion();
    tree.setExpandedState(root, true);
    IWritableComponentNameCache cache = targetEditor.getCompNameCache();
    targetEditor.setFocus();
    targetEditor.refresh();
    if (node != null) {
        targetEditor.getEditorHelper().setDirty(true);
        tree.setExpandedState(node.getParentNode(), true);
        targetEditor.setSelection(new StructuredSelection(node));
    }
    LocalSelectionTransfer.getInstance().setSelection(null);
}

From source file:org.eclipse.launchbar.ui.internal.target.NewLaunchTargetWizardNewPage.java

License:Open Source License

/**
 * Create a new FilteredTree in the parent.
 *
 * @param parent the parent <code>Composite</code>.
 * @since 3.0//w ww .  ja v  a  2 s  .c o  m
 */
protected FilteredTree createFilteredTree(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = SIZING_VIEWER_WIDTH;
    data.horizontalSpan = 2;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    boolean needsHint = DialogUtil.inRegularFontMode(parent);
    //Only give a height hint if the dialog is going to be too small
    if (needsHint) {
        data.heightHint = SIZING_LISTS_HEIGHT;
    }
    composite.setLayoutData(data);
    filteredTreeFilter = new WizardPatternFilter();
    FilteredTree filterTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            filteredTreeFilter, true);
    filterTree.setQuickSelectionMode(true);
    final TreeViewer treeViewer = filterTree.getViewer();
    treeViewer.setContentProvider(new WizardContentProvider());
    treeViewer.setLabelProvider(new WorkbenchLabelProvider());
    //treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE);
    treeViewer.addSelectionChangedListener(this);
    ArrayList inputArray = new ArrayList();
    for (int i = 0; i < primaryWizards.length; i++) {
        inputArray.add(primaryWizards[i]);
    }
    boolean expandTop = false;
    // ensure the category is expanded.  If there is a remembered expansion it will be set later.
    if (expandTop) {
        treeViewer.setAutoExpandLevel(2);
    }
    AdaptableList input = new AdaptableList(inputArray);
    treeViewer.setInput(input);
    filterTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    treeViewer.getTree().setFont(parent.getFont());
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            selectionChanged(new SelectionChangedEvent(event.getViewer(), s));
            Object element = s.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                treeViewer.setExpandedState(element, !treeViewer.getExpandedState(element));
            } else if (element instanceof WorkbenchWizardElement) {
                page.advanceToNextPageOrFinish();
            }
        }
    });
    treeViewer.addFilter(filter);
    Dialog.applyDialogFont(filterTree);
    return filterTree;
}

From source file:org.eclipse.mylyn.internal.commons.repositories.ui.wizards.NewRepositoryWizardNewPage.java

License:Open Source License

/**
 * Create a new FilteredTree in the parent.
 * //  w w  w.jav  a  2 s  .co m
 * @param parent
 *            the parent <code>Composite</code>.
 * @since 3.0
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
protected FilteredTree createFilteredTree(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = SIZING_VIEWER_WIDTH;
    data.horizontalSpan = 2;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;

    boolean needsHint = DialogUtil.inRegularFontMode(parent);

    //Only give a height hint if the dialog is going to be too small
    if (needsHint) {
        data.heightHint = SIZING_LISTS_HEIGHT;
    }
    composite.setLayoutData(data);

    filteredTreeFilter = new WizardPatternFilter();
    FilteredTree filterTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            filteredTreeFilter, true);

    final TreeViewer treeViewer = filterTree.getViewer();
    treeViewer.setContentProvider(new WizardContentProvider());
    treeViewer.setLabelProvider(new WorkbenchLabelProvider());
    treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE);
    treeViewer.addSelectionChangedListener(this);

    ArrayList inputArray = new ArrayList();

    for (IWizardDescriptor primaryWizard : primaryWizards) {
        inputArray.add(primaryWizard);
    }

    boolean expandTop = false;

    if (wizardCategories != null) {
        if (wizardCategories.getParent() == null) {
            IWizardCategory[] children = wizardCategories.getCategories();
            for (IWizardCategory element : children) {
                inputArray.add(element);
            }
        } else {
            expandTop = true;
            inputArray.add(wizardCategories);
        }
    }

    // ensure the category is expanded.  If there is a remembered expansion it will be set later.
    if (expandTop) {
        treeViewer.setAutoExpandLevel(2);
    }

    AdaptableList input = new AdaptableList(inputArray);

    treeViewer.setInput(input);

    filterTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));

    treeViewer.getTree().setFont(parent.getFont());

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
         */
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            selectionChanged(new SelectionChangedEvent(event.getViewer(), s));

            Object element = s.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                treeViewer.setExpandedState(element, !treeViewer.getExpandedState(element));
            } else if (element instanceof WorkbenchWizardElement) {
                page.advanceToNextPageOrFinish();
            }
        }
    });

    treeViewer.addFilter(filter);

    if (projectsOnly) {
        treeViewer.addFilter(projectFilter);
    }

    Dialog.applyDialogFont(filterTree);
    return filterTree;
}

From source file:org.eclipse.mylyn.internal.commons.ui.team.wizards.NewRepositoryWizardNewPage.java

License:Open Source License

/**
 * Create a new FilteredTree in the parent.
 * //from   w ww  .  j  a v  a2s .  c  om
 * @param parent
 *            the parent <code>Composite</code>.
 * @since 3.0
 */
protected FilteredTree createFilteredTree(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = SIZING_VIEWER_WIDTH;
    data.horizontalSpan = 2;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;

    boolean needsHint = DialogUtil.inRegularFontMode(parent);

    //Only give a height hint if the dialog is going to be too small
    if (needsHint) {
        data.heightHint = SIZING_LISTS_HEIGHT;
    }
    composite.setLayoutData(data);

    filteredTreeFilter = new WizardPatternFilter();
    FilteredTree filterTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            filteredTreeFilter, true);

    final TreeViewer treeViewer = filterTree.getViewer();
    treeViewer.setContentProvider(new WizardContentProvider());
    treeViewer.setLabelProvider(new WorkbenchLabelProvider());
    treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE);
    treeViewer.addSelectionChangedListener(this);

    ArrayList inputArray = new ArrayList();

    for (IWizardDescriptor primaryWizard : primaryWizards) {
        inputArray.add(primaryWizard);
    }

    boolean expandTop = false;

    if (wizardCategories != null) {
        if (wizardCategories.getParent() == null) {
            IWizardCategory[] children = wizardCategories.getCategories();
            for (IWizardCategory element : children) {
                inputArray.add(element);
            }
        } else {
            expandTop = true;
            inputArray.add(wizardCategories);
        }
    }

    // ensure the category is expanded.  If there is a remembered expansion it will be set later.
    if (expandTop) {
        treeViewer.setAutoExpandLevel(2);
    }

    AdaptableList input = new AdaptableList(inputArray);

    treeViewer.setInput(input);

    filterTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));

    treeViewer.getTree().setFont(parent.getFont());

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
         */
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            selectionChanged(new SelectionChangedEvent(event.getViewer(), s));

            Object element = s.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                treeViewer.setExpandedState(element, !treeViewer.getExpandedState(element));
            } else if (element instanceof WorkbenchWizardElement) {
                page.advanceToNextPageOrFinish();
            }
        }
    });

    treeViewer.addFilter(filter);

    if (projectsOnly) {
        treeViewer.addFilter(projectFilter);
    }

    Dialog.applyDialogFont(filterTree);
    return filterTree;
}

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

License:Open Source License

private TreePath visitChildren(TreeViewer viewer, TreePath itemPath, TreeItem item, TreeVisitor visitor) {
    boolean restoreCollapsedState = false;
    // expand item
    try {//from   w  w  w.  ja  v a2s .com
        if (getExpandNodes()) {
            boolean expandedState = item.getExpanded();
            if (!expandedState) {
                restoreCollapsedState = true;
                viewer.setExpandedState(itemPath, true);
            }
        }

        TreeItem[] children = item.getItems();
        if (children.length > 0 && children[0].getData() != null) {
            TreePath childPath = visitItems(viewer, itemPath, children, null, visitor);
            if (childPath != null) {
                return childPath;
            }
        }

    } finally {
        if (restoreCollapsedState) {
            // restore item state
            viewer.setExpandedState(itemPath, false);
        }
    }

    return null;
}

From source file:org.eclipse.nebula.widgets.nattable.examples.e4.NavigationPart.java

License:Open Source License

@PostConstruct
public void postConstruct(Composite parent) {
    final TreeViewer navTreeViewer = new TreeViewer(parent);

    final NavContentProvider contentProvider = new NavContentProvider() {
        @Override//from  w  ww  .ja v a  2s  . c om
        public Object[] getElements(Object inputElement) {
            Set<String> topLevelElements = new LinkedHashSet<>();

            String[] examplePaths = (String[]) inputElement;
            for (final String examplePath : examplePaths) {
                String parentPath = "";
                String absolutePath = "";

                // remove the package name for the tree structure
                String path = examplePath;
                if (examplePath.startsWith(INatExample.TUTORIAL_EXAMPLES_PREFIX)) {
                    path = examplePath.replace(INatExample.BASE_PATH, "");
                } else if (examplePath.startsWith(INatExample.CLASSIC_EXAMPLES_PREFIX)) {
                    path = examplePath.replace(INatExample.CLASSIC_BASE_PATH, "");
                } else if (examplePath.startsWith(E4_EXAMPLES_PREFIX)) {
                    path = examplePath.replace(E4_BASE_PATH, "");
                }
                final StringTokenizer tok = new StringTokenizer(path, "/");
                while (tok.hasMoreTokens()) {
                    final String pathElement = tok.nextToken();
                    if (parentPath.length() == 0) {
                        topLevelElements.add("/" + pathElement);
                    }
                    absolutePath += "/" + pathElement;

                    final Collection<String> children = getChildren(parentPath);
                    children.add(absolutePath);

                    parentPath = absolutePath;
                }
            }

            return topLevelElements.toArray();
        }

    };
    navTreeViewer.setContentProvider(contentProvider);
    navTreeViewer.setLabelProvider(new NavLabelProvider(contentProvider) {

        @Override
        public String getText(Object element) {
            String str = (String) element;
            if (!contentProvider.hasChildren(element)) {
                INatExample example = getExample(str);
                return example.getName();
            }

            int lastSlashIndex = str.lastIndexOf('/');
            if (lastSlashIndex < 0) {
                return format(str);
            } else {
                return format(str.substring(lastSlashIndex + 1));
            }
        }

    });
    navTreeViewer.setInput(getExamplePaths());
    navTreeViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeSelection selection = (TreeSelection) event.getSelection();
            for (TreePath path : selection.getPaths()) {
                // check for item - if node expand/collapse, if child open
                if (contentProvider.hasChildren(path.getLastSegment().toString())) {
                    boolean expanded = navTreeViewer.getExpandedState(path);
                    navTreeViewer.setExpandedState(path, !expanded);
                } else {
                    openExampleInTab(path.getLastSegment().toString());
                }
            }
        }

    });

    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    parent.setLayout(layout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(navTreeViewer.getControl());
}

From source file:org.eclipse.oomph.setup.ui.actions.AbstractContainerAction.java

License:Open Source License

protected final void expandItem(final EObject object) {
    if (selectionProvider instanceof IViewerProvider) {
        IViewerProvider viewerProvider = (IViewerProvider) selectionProvider;
        final Viewer viewer = viewerProvider.getViewer();
        if (viewer instanceof TreeViewer) {
            UIUtil.getDisplay().asyncExec(new Runnable() {
                public void run() {
                    TreeViewer treeViewer = (TreeViewer) viewer;
                    expand(treeViewer, object);

                    IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();

                    @SuppressWarnings("unchecked")
                    List<Object> list = selection.toList();
                    list = new ArrayList<Object>(list);
                    list.add(object);//ww w. jav a2s.  c  om

                    treeViewer.setSelection(new StructuredSelection(list));
                }

                private void expand(TreeViewer treeViewer, EObject object) {
                    treeViewer.setExpandedState(object, true);

                    EObject eContainer = object.eContainer();
                    if (eContainer != null) {
                        expand(treeViewer, eContainer);
                    }
                }
            });
        }
    }
}