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

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

Introduction

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

Prototype

public boolean getExpandedState(Object elementOrTreePath) 

Source Link

Document

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

Usage

From source file:org.eclipse.dd.dsf.ui.viewmodel.update.MultiLevelUpdateHandler.java

License:Open Source License

protected void processNext() {
    while (true) {
        if (fIndex > fHighIndex) {
            fStack.clear();/* w  ww  .  ja v a  2s.  c o m*/
        }
        if (fStack.isEmpty()) {
            fRequestMonitor.setDoneCount(fPendingUpdates);
            super.done();
            return;
        }
        UpdateLevel current = fStack.peek();
        assert !current.isDone();

        TreePath path = current.fPath;
        Object data = current.nextChild();
        if (current.isDone()) {
            fStack.pop();
        }
        if (data == null) {
            // consider null children - http://bugs.eclipse.org/250309
            ++fIndex;
            continue;
        }
        path = path.createChildPath(data);

        if (fIndex >= fLowIndex && fIndex <= fHighIndex) {
            if (data instanceof IAdaptable) {
                IElementLabelProvider labelProvider = (IElementLabelProvider) ((IAdaptable) data)
                        .getAdapter(IElementLabelProvider.class);
                if (labelProvider != null) {
                    ++fPendingUpdates;
                    if (DEBUG)
                        System.out.println("[MultiLevelUpdateHandler] labelUpdate " + data); //$NON-NLS-1$
                    labelProvider
                            .update(new ILabelUpdate[] { new DummyLabelUpdate(data, path, fRequestMonitor) });
                }
            }
        }
        fIndex++;
        if (fViewer instanceof TreeViewer) {
            TreeViewer treeViewer = (TreeViewer) fViewer;
            if (treeViewer.getExpandedState(data)) {
                fCurrentPath = path;
                if (DEBUG)
                    System.out.println("[MultiLevelUpdateHandler] childrenUpdate " + data); //$NON-NLS-1$
                fContentProvider.update(new IChildrenUpdate[] {
                        new VMChildrenUpdate(path, fViewerInput, fPresentationContext, -1, -1, this) });
                return;
            } else if (fIndex >= fLowIndex) {
                // update also the hasChildren flag
                ++fPendingUpdates;
                if (DEBUG)
                    System.out.println("[MultiLevelUpdateHandler] hasChildUpdate " + data); //$NON-NLS-1$
                fContentProvider.update(new IHasChildrenUpdate[] { new VMHasChildrenUpdate(path, fViewerInput,
                        fPresentationContext, new DataRequestMonitor<Boolean>(fExecutor, fRequestMonitor)) });
            }
        }
    }
}

From source file:org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerActionGroup.java

License:Open Source License

protected 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 ISourceModule)
                return;
            if (element instanceof IOpenable || element instanceof IContainer
                    || element instanceof IWorkingSet) {
                fZoomInAction.run();//from  w  w  w.j  ava2 s .c  om
            }
        } 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.eclipse.dltk.mod.internal.ui.scriptview.ScriptExplorerActionGroup.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 ISourceModule)
                return;
            if (element instanceof IOpenable || element instanceof IContainer
                    || element instanceof IWorkingSet) {
                fZoomInAction.run();//from www .j  a  va2 s . c  o  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.dltk.mod.ui.browsing.MembersView.java

License:Open Source License

protected void hookViewerListeners() {
    super.hookViewerListeners();
    getViewer().addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) getViewer();
            Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (viewer.isExpandable(element))
                viewer.setExpandedState(element, !viewer.getExpandedState(element));
        }//  www  . java  2  s. com
    });
}

From source file:org.eclipse.dltk.mod.ui.browsing.ProjectsView.java

License:Open Source License

/**
 * Adds additional listeners to this view.
 *//*from  w ww .j a  va 2 s .c o  m*/
protected void hookViewerListeners() {
    super.hookViewerListeners();
    getViewer().addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) getViewer();
            Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (viewer.isExpandable(element))
                viewer.setExpandedState(element, !viewer.getExpandedState(element));
        }
    });
}

From source file:org.eclipse.e4.demio.views.nav.ResourceNavigator.java

License:Open Source License

/**
 * Handles a double-click event from the viewer.
 * Expands or collapses a folder when double-clicked.
 * //www .  ja v  a2s .  c o  m
 * @param event the double-click event
 * @since 2.0
 */
protected void handleDoubleClick(DoubleClickEvent event) {
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    Object element = selection.getFirstElement();

    // 1GBZIA0: ITPUI:WIN2000 - Double-clicking in navigator should expand/collapse containers
    TreeViewer viewer = getTreeViewer();
    if (viewer.isExpandable(element)) {
        viewer.setExpandedState(element, !viewer.getExpandedState(element));
    } else if (selection.size() == 1 && (element instanceof IResource)
            && ((IResource) element).getType() == IResource.PROJECT) {
        OpenResourceAction ora = new OpenResourceAction(getSite());
        ora.selectionChanged((IStructuredSelection) viewer.getSelection());
        if (ora.isEnabled()) {
            ora.run();
        }
    }

}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor.java

