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.tcf.te.ui.wizards.newWizard.NewWizardSelectionPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout());
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label label = new Label(composite, SWT.NONE);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    label.setText(Messages.NewWizardSelectionPage_wizards);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    filteredTreeFilter = new WizardPatternFilter();
    filteredTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            filteredTreeFilter, true);// ww  w .  ja va  2s.co m
    filteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 325;
    layoutData.widthHint = 450;
    filteredTree.setLayoutData(layoutData);

    final TreeViewer treeViewer = filteredTree.getViewer();
    treeViewer.setContentProvider(new NewWizardContentProvider());
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setComparator(new NewWizardViewerComparator());

    treeViewer.addFilter(new NewWizardViewerFilter());

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            onSelectionChanged();
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            // Double-click on a connection type is triggering the sub wizard
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();
                // The tree is single selection, so look for the first element only.
                Object element = selection.getFirstElement();
                if (element instanceof IWizardDescriptor) {
                    // Double-click on a connection type is triggering the sub wizard
                    if (canFlipToNextPage()) {
                        getWizard().getContainer().showPage(getNextPage());
                    }
                } else if (event.getViewer() instanceof TreeViewer) {
                    TreeViewer viewer = (TreeViewer) event.getViewer();
                    if (viewer.isExpandable(element)) {
                        viewer.setExpandedState(element, !viewer.getExpandedState(element));
                    }
                }
            }
        }
    });

    treeViewer.setInput(category != null ? category : wizardRegistry);

    // apply the standard dialog font
    Dialog.applyDialogFont(composite);

    setControl(composite);

    // Restore the tree action
    restoreWidgetValues();

    // Initialize the context help id
    PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
            IUIConstants.HELP_NEW_WIZARD_SELECTION_PAGE);
}

From source file:org.eclipse.tm.te.ui.views.handler.OpenCommandHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    // The selection is the Target Explorer tree selection
    ISelection selection = HandlerUtil.getCurrentSelection(event);
    // The active part is the Target Explorer view instance
    IWorkbenchPart part = HandlerUtil.getActivePart(event);

    if (selection instanceof IStructuredSelection && !selection.isEmpty() && part instanceof CommonNavigator) {
        // If the tree node is expandable, expand or collapse it
        TreeViewer viewer = ((CommonNavigator) part).getCommonViewer();
        Object element = ((IStructuredSelection) selection).getFirstElement();
        if (viewer.isExpandable(element)) {
            viewer.setExpandedState(element, !viewer.getExpandedState(element));
        } else {/* w  w w .j  a  v a2 s.  c o m*/
            // Node is not an expandable node, forward to the properties action.
            ICommandService service = (ICommandService) PlatformUI.getWorkbench()
                    .getService(ICommandService.class);
            Command command = service != null ? service.getCommand(ActionFactory.PROPERTIES.getCommandId())
                    : null;
            if (command != null && command.isDefined() && command.isEnabled()) {
                try {
                    command.executeWithChecks(event);
                } catch (Exception e) {
                    // If the platform is in debug mode, we print the exception to the log view
                    if (Platform.inDebugMode()) {
                        IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
                                e.getLocalizedMessage(), e);
                        UIPlugin.getDefault().getLog().log(status);
                    }
                }
            }
        }
    }

    return null;
}

