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

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

Introduction

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

Prototype

public void expandToLevel(int level, boolean disableRedraw) 

Source Link

Document

Expands the root of the viewer's tree to the given level.

Usage

From source file:org.eclipse.mylyn.internal.context.ui.BrowseFilteredListener.java

License:Open Source License

/**
 * @param treeViewer//  www .j  av  a2 s .c  o  m
 *            cannot be null
 * @param targetSelection
 *            cannot be null
 */
public void unfilterSelection(TreeViewer treeViewer, IStructuredSelection targetSelection) {
    InterestFilter filter = getInterestFilter(treeViewer);
    Object targetObject = targetSelection.getFirstElement();
    if (filter != null && targetObject != null) {
        filter.addTemporarilyUnfiltered(targetObject);
        if (targetObject instanceof Tree) {
            treeViewer.refresh();
        } else {
            treeViewer.refresh(targetObject, true);
            treeViewer.expandToLevel(targetObject, 1);
        }
    }
}

From source file:org.eclipse.mylyn.internal.context.ui.BrowseFilteredListener.java

License:Open Source License

private void unfilter(final InterestFilter filter, final TreeViewer treeViewer, Object targetObject) {
    if (targetObject != null) {
        filter.addTemporarilyUnfiltered(targetObject);
        if (targetObject instanceof Tree) {
            treeViewer.refresh();/*from   w w w . j ava 2 s  . c  o m*/
        } else {
            treeViewer.refresh(targetObject, true);
            treeViewer.expandToLevel(targetObject, 1);
        }
    }
}

From source file:org.eclipse.mylyn.internal.context.ui.FocusedViewerManager.java

License:Open Source License

private void updateExpansionState(StructuredViewer viewer, Object objectToRefresh) {
    if (viewer instanceof TreeViewer && filteredViewers.contains(viewer) && hasInterestFilter(viewer, true)
            && ContextUiPlugin.getDefault().getPreferenceStore()
                    .getBoolean(IContextUiPreferenceContstants.AUTO_MANAGE_EXPANSION)) {
        TreeViewer treeViewer = (TreeViewer) viewer;

        // HACK to fix bug 278569: [context] errors with Markers view and active Mylyn task
        if ("org.eclipse.ui.internal.views.markers.MarkersTreeViewer".equals(treeViewer.getClass() //$NON-NLS-1$
                .getCanonicalName())) {// w w w  .  ja v  a2s. c  o m
            objectToRefresh = null;
        }

        if (objectToRefresh == null) {
            treeViewer.expandAll();
        } else {
            treeViewer.expandToLevel(objectToRefresh, AbstractTreeViewer.ALL_LEVELS);
        }
    }
}

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 av  a 2  s .  c  o 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.mylyn.internal.tasks.ui.commands.GoToUnreadTaskHandler.java

License:Open Source License

@Override
protected void execute(ExecutionEvent event, TaskListView taskListView, IRepositoryElement item) {
    TreeViewer treeViewer = taskListView.getViewer();
    Tree tree = treeViewer.getTree();//from w ww . j a v a  2s  .  co m

    // need to expand nodes to traverse the tree, disable redraw to avoid flickering
    TreePath treePath = null;
    try {
        tree.setRedraw(false);
        treePath = getUnreadItem(treeViewer, tree);
    } finally {
        tree.setRedraw(true);
    }

    if (treePath != null) {
        treeViewer.expandToLevel(treePath, 0);
        treeViewer.setSelection(new TreeSelection(treePath), true);
    }
}

From source file:org.eclipse.net4j.util.ui.StructuredContentProvider.java

License:Open Source License

/**
 * @since 3.3/*w  w  w. ja  va  2 s.co m*/
 */
