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

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

Introduction

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

Prototype

public void collapseToLevel(Object elementOrTreePath, int level) 

Source Link

Document

Collapses the subtree rooted at the given element or tree path to the given level.

Usage

From source file:org.apache.directory.studio.ldifeditor.editor.LdifOutlinePage.java

License:Apache License

/**
 * {@inheritDoc}/*  w ww .j ava  2 s .co  m*/
 */
public void createControl(Composite parent) {
    super.createControl(parent);

    final TreeViewer treeViewer = getTreeViewer();
    treeViewer.setLabelProvider(new LdifLabelProvider(ldifEditor, isLinkedToLdapBrowser));
    treeViewer.setContentProvider(new LdifContentProvider());

    if (isLinkedToLdapBrowser) {
        treeViewer.setAutoExpandLevel(2);
    }

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (!event.getSelection().isEmpty() && event.getSelection() instanceof IStructuredSelection) {
                Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();

                if (element instanceof LdifRecord) {
                    LdifRecord ldifRecord = (LdifRecord) element;
                    ldifEditor.selectAndReveal(ldifRecord.getDnLine().getOffset(),
                            ldifRecord.getDnLine().getLength());
                } else if (element instanceof List) {
                    List<?> list = (List<?>) element;

                    if (!list.isEmpty() && list.get(0) instanceof LdifAttrValLine) {
                        LdifAttrValLine line = (LdifAttrValLine) list.get(0);
                        ldifEditor.selectAndReveal(line.getOffset(),
                                line.getRawAttributeDescription().length());
                    }
                } else if (element instanceof LdifAttrValLine) {
                    LdifAttrValLine line = (LdifAttrValLine) element;
                    ldifEditor.selectAndReveal(line.getOffset() + line.getRawAttributeDescription().length()
                            + line.getRawValueType().length(), line.getRawValue().length());
                } else if (element instanceof LdifModSpec) {
                    LdifModSpec modSpec = (LdifModSpec) element;
                    ldifEditor.selectAndReveal(modSpec.getOffset(), modSpec.getModSpecType().getLength());
                }
            }
        }
    });

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                Object obj = ((IStructuredSelection) event.getSelection()).getFirstElement();
                if (treeViewer.getExpandedState(obj))
                    treeViewer.collapseToLevel(obj, 1);
                else if (((ITreeContentProvider) treeViewer.getContentProvider()).hasChildren(obj))
                    treeViewer.expandToLevel(obj, 1);
            }
        }
    });

    this.refresh();
}

From source file:org.caesarj.ui.editor.CaesarJContentOutlinePage.java

License:Open Source License

/**
 * Updates the outline page.//from   w  w  w.j  a v  a2 s  .co m
 */
public void update(ProjectProperties properties) {

    IProgramElement input = getInput(properties.getAsmManager().getHierarchy().getRoot());

    TreeViewer viewer = getTreeViewer();
    if (viewer != null && input != null) {
        Control control = viewer.getControl();
        if (control != null && !control.isDisposed()) {
            control.setRedraw(false);
            viewer.setInput(input);
            viewer.expandAll();
            if (input instanceof CaesarProgramElement) {
                // find and collapses the import node:
                Iterator it = ((CaesarProgramElement) input).getChildren().iterator();
                while (it.hasNext()) {
                    Object next = it.next();
                    if (next instanceof CaesarProgramElement) {
                        if (((CaesarProgramElement) next)
                                .getCaesarKind() == CaesarProgramElement.Kind.IMPORTS) {
                            viewer.collapseToLevel(next, AbstractTreeViewer.ALL_LEVELS);
                        }
                    }
                }
            }

            control.setRedraw(true);
        }
    }

}

From source file:org.eclipse.babel.editor.tree.internal.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes double-click support, expanding/collapsing nodes.
 *
 * @param treeViewer//from   w w w  . ja  v a2  s . co m
 *            tree viewer
 */
private void contributeDoubleClick(final TreeViewer treeViewer) {
    treeViewer.getTree().addMouseListener(new MouseAdapter() {
        public void mouseDoubleClick(MouseEvent event) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            Object element = selection.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                if (treeViewer.getExpandedState(element)) {
                    treeViewer.collapseToLevel(element, 1);
                } else {
                    treeViewer.expandToLevel(element, 1);
                }
            }
        }
    });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes double-click support, expanding/collapsing nodes.
 * @param treeViewer tree viewer//from   w  w w. j  a v a  2  s.c  om
 */
private void contributeDoubleClick(final TreeViewer treeViewer) {
    treeViewer.getTree().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(final MouseEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            final Object element = selection.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                if (treeViewer.getExpandedState(element)) {
                    treeViewer.collapseToLevel(element, 1);
                } else {
                    treeViewer.expandToLevel(element, 1);
                }
            }
        }
    });
}