License:Open Source License

private TreeViewer createTreeViewerArea(Composite parent) {

    final Composite treeArea = new Composite(parent, SWT.BORDER);

    treeArea.setLayout(new FillLayout());
    treeArea.setData(CSS_CLASS_KEY, "formContainer"); //$NON-NLS-1$
    treeArea.setBackgroundMode(SWT.INHERIT_DEFAULT);

    TreeViewer tempViewer = null;//from   w w w  .  ja va 2 s .co  m
    String property = System.getProperty(ORG_ECLIPSE_E4_TOOLS_MODELEDITOR_FILTEREDTREE_ENABLED_XMITAB_DISABLED);
    if (property != null || preferences.getBoolean("tab-form-search-show", false)) { //$NON-NLS-1$
        FilteredTree viewParent = new FilteredTree(treeArea,
                SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter(), true);
        tempViewer = viewParent.getViewer();
    } else {
        tempViewer = new TreeViewerEx(treeArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL,
                emfDocumentProvider, modelProvider);
    }
    final TreeViewer viewer = tempViewer;

    viewer.setLabelProvider(new ComponentLabelProvider(this, messages));
    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            new ObservableFactoryImpl(), new TreeStructureAdvisor() {
            });
    viewer.setContentProvider(contentProvider);

    final WritableSet clearedSet = new WritableSet();

    contentProvider.getKnownElements().addSetChangeListener(new ISetChangeListener() {

        @Override
        public void handleSetChange(SetChangeEvent event) {
            for (Object o : event.diff.getAdditions()) {
                if (o instanceof EObject) {
                    clearedSet.add(o);
                }
            }

            for (Object o : event.diff.getRemovals()) {
                if (o instanceof EObject) {
                    clearedSet.remove(o);
                }
            }
        }
    });

    for (FeaturePath p : labelFeaturePaths) {
        IObservableMap map = EMFProperties.value(p).observeDetail(clearedSet);
        map.addMapChangeListener(new IMapChangeListener() {

            @Override
            public void handleMapChange(MapChangeEvent event) {
                viewer.update(event.diff.getChangedKeys().toArray(), null);
            }
        });
    }

    viewer.setInput(modelProvider.getRoot());
    viewer.setAutoExpandLevel(2);
    viewer.expandToLevel(viewer.getAutoExpandLevel());
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) event.getViewer();
            IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection();
            Object selectedNode = thisSelection.getFirstElement();
            if (mod1Down) {
                if (viewer.getExpandedState(selectedNode))
                    viewer.setExpandedState(selectedNode, false);
                else
                    viewer.expandToLevel(selectedNode, AbstractTreeViewer.ALL_LEVELS);
            } else {
                viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode));
            }

        }
    });

    // Effect of filtered tree implementation (bug 391086)
    viewer.getTree().addTreeListener(new TreeAdapter() {
        @Override
        public void treeCollapsed(TreeEvent e) {
            viewer.expandToLevel(viewer.getAutoExpandLevel());
        }
    });

    int ops = DND.DROP_MOVE;
    viewer.addDragSupport(ops, new Transfer[] { MemoryTransfer.getInstance() }, new DragListener(viewer));
    viewer.addDropSupport(ops, new Transfer[] { MemoryTransfer.getInstance() },
            new DropListener(viewer, modelProvider.getEditingDomain()));

    return viewer;
}

From source file:org.eclipse.eatop.examples.graphicaleditor.depd.features.views.SafetyGoalTitleAreaDialogview.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);

    // YOUR LINE HERE!
    Label line = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
    line.setLayoutData(new GridData(SWT.FILL, SWT.END, true, true));

    final TreeViewer viewer;
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    List<SafetyGoal> sgs = new ArrayList<SafetyGoal>();

    sgs.add(saftyob);//from  ww w.  j  ava2  s.c o m

    // Provide the input to the ContentProvider
    viewer.setContentProvider(new RequirementsContentProvider(saftyob));
    viewer.setLabelProvider(new RequirementsLabelProvider(saftyob));
    viewer.setSorter(new RequirementSorter());
    // Expand the tree
    viewer.setAutoExpandLevel(3);
    viewer.setInput(sgs.toArray());

    viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));//
    // viewer.getTree().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    // Add a doubleclicklistenerObject[] elements;Object[]
    viewer.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));
        }

    });

    viewer.getTree().addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(final KeyEvent e) {
            if (e.keyCode == SWT.DEL) {
                final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                if (selection.getFirstElement() instanceof Requirement) {
                    Requirement o = (Requirement) selection.getFirstElement();
                    // TODO Delete the selected element from the model
                }

            }
        }
    });

    return composite;
}

