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

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

Introduction

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

Prototype

public void collapseAll() 

Source Link

Document

Collapses all nodes of the viewer's tree, starting with the root.

Usage

From source file:com.ebmwebsourcing.petals.services.su.wizards.pages.ChoicePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {

    // Create the composite container and define its layout
    final Composite container = SwtFactory.createComposite(parent);
    setControl(container);// www  . ja v  a2  s .  c  o m
    SwtFactory.applyNewGridLayout(container, 2, false, 15, 0, 0, 15);
    SwtFactory.applyHorizontalGridData(container);

    // Add a tool tip to display in case of problem
    this.helpTooltip = new FixedShellTooltip(getShell(), true, 90) {
        @Override
        public void populateTooltip(Composite parent) {

            GridLayout layout = new GridLayout();
            layout.verticalSpacing = 2;
            parent.setLayout(layout);
            parent.setLayoutData(new GridData(GridData.FILL_BOTH));
            parent.setBackground(getShell().getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));

            try {
                ImageDescriptor desc = AbstractUIPlugin.imageDescriptorFromPlugin(
                        PetalsConstants.PETALS_COMMON_PLUGIN_ID, "icons/petals/thinking_hard.png");

                if (desc != null)
                    ChoicePage.this.helpImg = desc.createImage();

                parent.setBackgroundMode(SWT.INHERIT_DEFAULT);
                Label imgLabel = new Label(parent, SWT.NONE);
                imgLabel.setImage(ChoicePage.this.helpImg);
                imgLabel.setLayoutData(new GridData(SWT.CENTER, SWT.DEFAULT, true, true));

            } catch (Exception e) {
                PetalsServicesPlugin.log(e, IStatus.WARNING);
            }

            FontData[] fd = PlatformUtils.getModifiedFontData(getFont().getFontData(), SWT.BOLD);
            ChoicePage.this.boldFont = new Font(getShell().getDisplay(), fd);
            Label titleLabel = new Label(parent, SWT.NONE);
            titleLabel.setFont(ChoicePage.this.boldFont);
            GridData layoutData = new GridData(SWT.CENTER, SWT.DEFAULT, true, true);
            layoutData.verticalIndent = 5;
            titleLabel.setLayoutData(layoutData);
            titleLabel.setText("What does this error mean?");

            Label l = new Label(parent, SWT.WRAP);
            l.setText("This wizard will generate, among other things, Maven artifacts.");
            layoutData = new GridData();
            layoutData.verticalIndent = 8;
            l.setLayoutData(layoutData);

            RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL);
            rowLayout.marginLeft = 0;
            rowLayout.marginTop = 0;
            rowLayout.marginRight = 0;
            rowLayout.marginBottom = 0;
            rowLayout.spacing = 0;

            Composite rowComposite = new Composite(parent, SWT.NONE);
            rowComposite.setLayout(rowLayout);
            rowComposite.setLayoutData(new GridData(SWT.CENTER, SWT.DEFAULT, true, true));

            new Label(rowComposite, SWT.WRAP).setText("Unfortunately, there is a problem with the ");
            Link link = new Link(rowComposite, SWT.WRAP | SWT.NO_FOCUS);
            link.setText("<A>the Petals Maven preferences</A>");
            new Label(rowComposite, SWT.WRAP).setText(".");
            new Label(parent, SWT.WRAP).setText("Please, make them correct.");

            link.addSelectionListener(new DefaultSelectionListener() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    try {
                        PreferencesUtil.createPreferenceDialogOn(new Shell(),
                                "com.ebmwebsourcing.petals.services.prefs.maven", null, null).open();

                    } catch (Exception e1) {
                        PetalsServicesPlugin.log(e1, IStatus.ERROR);
                    }
                }
            });
        }
    };

    // Prepare the input
    Comparator<AbstractServiceUnitWizard> comparator = new Comparator<AbstractServiceUnitWizard>() {
        @Override
        public int compare(AbstractServiceUnitWizard o1, AbstractServiceUnitWizard o2) {
            String v1 = o1.getComponentVersionDescription().getComponentVersion();
            String v2 = o2.getComponentVersionDescription().getComponentVersion();
            return -v1.compareTo(v2); // negative so that the most recent is first
        }
    };

    final Map<String, Collection<AbstractServiceUnitWizard>> componentNameToHandler = new TreeMap<String, Collection<AbstractServiceUnitWizard>>();
    final Map<PetalsKeyWords, Set<String>> keywordToComponentName = new TreeMap<PetalsKeyWords, Set<String>>();
    for (AbstractServiceUnitWizard handler : ExtensionManager.INSTANCE.findComponentWizards(this.petalsMode)) {
        for (PetalsKeyWords keyword : handler.getComponentVersionDescription().getKeyWords()) {
            Set<String> list = keywordToComponentName.get(keyword);
            if (list == null)
                list = new TreeSet<String>();

            String componentName = handler.getComponentVersionDescription().getComponentName();
            list.add(componentName);
            keywordToComponentName.put(keyword, list);

            Collection<AbstractServiceUnitWizard> handlers = componentNameToHandler.get(componentName);
            if (handlers == null)
                handlers = new TreeSet<AbstractServiceUnitWizard>(comparator);

            handlers.add(handler);
            componentNameToHandler.put(componentName, handlers);
        }
    }

    // Add the selection area
    final PhantomText searchText = new PhantomText(container, SWT.SINGLE | SWT.BORDER);
    searchText.setDefaultValue("Search...");
    GridDataFactory.swtDefaults().grab(true, false).align(SWT.FILL, SWT.TOP).span(2, 1).applyTo(searchText);

    final TreeViewer componentsViewer = new TreeViewer(container, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    GridDataFactory.fillDefaults().span(2, 1).hint(380, 300).applyTo(componentsViewer.getTree());
    componentsViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {

            String result;
            if (element instanceof String) {
                IComponentDescription desc = componentNameToHandler.get(element).iterator().next()
                        .getComponentVersionDescription();
                String componentName = desc.getComponentName();
                String componentAlias = desc.getComponentAlias();
                String annotation = desc.getComponentAnnotation();

                StringBuilder sb = new StringBuilder();
                if (StringUtils.isEmpty(componentName))
                    sb.append(componentAlias); // Generic component
                else
                    sb.append(componentAlias + "    -  " + componentName);

                if (!StringUtils.isEmpty(annotation))
                    sb.append("    ( " + annotation + " )");

                result = sb.toString();

            } else {
                result = super.getText(element);
            }

            return result;
        }

        @Override
        public Image getImage(Object element) {

            Image result = null;
            if (element instanceof PetalsKeyWords) {
                result = ChoicePage.this.keywordToImage.get(element);
            } else {
                IComponentDescription desc = componentNameToHandler.get(element).iterator().next()
                        .getComponentVersionDescription();
                result = desc.isBc() ? ChoicePage.this.bcImg : ChoicePage.this.seImg;
            }

            return result;
        }
    });

    componentsViewer.setContentProvider(new DefaultTreeContentProvider() {
        @Override
        public Object[] getElements(Object inputElement) {
            return keywordToComponentName.keySet().toArray();
        }

        @Override
        public Object[] getChildren(Object parentElement) {

            Object[] result;
            if (parentElement instanceof PetalsKeyWords) {
                Collection<String> componentNames = keywordToComponentName.get(parentElement);
                result = componentNames == null ? new Object[0] : componentNames.toArray();

            } else {
                result = new Object[0];
            }

            return result;
        }

        @Override
        public boolean hasChildren(Object element) {
            return element instanceof PetalsKeyWords;
        }
    });

    componentsViewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {

            boolean result = false;
            String filter = searchText.getTextValue().trim().toLowerCase();
            if (filter.length() == 0)
                result = true;

            else if (element instanceof PetalsKeyWords) {
                Set<String> names = keywordToComponentName.get(element);
                if (names != null) {
                    for (String s : names) {
                        if (select(viewer, null, s)) {
                            result = true;
                            break;
                        }
                    }
                }
            }

            else if (element instanceof String)
                result = ((String) element).toLowerCase().contains(filter);

            return result;
        }
    });

    componentsViewer.setInput(new Object());
    if (keywordToComponentName.size() > 0)
        componentsViewer.expandToLevel(keywordToComponentName.keySet().iterator().next(), 1);

    // Display the available versions
    new Label(container, SWT.NONE).setText("Component Version:");
    final ComboViewer versionCombo = new ComboViewer(container, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
    GridData layoutData = new GridData();
    layoutData.widthHint = 130;
    versionCombo.getCombo().setLayoutData(layoutData);
    versionCombo.setContentProvider(new ArrayContentProvider());
    versionCombo.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((AbstractServiceUnitWizard) element).getComponentVersionDescription().getComponentVersion();
        }
    });

    final Label descriptionLabel = new Label(container, SWT.NONE);
    GridDataFactory.swtDefaults().span(2, 1).indent(0, 10).applyTo(descriptionLabel);

    // Selection listeners
    searchText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            componentsViewer.refresh();
            if (searchText.getTextValue().trim().length() == 0)
                componentsViewer.collapseAll();
            else
                componentsViewer.expandAll();
        }
    });

    componentsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {

            // Get the selection
            Object o = ((IStructuredSelection) event.getSelection()).getFirstElement();
            Collection<?> input;
            if (o == null || o instanceof PetalsKeyWords)
                input = Collections.emptyList();
            else
                input = componentNameToHandler.get(o);

            // Default selection - there is always one
            versionCombo.setInput(input);
            versionCombo.getCombo().setVisibleItemCount(input.size() > 0 ? input.size() : 1);
            if (!input.isEmpty()) {
                versionCombo.setSelection(new StructuredSelection(input.iterator().next()));
                versionCombo.getCombo().notifyListeners(SWT.Selection, new Event());
            } else {
                setPageComplete(false);
                setSelectedNode(null);
                descriptionLabel.setText("");
                descriptionLabel.getParent().layout();
            }
        }
    });

    versionCombo.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            AbstractServiceUnitWizard suWizard = (AbstractServiceUnitWizard) ((IStructuredSelection) event
                    .getSelection()).getFirstElement();
            if (suWizard == null)
                return;

            setPageComplete(true);
            setSelectedNode(getWizardNode(suWizard));

            String desc = ChoicePage.this.petalsMode == PetalsMode.provides
                    ? suWizard.getComponentVersionDescription().getProvideDescription()
                    : suWizard.getComponentVersionDescription().getConsumeDescription();
            descriptionLabel.setText(desc);
            descriptionLabel.getParent().layout();
        }
    });

    // Initialize
    if (PreferencesManager.isMavenTemplateConfigurationValid())
        this.helpTooltip.hide();

    componentsViewer.getTree().setFocus();
}