From source file:org.eclipse.birt.report.designer.ui.widget.TreeViewerBackup.java

License:Open Source License

public void updateCollapsedStatus(TreeViewer treeViewer, Object data) {
    if (!Constants.OS_MACOSX.equalsIgnoreCase(Platform.getOS())) {//collapse all sub nodes if not in MacOS
        treeViewer.collapseToLevel(data, TreeViewer.ALL_LEVELS);
    }//from  w w w  .  ja  v a2s  .  c o m
    updateStatus(treeViewer);
}

From source file:org.eclipse.mylyn.internal.gerrit.ui.egit.GerritRepositorySearchPage.java

License:Open Source License

private void doubleClick(TreeViewer tv, ITreeSelection selection) {
    clearError();/*  w  w  w . j a  va 2 s  . co  m*/
    GerritRepositorySearchPage.this.selectionChanged(tv, selection);
    if (selection.size() == 1 && selection.getFirstElement() instanceof TaskRepository) {
        Object element = selection.getFirstElement();
        if (tv.getExpandedState(element)) {
            tv.collapseToLevel(element, 1);
        } else {
            tv.expandToLevel(element, 1);
        }
    }
    if (isPageComplete()) {
        getContainer().showPage(getNextPage());
    }
}

From source file:org.eclipse.sapphire.ui.renderers.swt.EclipseWorkspacePathPropertyEditorRenderer.java

License:Open Source License

@Override
protected void createContents(final Composite parent) {
    final PropertyEditorPart part = getPart();
    final Value<?> value = (Value<?>) part.property();

    final Text textField = (Text) super.createContents(parent, true);

    final Composite drillDownParent = createMainComposite(parent, new CreateMainCompositeDelegate(part) {
        @Override/*w w  w .j  ava  2s .c o  m*/
        public boolean getShowLabel() {
            return false;
        }
    });

    drillDownParent.setLayout(glayout(1, 9, 0, 0, 0));

    final DrillDownComposite drillDown = new DrillDownComposite(drillDownParent, SWT.BORDER);
    drillDown.setLayoutData(gdfill());

    final TreeViewer treeViewer = new TreeViewer(drillDown, SWT.NONE);
    final Tree tree = treeViewer.getTree();
    drillDown.setChildTree(treeViewer);

    treeViewer.setContentProvider(new WorkbenchContentProvider());
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setSorter(new ViewerSorter());

    final ValidFileSystemResourceType validFileSystemResourceTypeAnnotation = value.definition()
            .getAnnotation(ValidFileSystemResourceType.class);

    if (validFileSystemResourceTypeAnnotation != null) {
        if (validFileSystemResourceTypeAnnotation.value() == FileSystemResourceType.FOLDER) {
            treeViewer.addFilter(new ContainersOnlyViewerFilter());
        }

        final FileExtensionsService fileExtensionsService = value.service(FileExtensionsService.class);

        if (fileExtensionsService != null) {
            final ExtensionBasedViewerFilter filter = new ExtensionBasedViewerFilter(
                    fileExtensionsService.extensions());

            treeViewer.addFilter(filter);

            final Listener listener = new Listener() {
                @Override
                public void handle(final Event event) {
                    filter.change(fileExtensionsService.extensions());
                    treeViewer.refresh();
                }
            };

            fileExtensionsService.attach(listener);

            tree.addDisposeListener(new DisposeListener() {
                public void widgetDisposed(final DisposeEvent event) {
                    fileExtensionsService.detach(listener);
                }
            });
        }
    }

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(final DoubleClickEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();

            if (selection != null) {
                final Object item = selection.getFirstElement();

                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    treeViewer.setInput(ResourcesPlugin.getWorkspace());

    this.decorator.addEditorControl(drillDown);
    this.decorator.addEditorControl(tree);

    final String val = value.text();

    if (val != null) {
        final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

        IPath path = new Path(val);
        IResource resource = root.findMember(val);

        while (resource == null) {
            path = path.removeLastSegments(1);
            resource = root.findMember(path);
        }

        if (resource instanceof IFile
                && validFileSystemResourceTypeAnnotation.value() == FileSystemResourceType.FOLDER) {
            resource = resource.getParent();
        }

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

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            String path = MiscUtil.EMPTY_STRING;

            if (selection != null && !selection.isEmpty()) {
                final IResource resource = (IResource) selection.getFirstElement();
                path = resource.getFullPath().toPortableString();

                if (path.startsWith("/") && path.length() > 1) {
                    path = path.substring(1);
                }
            }

            textField.setText(path);
        }
    });

    textField.setData(DATA_BINDING, this.binding);

    addControl(tree);
}

From source file:org.eclipse.sapphire.workspace.ui.WorkspaceRelativePathPropertyEditorPresentation.java

