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:ar.com.tadp.xml.rinzo.core.outline.XMLOutlinePage.java

License:Open Source License

protected void handleDoubleClick(DoubleClickEvent event) {
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    Object element = selection.getFirstElement();
    TreeViewer viewer = this.getTreeViewer();
    if (viewer.isExpandable(element)) {
        viewer.setExpandedState(element, !viewer.getExpandedState(element));
    }//  ww w .  ja va 2  s  .co m
}

From source file:ch.gpb.elexis.cst.view.profileeditor.RemindersComposite.java

License:Open Source License

public RemindersComposite(Composite parent) {
    super(parent, SWT.NONE);

    GridLayout gridLayout = new GridLayout(4, false);
    setLayout(gridLayout);/*from w  ww. j  a  va  2  s .  com*/

    createLayout(this);

    treeviewer = new TreeViewer(this, SWT.BORDER);
    Tree tree_1 = treeviewer.getTree();
    GridData gd_tree_1 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 4, 1);
    gd_tree_1.heightHint = 230;
    gd_tree_1.widthHint = 500;
    tree_1.setLayoutData(gd_tree_1);
    treeviewer.setContentProvider(new ViewContentProvider());
    treeviewer.setLabelProvider(new ViewLabelProvider());

    Button btnNewAction = new Button(this, SWT.NONE);
    btnNewAction.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
    btnNewAction.setText("Start new event chain");
    btnNewAction.addSelectionListener(new NewItemListener());

    Button btnExpandAll = new Button(this, SWT.NONE);
    btnExpandAll.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
    btnExpandAll.setText("Expand All");
    btnExpandAll.addSelectionListener(new ExpandAllListener());

    MenuManager menuMgr = new MenuManager();
    Menu menu = menuMgr.createContextMenu(treeviewer.getControl());
    menuMgr.addMenuListener(new IMenuListener() {
        @Override
        public void menuAboutToShow(IMenuManager manager) {
            if (treeviewer.getSelection().isEmpty()) {
                return;
            }

            if (treeviewer.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) treeviewer.getSelection();
                manager.add(actionAddObject);
                manager.add(actionDeleteObject);
                manager.add(actionEditObject);

            }
        }
    });

    menuMgr.setRemoveAllWhenShown(true);
    treeviewer.getControl().setMenu(menu);
    treeviewer.getTree().setHeaderVisible(true);
    ColumnViewerToolTipSupport.enableFor(treeviewer);

    makeActions();

    CoreHub.heart.addListener(this);
    new Label(this, SWT.NONE);

    lblHeart = new Label(this, SWT.NONE);
    lblHeart.setText(Messages.RemindersComposite_lblHeart_text);
    GridData gd_lblHeart = new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1);
    gd_lblHeart.heightHint = 50;
    gd_lblHeart.widthHint = 50;
    lblHeart.setLayoutData(gd_lblHeart);
    new Label(this, SWT.NONE);
    new Label(this, SWT.NONE);
    new Label(this, SWT.NONE);

    lblCheckingForActions = new Label(this, SWT.NONE);
    lblCheckingForActions.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
    lblCheckingForActions.setText(Messages.RemindersComposite_lblCheckingForActions_text);

    treeviewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) event.getViewer();
            IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection();
            Object selectedNode = thisSelection.getFirstElement();
            viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode));
        }
    });

    imageList = Arrays.asList(imgHeart1, imgHeart2, imgHeart3, imgHeartA, imgHeartB, imgHeartC, imgHeartD,
            imgHeartE);

    lblCheckingForActions.setVisible(false);
    lblHeart.setVisible(false);
}

From source file:com.amalto.workbench.widgets.RepositoryCheckTreeViewer.java

License:Open Source License

private void expandParent(TreeViewer viewer, TreeObject node) {
    TreeParent parent = node.getParent();
    if (parent != null) {
        expandParent(viewer, parent);//www  .j ava2  s.co m
        viewer.setExpandedState(parent, true);
    }
}

From source file:com.aptana.deploy.wizard.DeployWizardPage.java

License:Open Source License

/**
 * Method to call when an item in one of the lists is double-clicked. Shows the first page of the selected wizard or
 * expands a collapsed tree./*ww  w .  ja  v  a  2s. c  o  m*/
 * 
 * @param event
 */
protected void treeDoubleClicked(DoubleClickEvent event) {
    ISelection selection = event.getViewer().getSelection();
    IStructuredSelection ss = (IStructuredSelection) selection;
    listSelectionChanged(ss);

    Object element = ss.getFirstElement();
    TreeViewer v = (TreeViewer) event.getViewer();
    if (v.isExpandable(element)) {
        v.setExpandedState(element, !v.getExpandedState(element));
    } else if (element instanceof WorkbenchWizardElement) {
        if (canFlipToNextPage()) {
            getContainer().showPage(getNextPage());
            return;
        }
    }
    getContainer().showPage(getNextPage());
}