From source file:com.twinsoft.convertigo.eclipse.views.schema.SchemaView.java

License:Open Source License

private TreeViewer makeTreeViewer(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    composite.setLayout(SwtUtils.newGridLayout(1, false, 0, 0, 0, 0));

    ToolBar toolbar = new ToolBar(composite, SWT.NONE);
    toolbar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    final TreeViewer treeViewer = new TreeViewer(composite);

    ToolItem toolItem = new ToolItem(toolbar, SWT.PUSH);
    setToolItemIcon(toolItem, "icons/studio/collapse_all_nodes.gif", "C", "Collapse all");

    toolItem.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            treeViewer.collapseAll();
        }/*from  w  w  w.j  ava2 s.c  om*/

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    toolItem = new ToolItem(toolbar, SWT.PUSH);
    setToolItemIcon(toolItem, "icons/studio/expand_all_nodes.gif", "E", "Expand all");

    toolItem.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            treeViewer.expandToLevel(50);
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    treeViewer.setLabelProvider(SchemaViewContentProvider.decoratingLabelProvider);
    treeViewer.setComparer(new IElementComparer() {

        public int hashCode(Object element) {
            String txt = SchemaViewContentProvider.decoratingLabelProvider.getText(element);
            int hash = txt.hashCode();
            if (element instanceof XmlSchemaObject) {
                Iterator<DatabaseObject> ref = SchemaMeta
                        .getReferencedDatabaseObjects((XmlSchemaObject) element).iterator();
                if (ref.hasNext()) {
                    hash += ref.next().hashCode();
                }
            }
            return hash;
        }

        public boolean equals(Object a, Object b) {
            boolean ret = false;
            if (a != null && b != null && a.getClass().equals(b.getClass())) {
                String aTxt = SchemaViewContentProvider.decoratingLabelProvider.getText(a);
                String bTxt = SchemaViewContentProvider.decoratingLabelProvider.getText(b);
                if (aTxt.equals(bTxt)) {
                    if (a instanceof XmlSchemaObject) {
                        Iterator<DatabaseObject> aRef = SchemaMeta
                                .getReferencedDatabaseObjects((XmlSchemaObject) a).iterator();
                        Iterator<DatabaseObject> bRef = SchemaMeta
                                .getReferencedDatabaseObjects((XmlSchemaObject) b).iterator();
                        if (aRef.hasNext() && bRef.hasNext()) {
                            ret = aRef.next() == bRef.next();
                        }
                    } else {
                        ret = true;
                    }
                }
            }
            return ret;
        }
    });
    return treeViewer;
}