From source file:org.eclipse.tm.te.ui.wizards.newWizard.NewWizardSelectionPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout());
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label label = new Label(composite, SWT.NONE);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    label.setText(Messages.NewWizardSelectionPage_wizards);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    filteredTreeFilter = new WizardPatternFilter();
    filteredTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            filteredTreeFilter, true);//w ww  . j av a  2s.c o m
    filteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 325;
    layoutData.widthHint = 450;
    filteredTree.setLayoutData(layoutData);

    final TreeViewer treeViewer = filteredTree.getViewer();
    treeViewer.setContentProvider(new WizardContentProvider());
    treeViewer.setLabelProvider(new WorkbenchLabelProvider());
    treeViewer.setComparator(new NewWizardViewerComparator());

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            onSelectionChanged();
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            // Double-click on a connection type is triggering the sub wizard
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();
                // The tree is single selection, so look for the first element only.
                Object element = selection.getFirstElement();
                if (element instanceof IWizardDescriptor) {
                    // Double-click on a connection type is triggering the sub wizard
                    if (canFlipToNextPage())
                        getWizard().getContainer().showPage(getNextPage());
                } else if (event.getViewer() instanceof TreeViewer) {
                    TreeViewer viewer = (TreeViewer) event.getViewer();
                    if (viewer.isExpandable(element)) {
                        viewer.setExpandedState(element, !viewer.getExpandedState(element));
                    }
                }
            }
        }
    });

    treeViewer.setInput(wizardRegistry.getRootCategory());

    // apply the standard dialog font
    Dialog.applyDialogFont(composite);

    setControl(composite);

    // Restore the tree state
    restoreWidgetValues();

    // Initialize the context help id
    PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
            IUIConstants.HELP_NEW_WIZARD_SELECTION_PAGE);
}

From source file:org.eclipse.ui.internal.dialogs.NewWizardNewPage.java

License:Open Source License

/**
 * Create a new FilteredTree in the parent.
 * //from ww w .  j  a  v a 2  s.com
 * @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);
    filterTree.setQuickSelectionMode(true);

    final TreeViewer treeViewer = filterTree.getViewer();
    treeViewer.setContentProvider(new WizardContentProvider());
    treeViewer.setLabelProvider(new DelegatingLabelProviderWithTooltip(new WorkbenchLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(ContributingPluginDecorator.ID)) {
        protected Object unwrapElement(Object element) {
            if (element instanceof WorkbenchWizardElement) {
                element = ((WorkbenchWizardElement) element).getConfigurationElement();
            }
            if (element instanceof WizardCollectionElement) {
                element = ((WizardCollectionElement) element).getConfigurationElement();
            }
            return element;
        }
    });
    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;

    if (wizardCategories != null) {
        if (wizardCategories.getParent() == null) {
            IWizardCategory[] children = wizardCategories.getCategories();
            for (int i = 0; i < children.length; i++) {
                inputArray.add(children[i]);
            }
        } 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.ui.navigator.CommonNavigator.java

License:Open Source License

/**
 * <p>/*  ww w  . j a  va 2s.  c  om*/
 * Note: This method is for internal use only. Clients should not call this
 * method.
 * </p>
 * 
 * @param anEvent
 *            Supplied by the DoubleClick listener.
 */
protected void handleDoubleClick(DoubleClickEvent anEvent) {

    IAction openHandler = getViewSite().getActionBars().getGlobalActionHandler(ICommonActionConstants.OPEN);

    if (openHandler == null) {
        IStructuredSelection selection = (IStructuredSelection) anEvent.getSelection();
        Object element = selection.getFirstElement();

        TreeViewer viewer = getCommonViewer();
        if (viewer.isExpandable(element)) {
            viewer.setExpandedState(element, !viewer.getExpandedState(element));
        }
    }
}

From source file:org.eclipse.ui.trace.internal.TracingDoubleClickListener.java

License:Open Source License

public void doubleClick(final DoubleClickEvent event) {
    // auto-expand or collapse the selected node
    TreeViewer traceComponentViewer = (TreeViewer) event.getViewer();
    final Object selectedItem = ((IStructuredSelection) traceComponentViewer.getSelection()).getFirstElement();
    final boolean expandedState = traceComponentViewer.getExpandedState(selectedItem);
    if (selectedItem instanceof TracingNode) {
        traceComponentViewer.setExpandedState(selectedItem, !expandedState);
    }/*from w ww  . ja  v  a 2s.  c om*/
}

From source file:org.eclipse.wst.jsdt.internal.ui.packageview.PackageExplorerActionGroup.java

License:Open Source License