From source file:org.eclipse.ecf.ui.wizards.ConfigurationWizardSelectionPage.java

License:Open Source License

protected void treeDoubleClicked(DoubleClickEvent event) {
    ISelection selection = event.getViewer().getSelection();
    IStructuredSelection ss = (IStructuredSelection) selection;
    listSelectionChanged(ss);//from www . j a  va2  s. co m

    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());
        }
    }
    getContainer().showPage(getNextPage());
}

From source file:org.eclipse.egit.ui.internal.dialogs.CompareTreeView.java

License:Open Source License

private void reactOnOpen(OpenEvent event) {
    Object selected = ((IStructuredSelection) event.getSelection()).getFirstElement();
    ITypedElement left;// w w w  .j  a  va  2s  .co m
    ITypedElement right;
    if (selected instanceof IContainer) {
        // open/close folder
        TreeViewer tv = (TreeViewer) event.getViewer();
        tv.setExpandedState(selected, !tv.getExpandedState(selected));
        return;
    } else if (selected instanceof IFile) {
        final IFile res = (IFile) selected;
        LocalFileRevision revision = new LocalFileRevision(res);
        left = new FileEditableRevision(revision, res, PlatformUI.getWorkbench().getProgressService());
        GitFileRevision rightRevision = compareVersionMap
                .get(new Path(repositoryMapping.getRepoRelativePath(res)));
        if (rightRevision == null) {
            right = new GitCompareFileRevisionEditorInput.EmptyTypedElement(NLS.bind(
                    UIText.CompareTreeView_ItemNotFoundInVersionMessage, res.getName(), getCompareVersion()));
        } else {
            String encoding = CompareCoreUtils.getResourceEncoding(res);
            right = new FileRevisionTypedElement(rightRevision, encoding);
        }
    } else if (selected instanceof GitFileRevision) {
        GitFileRevision rightRevision = (GitFileRevision) selected;
        left = new GitCompareFileRevisionEditorInput.EmptyTypedElement(
                NLS.bind(UIText.CompareTreeView_ItemNotFoundInVersionMessage, rightRevision.getName(),
                        getBaseVersion()));
        right = new FileRevisionTypedElement(rightRevision, null);
    } else if (selected instanceof PathNode) {
        PathNode node = (PathNode) selected;
        String encoding = CompareCoreUtils.getResourceEncoding(getRepository(), node.getRepoRelativePath());
        switch (node.type) {
        case FILE_BOTH_SIDES_DIFFER:
            // fall through
        case FILE_BOTH_SIDES_SAME: {
            // open a compare editor with both sides filled
            GitFileRevision rightRevision = compareVersionMap.get(node.path);
            right = new FileRevisionTypedElement(rightRevision, encoding);
            GitFileRevision leftRevision = baseVersionMap.get(node.path);
            left = new FileRevisionTypedElement(leftRevision, encoding);
            break;
        }
        case FILE_DELETED: {
            // open compare editor with left side empty
            GitFileRevision rightRevision = compareVersionMap.get(node.path);
            right = new FileRevisionTypedElement(rightRevision, encoding);
            left = new GitCompareFileRevisionEditorInput.EmptyTypedElement(
                    NLS.bind(UIText.CompareTreeView_ItemNotFoundInVersionMessage, rightRevision.getName(),
                            getBaseVersion()));
            break;
        }
        case FILE_ADDED: {
            // open compare editor with right side empty
            GitFileRevision leftRevision = baseVersionMap.get(node.path);
            left = new FileRevisionTypedElement(leftRevision, encoding);
            right = new GitCompareFileRevisionEditorInput.EmptyTypedElement(
                    NLS.bind(UIText.CompareTreeView_ItemNotFoundInVersionMessage, leftRevision.getName(),
                            getCompareVersion()));
            break;
        }
        case FOLDER:
            // open/close folder
            TreeViewer tv = (TreeViewer) event.getViewer();
            tv.setExpandedState(selected, !tv.getExpandedState(selected));
            return;
        default:
            return;
        }

    } else if (selected instanceof PathNodeAdapter) {
        // deleted in workspace
        PathNodeAdapter node = (PathNodeAdapter) selected;
        GitFileRevision rightRevision = compareVersionMap.get(node.pathNode.path);
        String encoding = CompareCoreUtils.getResourceEncoding(getRepository(),
                node.pathNode.getRepoRelativePath());
        right = new FileRevisionTypedElement(rightRevision, encoding);
        left = new GitCompareFileRevisionEditorInput.EmptyTypedElement(
                NLS.bind(UIText.CompareTreeView_ItemNotFoundInVersionMessage, node.pathNode.path.lastSegment(),
                        getBaseVersion()));
    } else
        return;

    GitCompareFileRevisionEditorInput compareInput = new GitCompareFileRevisionEditorInput(left, right,
            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage());
    CompareUtils.openInCompare(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
            compareInput);
}