From source file:edu.harvard.i2b2.eclipse.plugins.ontology.views.TreeNode.java

License:Open Source License

public Thread expandFindTree(TreeViewer viewer, String[] parts, String parent) {
    final TreeNode theNode = this;
    final TreeViewer theViewer = viewer;
    final String[] theParts = parts;
    final Display theDisplay = PlatformUI.getWorkbench().getDisplay();

    return new Thread() {
        @Override/* www .  j a v  a2s  . c  o  m*/
        public void run() {
            try {
                //   String parent = theParent;
                TreeNode treeNode = theNode;
                String compare = "\\";
                for (int i = 1; i < theParts.length; i++) {
                    compare += theParts[i] + "\\";
                    List<TreeNode> nodes = treeNode.getChildren();
                    Iterator<TreeNode> it = nodes.iterator();
                    while (it.hasNext()) {
                        TreeNode node = (TreeNode) it.next();

                        if (StringUtil.getPath(node.getData().getFullName()).equals(compare)) {
                            treeNode = node;
                            RefreshNode.getInstance().setRefreshNode(treeNode);
                            RefreshNode.getInstance().setLevel(i);
                            if ((node.getChildren().isEmpty())
                                    || (node.getChildren().get(0).getData().getName().equals("working..."))) {
                                //   node.setOpen(true);
                                node.getChildren().clear();
                                treeNode.updateModifiers(theDisplay, theViewer);
                                treeNode.updateChildren(theDisplay, theViewer);
                            }
                            break;
                        }
                    }
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                //            System.setProperty("statusMessage", e.getMessage());               
            }
            theDisplay.syncExec(new Runnable() {
                public void run() {
                    theViewer.collapseAll();
                    theViewer.expandToLevel(RefreshNode.getInstance().getRefreshNode(), 1);
                    theViewer.setSelection(new StructuredSelection(RefreshNode.getInstance().getRefreshNode()),
                            true);
                    theViewer.getTree().setEnabled(true);
                }

            });
        }
    };
}

From source file:es.cv.gvcase.mdt.common.part.ViewerPopUpMenu.java

License:Open Source License

/**
 * Gets the collapse selection listener.
 * /*from w w w  .ja va  2 s.c  om*/
 * @param treeViewer
 *            the tree viewer
 * 
 * @return the collapse selection listener
 */
private SelectionAdapter getCollapseSelectionListener(final TreeViewer treeViewer) {
    if (collapseSelectionListener == null) {
        collapseSelectionListener = new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                treeViewer.collapseAll();
            }
        };
    }
    return collapseSelectionListener;
}