void handleDoubleClick(DoubleClickEvent event) {
    TreeViewer viewer = fPart.getTreeViewer();
    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 IJavaScriptUnit || element instanceof IClassFile)
                return;
            if (element instanceof IOpenable || element instanceof IContainer
                    || element instanceof IWorkingSet) {
                fZoomInAction.run();//from   ww  w.  j a v a 2 s. com
            }
        } 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));
            }
        }
    } else if (element instanceof IProject && !((IProject) element).isOpen()) {
        OpenProjectAction openProjectAction = fProjectActionGroup.getOpenProjectAction();
        if (openProjectAction.isEnabled()) {
            openProjectAction.run();
        }
    }
}

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

License:Apache License

protected void buildBody(Section section, FormToolkit toolkit) {
    section.setLayout(EditorLayoutFactory.createClearTableWrapLayout(false, 1));
    GridData sectionData = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
    section.setLayoutData(sectionData);//from   w  w  w  .  j  a  v a2  s.  com

    section.setText(getSectionTitle());
    section.setDescription(getSectionDescription());

    Composite body = toolkit.createComposite(section);
    body.setLayout(new GridLayout());
    body.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    filteredTree = new FilteredTree(body, SWT.VIRTUAL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI,
            new PatternFilter(), true) {

        ISelection selection;
        Object[] expanded;

        protected WorkbenchJob doCreateRefreshJob() {
            WorkbenchJob refreshJob2 = super.doCreateRefreshJob();
            refreshJob2.addJobChangeListener(new JobChangeAdapter() {
                public void done(IJobChangeEvent event) {
                    if (!event.getResult().isOK())
                        return;

                    String text = getFilterString();
                    if (text != null && text.length() > 0)
                        return;

                    TreeViewer treeview = getViewer();
                    if (expanded != null) {
                        treeview.getControl().setRedraw(false);
                        treeview.setExpandedElements(expanded);
                        treeview.getControl().setRedraw(true);

                        expanded = null;
                    }
                    if (selection != null) {
                        getViewer().setSelection(selection, true);
                        getManagedForm().fireSelectionChanged(AbstractNodeTreeSection.this, selection);
                        selection = null;
                    }
                };
            });
            return refreshJob2;

        };

        protected void textChanged() {
            if (selection == null)
                selection = getViewer().getSelection();

            if (expanded == null)
                expanded = getViewer().getExpandedElements();

            super.textChanged();

        }
    };

    GridData treeGD = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
    treeGD.widthHint = 200;
    treeGD.heightHint = 100;
    filteredTree.setLayoutData(treeGD);
    final TreeViewer viewer = filteredTree.getViewer();
    viewer.setLabelProvider(new NodeStyledCellLabelProvider(getLabelProvider()));
    viewer.setContentProvider(getContentProvider());
    new ViewerToolTipSupport(viewer);
    viewer.setAutoExpandLevel(expand_level);
    editor.getSite().setSelectionProvider(viewer);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            showNodeDetails();

            editor.getContributor().refreah();
        }

    });

    // add default double click support to tree
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            boolean expandedState = viewer.getExpandedState(selection.getFirstElement());
            viewer.setExpandedState(selection.getFirstElement(), !expandedState);

        }
    });

    viewer.getTree().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDown(MouseEvent e) {
            if (e.button == 3) {
                Point point = new Point(e.x, e.y);
                TreeItem item = viewer.getTree().getItem(point);
                if (item == null) {
                    viewer.setSelection(null);
                }
            }
        }
    });

    connectContextMenu();
    connectAddContextMenu();
    toolkit.paintBordersFor(body);
    section.setTabList(new Control[] { body });
    section.setClient(body);

}

From source file:org.gumtree.gumnix.sics.batch.ui.VisualBatchBufferToolViewer.java

License:Open Source License