public void expandElement(final Object element, final int level) {
    if (element != null) {
        if (getViewer() instanceof TreeViewer) {
            final TreeViewer viewer = (TreeViewer) getViewer();

            try {
                getDisplay().asyncExec(new Runnable() {
                    public void run() {
                        try {
                            viewer.expandToLevel(element, level);
                        } catch (RuntimeException ignore) {
                        }
                    }
                });
            } catch (RuntimeException ignore) {
            }
        }
    }
}

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//from  www  .j a  v  a2s .co 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//  ww  w  .ja  v a2  s.  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);
                }
            }
        }
    });

    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.internal.ccvs.ui.operations.FetchAllMembersOperation.java

License:Open Source License

protected void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
    //expand each folder selected in the tree
    ICVSRemoteResource[] restest = getRemoteResources();
    ICVSRemoteFolder testfolder = (ICVSRemoteFolder) restest[0];
    CVSTag tag = testfolder.getTag();//w  ww  . j  av a2s  .  com
    if (tag == null)
        tag = CVSTag.DEFAULT;
    LogEntryCache cache = new LogEntryCache();

    RemoteLogOperation operation = new RemoteLogOperation(getPart(), getRemoteResources(), tag, null, cache);
    try {
        operation.run(monitor);
        ICVSRemoteResource[] remoteRes = getRemoteResources();
        final ICVSRemoteFolder project = (ICVSRemoteFolder) remoteRes[0];
        //Get the entry paths
        String[] entry = cache.getCachedFilePaths();
        //Strip repo + project info from entries
        RLogTreeBuilder treeBuilder = new RLogTreeBuilder(project.getRepository(), tag);
        for (int i = 0; i < entry.length; i++) {
            ILogEntry[] logEntry = cache.getLogEntries(entry[i]);

            //might not have state if this a branch entry
            if (logEntry[0].getState() != null && logEntry[0].getState().equals(DEAD_STATE))
                continue;

            ICVSRemoteFile remoteFile = logEntry[0].getRemoteFile();
            //if the current folder tag is a branch tag, we need to take the extra step
            //of making sure that the file's revision number has been set appropriately
            if (tag.getType() == CVSTag.BRANCH && remoteFile.getRevision().equals(LogListener.BRANCH_REVISION))
                verifyRevision(tag, logEntry[0], remoteFile);

            IPath logPath = new Path(null, remoteFile.getRepositoryRelativePath());
            if (logPath.segmentCount() > 0)
                logPath = logPath.removeFirstSegments(1);

            treeBuilder.newFile(logPath, remoteFile);
        }

        RemoteFolderTree remoteTree = treeBuilder.getTree();
        IWorkbenchPart part = this.getPart();
        if (part instanceof RepositoriesView) {
            final RepositoriesView repView = (RepositoriesView) part;
            RemoteContentProvider prov = repView.getContentProvider();
            prov.addCachedTree(project, remoteTree);
            final TreeViewer tree = repView.getViewer();

            Utils.asyncExec(new Runnable() {
                public void run() {
                    tree.expandToLevel(project, AbstractTreeViewer.ALL_LEVELS);
                }
            }, repView.getViewer());
        }

    } catch (InvocationTargetException e) {
        throw CVSException.wrapException(e);
    } catch (InterruptedException e) {
        // Ignore;
    } catch (TeamException e) {
        throw CVSException.wrapException(e);
    }

}

From source file:org.eclipse.team.internal.ui.synchronize.AbstractTreeViewerAdvisor.java

License:Open Source License

private static void setSelection(TreeViewer viewer, TreeItem ti, boolean fireOpen, boolean expandOnly) {
    if (ti != null) {
        Object data = ti.getData();
        if (data != null) {
            // Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
            ISelection selection = new StructuredSelection(data);
            if (expandOnly) {
                viewer.expandToLevel(data, 0);
            } else {
                viewer.setSelection(selection, true);
                ISelection currentSelection = viewer.getSelection();
                if (fireOpen && currentSelection != null && selection.equals(currentSelection)) {
                    if (viewer instanceof ITreeViewerAccessor) {
                        ((ITreeViewerAccessor) viewer).openSelection();
                    }/*w  w w  .j  a v a 2 s .c o m*/
                }
            }
        }
    }
}