From source file:fr.opensagres.eclipse.jsbuild.internal.ui.views.actions.CollapseAllHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    IWorkbenchPart part = HandlerUtil.getActivePart(event);
    if (part instanceof JSBuildFileView) {
        JSBuildFileView view = (JSBuildFileView) part;
        TreeViewer viewer = view.getViewer();
        try {// w  w w  .  ja  va2 s .  com
            viewer.getTree().setRedraw(false);
            viewer.collapseAll();
        } finally {
            viewer.getTree().setRedraw(true);
        }
    }
    return null;
}

From source file:gov.nasa.ensemble.core.activityDictionary.view.DefinitionTreeView.java

License:Open Source License

/**
 * A heuristic for determining how much information to show in this view. If
 * nodes of the tree have an excessively large number of children then it
 * may not always be ideal to display all the children by default. This
 * method attempts to display a reasonable amount of information to the
 * user.//from  w  w  w .  j a  v a 2 s .  c  o  m
 * 
 * @param treeViewer
 */
protected void applyExpandHeuristic(TreeViewer treeViewer) {
    ITreeContentProvider cp = (ITreeContentProvider) treeViewer.getContentProvider();

    Object[] rootChildren = cp.getElements(null);
    if (rootChildren.length == 0)
        return;
    Object root = cp.getParent(rootChildren[0]);

    FindFilter filter = new FindFilter();

    Object children[] = filter.filter(treeViewer, root, rootChildren);
    if (children.length == 1) {
        treeViewer.expandAll();
        return;
    }

    int totalChildren = 0;
    for (int i = 0; i < 25 && i < children.length; i++) {
        totalChildren += filter.filter(treeViewer, children[i], cp.getChildren(children[i])).length;
    }

    if (totalChildren > 25) {
        treeViewer.collapseAll();
        treeViewer.expandToLevel(root, 1);
    } else {
        treeViewer.expandAll();
    }
}