From source file:com.google.dart.tools.search.ui.text.AbstractTextSearchViewPage.java

License:Open Source License

/**
 * <p>/*from  ww  w. ja  v a 2s .  c  om*/
 * This method is called when the search page gets an 'open' event from its underlying viewer (for
 * example on double click). The default implementation will open the first match on any element
 * that has matches. If the element to be opened is an inner node in the tree layout, the node
 * will be expanded if it's collapsed and vice versa. Subclasses are allowed to override this
 * method.
 * </p>
 * 
 * @param event the event sent for the currently shown viewer
 * @see IOpenListener
 */
protected void handleOpen(OpenEvent event) {
    Viewer viewer = event.getViewer();
    boolean hasCurrentMatch = showCurrentMatch(OpenStrategy.activateOnOpen());
    ISelection sel = event.getSelection();
    if (viewer instanceof TreeViewer && sel instanceof IStructuredSelection) {
        IStructuredSelection selection = (IStructuredSelection) sel;
        TreeViewer tv = (TreeViewer) getViewer();
        Object element = selection.getFirstElement();
        if (element != null) {
            if (!hasCurrentMatch && getDisplayedMatchCount(element) > 0) {
                gotoNextMatch(OpenStrategy.activateOnOpen());
            } else {
                tv.setExpandedState(element, !tv.getExpandedState(element));
            }
        }
        return;
    } else if (!hasCurrentMatch) {
        gotoNextMatch(OpenStrategy.activateOnOpen());
    }
}

From source file:com.google.dart.tools.ui.internal.libraryview.LibraryExplorerActionGroup.java

License:Open Source License

/**
 * This handles double click actions to expand or collapse expandable elements in the Library
 * Explorer.//w ww . j a  va  2  s.  co  m
 */
void handleDoubleClick(DoubleClickEvent event) {
    TreeViewer viewer = part.getTreeViewer();
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    Object element = selection.getFirstElement();
    if (viewer.isExpandable(element)) {

        IAction openAction = navigateActionGroup.getEditAction();
        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));
        }
    }
    // if the Library Explorer ever has projects as top level elements, we may need to revisit this
    //    else if (element instanceof IProject && !((IProject) element).isOpen()) {
    //      OpenProjectAction openProjectAction = fProjectActionGroup.getOpenProjectAction();
    //      if (openProjectAction.isEnabled()) {
    //        openProjectAction.run();
    //      }
    //    }
}

From source file:com.google.dart.tools.ui.internal.text.editor.LightNodeElements.java

License:Open Source License

/**
 * Expands given {@link TreeItem}s if they have not too much children and we have time budget.
 *//*from   w w  w.  j a  va2  s  .com*/
private static long expandTreeItemsTimeBoxed(TreeViewer viewer, TreeItem[] items, int childrenLimit,
        long nanoBudget) {
    if (nanoBudget < 0) {
        return -1;
    }
    for (TreeItem item : items) {
        Object itemData = item.getData();
        // prepare LightNodeElement
        if (!(itemData instanceof LightNodeElement)) {
            continue;
        }
        LightNodeElement element = (LightNodeElement) itemData;
        // has children, not too many?
        int numChildren = element.children.size();
        if (numChildren == 0 || numChildren > childrenLimit) {
            continue;
        }
        // expand single item
        {
            long startNano = System.nanoTime();
            viewer.setExpandedState(itemData, true);
            nanoBudget -= System.nanoTime() - startNano;
        }
        // expand children
        nanoBudget = expandTreeItemsTimeBoxed(viewer, item.getItems(), childrenLimit, nanoBudget);
        if (nanoBudget < 0) {
            break;
        }
    }
    return nanoBudget;
}

From source file:com.google.gapid.widgets.Widgets.java

License:Apache License

public static TreeViewer createTreeViewer(Tree tree) {
    TreeViewer viewer = new VisibilityTrackingTreeViewer(tree);
    viewer.setUseHashlookup(true);/* www  . j  a  v  a 2 s. c om*/
    tree.addListener(SWT.KeyDown, e -> {
        switch (e.keyCode) {
        case SWT.ARROW_LEFT:
        case SWT.ARROW_RIGHT:
            ITreeSelection selection = viewer.getStructuredSelection();
            if (selection.size() == 1) {
                viewer.setExpandedState(selection.getFirstElement(), e.keyCode == SWT.ARROW_RIGHT);
            }
            break;
        }
    });
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection.size() == 1) {
                Object element = selection.getFirstElement();
                viewer.setExpandedState(element, !viewer.getExpandedState(element));
            }
        }
    });
    return viewer;
}