protected void createUI() {
    if (isDisposed()) {
        return;/*from   w  ww .  jav  a 2  s .c  o  m*/
    }
    GridLayoutFactory.swtDefaults().applyTo(this);

    Group toolGroup = new Group(this, SWT.NONE);
    toolGroup.setText("Task Library");
    toolGroup.setLayout(new FillLayout());
    getToolkit().adapt(toolGroup);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(toolGroup);

    final TreeViewer toolViewer = new TreeViewer(toolGroup, SWT.NONE);
    toolViewer.setContentProvider(new TreeContentProvider() {
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof ICommandRegistry) {
                commandTreeNode = new CommandTreeNode((ICommandRegistry) inputElement, toolViewer);
                scientistFolder = new FolderTreeNode("Instrument Scientist's Tasks", toolViewer);
                userFolder = new FolderTreeNode("User Defined Tasks", toolViewer);
                //               return new Object[] { commandTreeNode, scientistFolder, userFolder};
                //               return new Object[] { commandTreeNode};
                return commandTreeNode.getChildren();
            } else {
                return new Object[0];
            }
        }
    });
    toolViewer.setLabelProvider(new TreeLabelProvider());
    toolViewer.setInput(ServiceUtils.getService(ICommandRegistry.class));
    toolViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new DragSourceAdapter() {
                public void dragFinished(DragSourceEvent event) {
                    LocalSelectionTransfer.getTransfer().setSelection(null);
                }

                public void dragSetData(DragSourceEvent event) {
                    if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
                        LocalSelectionTransfer.getTransfer().setSelection(toolViewer.getSelection());
                    }
                }

            });
    toolViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ITreeNode node = (ITreeNode) ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (!(node.getOriginalObject() instanceof ITaskDescriptor)) {
                return;
            }
            ITaskDescriptor desc = (ITaskDescriptor) node.getOriginalObject();
            try {
                WorkflowUtils.addNewTask(getWorkflow(), desc);
            } catch (ObjectCreateException e) {
                logger.error("Failed to add from an task descriptor.", e);
            }
        }
    });
    toolViewer.setExpandedState(commandTreeNode, true);
    getParent().layout(true, true);
}

From source file:org.mailster.gui.prefs.ConfigurationDialog.java

License:Open Source License

/**
 * Add the listeners to the tree viewer.
 * // ww  w .j  a  va  2  s  .com
 * @param viewer
 * @since 3.1
 */
protected void addListeners(final TreeViewer viewer) {
    viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
        private void handleError() {
            try {
                // remove the listener temporarily so that the events caused
                // by the error handling dont further cause error handling
                // to occur.
                viewer.removePostSelectionChangedListener(this);
                showPageFlippingAbortError();
                selectLastVisitedPageAgain();
                clearLastSelectedNode();
            } finally {

                viewer.addPostSelectionChangedListener(this);
            }
        }

        public void selectionChanged(SelectionChangedEvent event) {
            Object selection = getSingleSelection(event.getSelection());
            if (selection instanceof IPreferenceNode) {
                if (!isCurrentPageValid()) {
                    handleError();
                } else if (!showPage((IPreferenceNode) selection)) {
                    // Page flipping wasn't successful
                    handleError();
                } else {
                    // Everything went well
                    lastSuccessfulNode = (IPreferenceNode) selection;
                }
            }
        }
    });
    ((Tree) viewer.getControl()).addSelectionListener(new SelectionAdapter() {
        public void widgetDefaultSelected(final SelectionEvent event) {
            ISelection selection = viewer.getSelection();
            if (selection.isEmpty())
                return;
            IPreferenceNode singleSelection = getSingleSelection(selection);
            boolean expanded = viewer.getExpandedState(singleSelection);
            viewer.setExpandedState(singleSelection, !expanded);
        }
    });
    // Register help listener on the tree to use context sensitive help
    viewer.getControl().addHelpListener(new HelpListener() {
        public void helpRequested(HelpEvent event) {
            // call perform help on the current page
            if (getCurrentPage() != null) {
                getCurrentPage().performHelp();
            }
        }
    });
}