License:Open Source License

@Override

protected void createContents(final Composite parent) {
    final PropertyEditorPart part = part();
    final Value<?> value = (Value<?>) part.property();
    final Element element = value.element();

    final Text textField = (Text) super.createContents(parent, true);

    final Composite drillDownParent = createMainComposite(parent, new CreateMainCompositeDelegate(part) {
        @Override//from   w w  w . j  av a2  s  . c  om
        public boolean getShowLabel() {
            return false;
        }
    });

    drillDownParent.setLayout(glayout(1, 9, 0, 0, 0));

    final DrillDownComposite drillDown = new DrillDownComposite(drillDownParent, SWT.BORDER);
    drillDown.setLayoutData(gdfill());

    final TreeViewer treeViewer = new TreeViewer(drillDown, SWT.NONE);
    final Tree tree = treeViewer.getTree();
    drillDown.setChildTree(treeViewer);

    treeViewer.setContentProvider(new WorkbenchContentProvider());
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setSorter(new ViewerSorter());

    final ValidFileSystemResourceType validFileSystemResourceTypeAnnotation = value.definition()
            .getAnnotation(ValidFileSystemResourceType.class);

    if (validFileSystemResourceTypeAnnotation != null) {
        if (validFileSystemResourceTypeAnnotation.value() == FileSystemResourceType.FOLDER) {
            treeViewer.addFilter(new ContainersOnlyViewerFilter());
        }

        final FileExtensionsService fileExtensionsService = value.service(FileExtensionsService.class);

        if (fileExtensionsService != null) {
            final ExtensionBasedViewerFilter filter = new ExtensionBasedViewerFilter(
                    fileExtensionsService.extensions());

            treeViewer.addFilter(filter);

            final Listener listener = new Listener() {
                @Override
                public void handle(final Event event) {
                    filter.change(fileExtensionsService.extensions());
                    treeViewer.refresh();
                }
            };

            fileExtensionsService.attach(listener);

            tree.addDisposeListener(new DisposeListener() {
                public void widgetDisposed(final DisposeEvent event) {
                    fileExtensionsService.detach(listener);
                }
            });
        }
    }

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(final DoubleClickEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();

            if (selection != null) {
                final Object item = selection.getFirstElement();

                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    final IContainer root;

    if (element instanceof CreateWorkspaceFileOp) {
        root = ((CreateWorkspaceFileOp) element).getRoot().target();
    } else {
        root = ResourcesPlugin.getWorkspace().getRoot();
    }

    treeViewer.setInput(root);

    this.decorator.addEditorControl(drillDown);
    this.decorator.addEditorControl(tree);

    final String val = value.text();

    if (val != null) {
        IPath path = new Path(val);
        IResource resource = root.findMember(val);

        while (resource == null) {
            path = path.removeLastSegments(1);
            resource = root.findMember(path);
        }

        if (resource instanceof IFile
                && validFileSystemResourceTypeAnnotation.value() == FileSystemResourceType.FOLDER) {
            resource = resource.getParent();
        }

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

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            final IResource resource;
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();

            if (selection == null || selection.isEmpty()) {
                resource = (IResource) treeViewer.getInput();
            } else {
                resource = (IResource) selection.getFirstElement();
            }

            String path = resource.getFullPath().makeRelativeTo(root.getFullPath()).toString();

            if (path.startsWith("/") && path.length() > 1) {
                path = path.substring(1);
            }

            textField.setText(path);
        }
    });

    textField.setData(DATA_BINDING, this.binding);

    addControl(tree);
}

From source file:org.eclipse.team.svn.ui.history.HistoryActionManager.java

License:Open Source License

protected void handleDoubleClick(TreeViewer viewer, ILogNode item, boolean doubleClick) {
    int type = item.getType();
    if (type == ILogNode.TYPE_CATEGORY) {
        if (viewer.getExpandedState(item)) {
            viewer.collapseToLevel(item, TreeViewer.ALL_LEVELS);
        } else {/*from   w ww.jav a  2s.  c  o m*/
            viewer.expandToLevel(item, TreeViewer.ALL_LEVELS);
        }
        return;
    }
    boolean isCompareAllowed = CoreExtensionsManager.instance().getSVNConnectorFactory()
            .getSVNAPIVersion() >= ISVNConnectorFactory.APICompatibility.SVNAPI_1_5_x
            || this.view.getRepositoryResource() instanceof IRepositoryFile;
    if ((this.view.getOptions() & ISVNHistoryView.COMPARE_MODE) != 0 && doubleClick && isCompareAllowed) {
        if (type == ILogNode.TYPE_SVN && !(item.getParent() instanceof SVNLogNode)) {
            this.compareWithCurrent((SVNLogEntry) item.getEntity());
        } else if (type == ILogNode.TYPE_LOCAL) {
            this.runCompareForLocal(new Object[] { item });
        }
    } else if (type == ILogNode.TYPE_LOCAL) {
        try {
            SVNLocalFileRevision selected = (SVNLocalFileRevision) item.getEntity();
            Utils.openEditor(UIMonitorUtility.getActivePage(), selected, new NullProgressMonitor());
        } catch (CoreException ex) {
            UILoggedOperation.reportError("Open Editor", ex);
        }
    } else if (!(this.view.getRepositoryResource() instanceof IRepositoryContainer) && type == ILogNode.TYPE_SVN
            && !(item.getParent() instanceof SVNLogNode)) {
        UIMonitorUtility.doTaskScheduledActive(new OpenRemoteFileOperation(
                new IRepositoryFile[] {
                        (IRepositoryFile) this.getResourceForSelectedRevision((SVNLogEntry) item.getEntity()) },
                OpenRemoteFileOperation.OPEN_DEFAULT));
    }
}