From source file:gov.redhawk.ui.views.domainbrowser.actions.CollapseAllHandler.java

License:Open Source License

@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
    final IWorkbenchPart part = HandlerUtil.getActivePart(event);

    if (part != null && part instanceof DomainBrowserView) {
        final TreeViewer viewer = ((DomainBrowserView) part).getTreeViewer();

        if (viewer != null && !viewer.getTree().isDisposed()) {
            viewer.collapseAll();
        }//from  w w  w .  j ava  2  s.co m
    }

    return null;
}

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 w  w  .ja va  2  s .  c  o m
            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:net.tourbook.ui.action.ActionCollapseAll.java

License:Open Source License

@Override
public void run() {

    if (_tourViewer != null) {

        final ColumnViewer viewer = _tourViewer.getViewer();

        if (viewer instanceof TreeViewer) {

            final TreeViewer treeViewer = (TreeViewer) viewer;

            final Tree tree = treeViewer.getTree();

            // disable redraw that the UI in not flickering
            tree.setRedraw(false);/*w ww  . j  a  va2  s. com*/
            {
                try {
                    treeViewer.collapseAll();
                } catch (final Exception e) {
                    // this occured
                }
            }
            tree.setRedraw(true);

            try {

                final StructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
                if (selection != null) {
                    final Object firstElement = selection.getFirstElement();
                    if (firstElement != null) {
                        treeViewer.reveal(firstElement);
                    }
                }

            } catch (final Exception e) {

                // this occured, ensure something is selected otherwise further NPEs occure

                final TreeItem[] selection = tree.getSelection();

                for (final TreeItem treeItem : selection) {

                    final Object itemData = treeItem.getData();

                    _tourViewer.getViewer().setSelection(new StructuredSelection(itemData), true);

                    break;
                }
            }
        }
    }
}

From source file:net.tourbook.ui.action.ActionCollapseOthers.java

License:Open Source License

@Override
public void run() {

    if (fTourViewer != null) {

        final ColumnViewer viewer = fTourViewer.getViewer();
        if (viewer instanceof TreeViewer) {

            final TreeViewer treeViewer = (TreeViewer) viewer;
            final Object firstElement = ((StructuredSelection) treeViewer.getSelection()).getFirstElement();

            if (firstElement != null) {

                final Tree tree = treeViewer.getTree();
                tree.setRedraw(false);/*  w w w  .  ja  va  2s .  c  o m*/
                {
                    treeViewer.collapseAll();
                    treeViewer.setExpandedElements(new Object[] { firstElement });
                    treeViewer.setSelection(new StructuredSelection(firstElement), true);
                }
                tree.setRedraw(true);
            }
        }
    }
}