From source file:com.ibm.research.tours.dnd.TourDragNDropAdapter.java

License:Open Source License

@Override
public boolean performDrop(Object data) {
    externalMove = false;//from  ww  w.j  av a2 s  .  c o m

    // Get the current drop target
    Object currentTarget = getCurrentTarget();
    ITour tour = fEditor.getTour();
    int dropIndex = 0;

    // If the drop target is null then default to the last element 
    if (currentTarget == null) {
        ITourElement[] elements = fEditor.getTour().getElements();

        if (elements.length == 0)
            currentTarget = fEditor.getTourTreeAdapter().getTourElements();
        else {
            currentTarget = elements[fEditor.getTour().getElementCount() - 1];
            dropIndex = fEditor.getTour().getElementCount();
        }
    }

    if (!(currentTarget instanceof ITourElement) && !(currentTarget instanceof TourElements))
        return false;

    // We are droping onto an existing tour element or the root tour elements container
    if (currentTarget instanceof ITourElement) {
        if (fDropTarget != null) {
            TreeItem parentItem = fDropTarget.getParentItem();
            int location = getCurrentLocation();

            for (int i = 0; i < parentItem.getItemCount(); i++) {
                if (fDropTarget == parentItem.getItem(i)) {
                    if (location == LOCATION_BEFORE)
                        dropIndex = i;
                    else if (location == LOCATION_ON)
                        dropIndex = i + 1;
                    else if (location == LOCATION_AFTER)
                        dropIndex = i + 1;

                    break;
                }
            }
        }
    }

    // At this point we have the target tour and the drop index
    // Now handle the elements
    ITourElement[] elements = null;

    // This transfer is coming from the 
    if (isPaletteTransfer) {
        IPaletteEntry[] entries = (IPaletteEntry[]) data;
        List<ITourElement> elementList = new ArrayList<ITourElement>();

        for (IPaletteEntry entry : entries) {
            ITourElement[] elementArray = entry.getProvider().createElements();

            if (elementArray != null) {
                for (ITourElement element : elementArray)
                    elementList.add(element);
            }
        }

        elements = elementList.toArray(new ITourElement[0]);
    } else if (isTourElementTransfer)
        elements = (ITourElement[]) data;
    else if (fAcceptingAdapter != null) {
        if (fAcceptingAdapter instanceof ITourElementDropAdapterExtension) {
            elements = ((ITourElementDropAdapterExtension) fAcceptingAdapter).convertDropData(data, tour);
        } else {
            elements = fAcceptingAdapter.convertDropData(data);
        }
    }

    if (elements == null || (elements != null && elements.length <= 0))
        return false;

    if (isTourElementTransfer) {
        if (getCurrentOperation() == DND.DROP_MOVE) {
            // Check if this is an internal drop, if so the elements must be removed more carefully
            // For external drops removal is handled in the drag listener
            if (fEditor.getTour().contins(elements[0])) {
                int earliestDragIndex = fEditor.getTour().getIndex(elements[0]);

                if (earliestDragIndex < dropIndex)
                // Awww here it goes! We need to correct the drop index based on the 
                // removal of dragged elements
                {
                    for (ITourElement e : elements) {
                        int index = fEditor.getTour().getIndex(e);

                        if (index < dropIndex)
                            dropIndex--;
                    }
                }
                fEditor.getTour().removeElements(elements);
            } else
                externalMove = true;
        } else if (getCurrentOperation() == DND.DROP_COPY) {
            Vector<ITourElement> clones = new Vector<ITourElement>();

            // For copies we replace the dragged elements with clones
            for (ITourElement e : elements) {
                clones.add(e.createClone());
            }

            elements = clones.toArray(new ITourElement[0]);
        }
    }

    tour.addElements(dropIndex, elements);

    TreeViewer viewer = (TreeViewer) getViewer();
    viewer.setExpandedState(fEditor.getTourTreeAdapter().getTourElements(), true);
    viewer.setSelection(new StructuredSelection(elements));

    fAcceptingAdapter = null;
    isTourElementTransfer = false;
    isPaletteTransfer = false;
    return true;
}

From source file:com.mindquarry.desktop.preferences.dialog.FilteredPreferenceDialog.java

License:Open Source License

/**
 * Add the listeners to the tree viewer.
 * /*from   ww  w  .j  a  v  a 2  s .c  o  m*/
 * @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);
                showPageFlippingAbortDialog();
                selectCurrentPageAgain();
                clearSelectedNode();
            } 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() {
        @Override
        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 (currentPage != null) {
                currentPage.performHelp();
            }
        }
    });
}