From source file:org.jkiss.dbeaver.ui.navigator.database.NavigatorViewBase.java

License:Open Source License

protected DatabaseNavigatorTree createNavigatorTree(Composite parent, DBNNode rootNode) {
    // Create tree
    DatabaseNavigatorTree navigatorTree = new DatabaseNavigatorTree(parent, rootNode, getTreeStyle());

    navigatorTree.getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
        @Override//from w  w w  .  ja v a  2  s.c o  m
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection structSel = (IStructuredSelection) event.getSelection();
            if (!structSel.isEmpty()) {
                lastSelection = structSel.getFirstElement();
                if (lastSelection instanceof DBNNode) {
                    String desc = ((DBNNode) lastSelection).getNodeDescription();
                    if (CommonUtils.isEmpty(desc)) {
                        desc = ((DBNNode) lastSelection).getNodeName();
                    }
                    getViewSite().getActionBars().getStatusLineManager().setMessage(desc);
                }
            } else {
                lastSelection = null;
            }
        }
    });
    navigatorTree.getViewer().addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = tree.getViewer();
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            if (selection.size() == 1) {
                DBNNode node = (DBNNode) selection.getFirstElement();
                if (node instanceof DBNLocalFolder
                        || (node instanceof DBNResource
                                && ((DBNResource) node).getResource() instanceof IFolder)
                        || (node instanceof DBNDataSource
                                && DoubleClickBehavior.valueOf(DBeaverCore.getGlobalPreferenceStore().getString(
                                        DBeaverPreferences.NAVIGATOR_CONNECTION_DOUBLE_CLICK)) == DoubleClickBehavior.EXPAND)) {
                    if (Boolean.TRUE.equals(viewer.getExpandedState(node))) {
                        viewer.collapseToLevel(node, 1);
                    } else {
                        viewer.expandToLevel(node, 1);
                    }

                } else if (node instanceof DBNResource) {
                    NavigatorHandlerObjectOpen.openResource(((DBNResource) node).getResource(),
                            getSite().getWorkbenchWindow());
                } else if (node instanceof DBNDataSource) {
                    DBPDataSourceContainer dataSource = ((DBNDataSource) node).getObject();
                    NavigatorViewBase.DoubleClickBehavior doubleClickBehavior = NavigatorViewBase.DoubleClickBehavior
                            .valueOf(DBeaverCore.getGlobalPreferenceStore()
                                    .getString(DBeaverPreferences.NAVIGATOR_CONNECTION_DOUBLE_CLICK));
                    switch (doubleClickBehavior) {
                    case EDIT:
                        NavigatorHandlerObjectOpen.openEntityEditor((DBNDataSource) node, null,
                                DBeaverUI.getActiveWorkbenchWindow());
                        break;
                    case CONNECT:
                        if (dataSource.isConnected()) {
                            DataSourceHandler.disconnectDataSource(dataSource, null);
                        } else {
                            DataSourceHandler.connectToDataSource(null, dataSource, null);
                        }
                        break;
                    case SQL_EDITOR:
                        OpenSQLEditorHandler.openRecentScript(getSite().getWorkbenchWindow(), dataSource, null);
                        break;
                    }
                } else if (node instanceof DBNDatabaseNode && node.allowsOpen()) {
                    NavigatorHandlerObjectOpen.openEntityEditor((DBNDatabaseNode) node, null,
                            getSite().getWorkbenchWindow());
                }
            }
        }

    });

    // Hook context menu
    NavigatorUtils.addContextMenu(this.getSite(), navigatorTree.getViewer(),
            navigatorTree.getViewer().getControl());
    // Add drag and drop support
    NavigatorUtils.addDragAndDropSupport(navigatorTree.getViewer());

    return navigatorTree;
}