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

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

Introduction

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

Prototype

public void setExpandedElements(Object... elements) 

Source Link

Document

Sets which nodes are expanded in this viewer's tree.

Usage

From source file:org.entirej.ext.oracle.db.DBTypeSelectionPage.java

License:Apache License

public void refresh(Object input) {
    TreeViewer treeview = dbfilteredTree != null ? dbfilteredTree.getViewer() : null;
    if (treeview != null) {
        Object[] expanded = treeview.getExpandedElements();

        treeview.getControl().setRedraw(false);
        treeview.setInput(input);//  www .j  ava2 s.co m
        treeview.setExpandedElements(expanded);
        treeview.getControl().setRedraw(true);
        treeview.refresh();
    }

}

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

License:Apache License

@Override
public void refresh() {
    TreeViewer treeview = filteredTree.getViewer();
    Object[] expanded = treeview.getExpandedElements();

    treeview.getControl().setRedraw(false);
    treeview.setInput(getTreeInput());/*from   w  ww .  j  a  va2s.c  o  m*/
    treeview.setExpandedElements(expanded);
    treeview.getControl().setRedraw(true);
    treeview.refresh();
    getManagedForm().fireSelectionChanged(AbstractNodeTreeSection.this, treeview.getSelection());
    showNodeDetails();
    super.refresh();
}

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

License:Apache License

public AbstractNode<?> findNode(Object source, boolean force) {
    AbstractNode<?> node = findNode(source);
    if (node != null || !force) {
        return node;
    }//from   w w w.  jav a2  s. c  om
    if (source == null)
        return null;

    TreeViewer treeview = filteredTree.getViewer();
    Object[] expanded = treeview.getExpandedElements();

    treeview.getControl().setRedraw(false);
    try {
        filteredTree.getViewer().expandAll();
        TreeItem[] items = filteredTree.getViewer().getTree().getItems();
        for (TreeItem treeItem : items) {
            AbstractNode<?> findNode = findNode(source, treeItem);
            if (findNode != null)
                return findNode;
        }
    } finally {
        treeview.collapseAll();
        treeview.setExpandedElements(expanded);
        treeview.getControl().setRedraw(true);
        treeview.refresh();

    }
    return null;
}

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 av  a  2  s.c  o  m

    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.kalypso.model.wspm.pdb.ui.internal.wspm.PdbWspmProject.java

License:Open Source License

public void updateViews(final Object[] toSelect) {
    /* Bring gmv view to top and select changed features */
    final WspmGmvViewPart gmvView = findView(WspmGmvViewPart.ID);
    if (gmvView != null) {
        try {/*from   w w  w  . j  ava 2  s .  co m*/
            final IWorkbenchPage page = m_window.getActivePage();
            page.showView(WspmGmvViewPart.ID, null, IWorkbenchPage.VIEW_ACTIVATE);
            if (toSelect != null) {
                final TreeViewer treeViewer = gmvView.getTreeView().getTreeViewer();
                treeViewer.setSelection(new StructuredSelection(toSelect));
                treeViewer.setExpandedElements(toSelect);
            }
        } catch (final PartInitException e) {
            e.printStackTrace();
        }
    }

    /* Jump to freshly downloaded items */
    final WspmMapViewPart mapView = findView(WspmMapViewPart.ID);
    if (mapView == null)
        return;

    final GisTemplateMapModell mapModell = mapView.getMapModell();
    final FindReachThemesVisitor findReachesVisitor = new FindReachThemesVisitor();
    mapModell.accept(findReachesVisitor, IKalypsoThemeVisitor.DEPTH_INFINITE);
    final IKalypsoFeatureTheme[] themes = findReachesVisitor.getThemes(toSelect);
    final GM_Envelope fullExtent = MapModellHelper.calculateExtent(themes,
            new ThemeUsedForMaxExtentPredicate());
    final ChangeExtentCommand command = new ChangeExtentCommand(mapView.getMapPanel(), fullExtent);
    mapView.postCommand(command, null);
}

From source file:org.kalypso.ui.editor.gmleditor.part.GMLContentProvider.java

License:Open Source License

protected void handleModelChanged(final ModellEvent modellEvent) {
    if (!m_handleModelEvents)
        return;/*from   www.j  a v  a2s  .c  o  m*/

    final TreeViewer treeViewer = m_viewer;
    if (treeViewer == null)
        return;

    final Control control = treeViewer.getControl();

    if (modellEvent instanceof FeatureStructureChangeModellEvent) {
        if (m_featureStructureChangedJob != null)
            m_featureStructureChangedJob.cancel();

        m_featureStructureChangedJob = new UIJob(Messages.getString("GMLContentProvider_0")) //$NON-NLS-1$
        {
            @Override
            public IStatus runInUIThread(final IProgressMonitor monitor) {
                if (monitor.isCanceled())
                    return Status.CANCEL_STATUS;
                if (Objects.isNull(control) || control.isDisposed())
                    return Status.CANCEL_STATUS;

                final Object[] expandedElements = treeViewer.getExpandedElements();

                treeViewer.refresh();

                treeViewer.setExpandedElements(expandedElements);

                return Status.OK_STATUS;
            }
        };

        m_featureStructureChangedJob.setSystem(true);
        m_featureStructureChangedJob.setUser(false);

        m_featureStructureChangedJob.schedule(50);

    } else if (modellEvent instanceof FeaturesChangedModellEvent) {
        final FeaturesChangedModellEvent fcme = (FeaturesChangedModellEvent) modellEvent;

        // TODO: ugly abstraction, mover into separate class!
        synchronized (m_featureChangeStack) {
            Collections.addAll(m_featureChangeStack, fcme.getFeatures());

            if (m_featureChangeJob != null) {
                m_featureChangeJob.cancel();
                m_featureChangeJob = null;
            }

            // FIXME; why recreate the job at all?
            final UIJob featureChangeJob = new UIJob(Messages.getString("GMLContentProvider_1")) //$NON-NLS-1$
            {
                @Override
                public IStatus runInUIThread(final IProgressMonitor monitor) {
                    if (monitor.isCanceled())
                        return Status.CANCEL_STATUS;

                    if (Objects.isNull(control) || control.isDisposed())
                        return Status.CANCEL_STATUS;

                    final Feature[] features = popChangedFeatures();

                    for (final Feature feature : features) {
                        // FIXME: handle special case: also refresh elements of tree that reference this feature...

                        treeViewer.refresh(feature, true);
                    }

                    return Status.OK_STATUS;
                }
            };

            featureChangeJob.setSystem(true);
            featureChangeJob.setUser(false);
            featureChangeJob.schedule(50);

            m_featureChangeJob = featureChangeJob;
        }
    }
}

From source file:org.kalypso.ui.repository.view.RepositoryExplorerPart.java

License:Open Source License

/**
 * Restores the state of the receiver to the state described in the specified memento.
 * //from   www.ja v  a2  s  .  c  o m
 * @param memento
 *          the memento
 */
private void restoreState(final IMemento memento) {
    if (m_chooser == null)
        return;

    final TreeViewer viewer = m_chooser.getViewer();

    final IMemento repsMem = memento.getChild(RepositoryExplorerPart.TAG_REPOSITORIES);
    if (repsMem != null) {
        final IMemento[] repMem = repsMem.getChildren(RepositoryExplorerPart.TAG_REPOSITORY);
        for (final IMemento element : repMem) {
            if (element == null)
                continue;

            try {
                final RepositoryFactoryConfig item = RepositoryFactoryConfig.restore(element.getTextData());
                if (item != null) {
                    // TODO: dirty! always use extension mechanism to instantiate repositories
                    final IRepository rep = item.getFactory().createRepository();

                    final IMemento propsMem = element.getChild(RepositoryExplorerPart.TAG_REPOSITORY_PROPS);
                    if (propsMem != null)
                        MementoUtils.loadProperties(propsMem, rep.getProperties());

                    m_chooser.getRepositoryContainer().addRepository(rep);
                }
            } catch (final Exception e) // generic exception caught for simplicity
            {
                // ignored
                e.printStackTrace();
            }
        }
    }

    final IMemento childMem = memento.getChild(RepositoryExplorerPart.TAG_EXPANDED);
    if (childMem != null) {
        final List<IRepositoryItem> elements = new ArrayList<>();
        viewer.setExpandedElements(elements.toArray());
    }
}

From source file:org.modelversioning.emfprofile.application.registry.ui.observer.ViewerState.java

License:Open Source License

public void restoreTreeViewerState(TreeViewer viewer) {
    viewer.setInput(input);/*from  w w w.  j av  a 2 s.c om*/
    viewer.setExpandedElements(viewerExpandedElements);
    viewer.setSelection(selection, true);
}

From source file:org.talend.repository.viewer.filter.PerspectiveFilterHelper.java

License:Open Source License

/**
 * Only activate the view content providers with the extension ID belonging to extensionIdsToActivate array.
 * // w  w  w  .  ja  v a  2  s.  c  o m
 * 
 * @param extensionIdsToActivate
 * @param restoring, used because setting new selection cause renentrance and may create 2 action types when
 * restoring state
 */
protected void refreshNavigatorContents(String[] extensionIdsToActivate, boolean restoring) {
    boolean updateExtensionActivation = false;
    String[] contentExtensionsToActivate = Arrays.copyOf(extensionIdsToActivate, extensionIdsToActivate.length);
    // we sort the array in order to use Array.binarySearch();
    Arrays.sort(contentExtensionsToActivate);

    IStructuredSelection ssel = null;
    TreeViewer commonViewer = getTreeViewer();
    INavigatorContentService contentService = getNavigatorContentService();
    try {

        commonViewer.getControl().setRedraw(false);
        // store the selection
        ISelection selection = commonViewer.getSelection();
        if (selection instanceof IStructuredSelection) {
            ssel = (IStructuredSelection) selection;
        }

        INavigatorContentDescriptor[] visibleContentDescriptors = contentService.getVisibleExtensions();

        int indexofContentExtensionIdToBeActivated;
        /* is there a delta? */
        for (int i = 0; i < visibleContentDescriptors.length && !updateExtensionActivation; i++) {
            indexofContentExtensionIdToBeActivated = Arrays.binarySearch(contentExtensionsToActivate,
                    visibleContentDescriptors[i].getId());
            /*
             * Either we have a filter that should be active that isn't XOR a filter that shouldn't be active that
             * is currently
             */
            if (indexofContentExtensionIdToBeActivated >= 0
                    ^ contentService.isActive(visibleContentDescriptors[i].getId())) {
                updateExtensionActivation = true;
            }
        }

        /* If so, update */
        if (updateExtensionActivation) {

            contentService.getActivationService().activateExtensions(contentExtensionsToActivate, true);
            contentService.getActivationService().persistExtensionActivations();
            // try to keep expanded elements state
            Object[] expandedElements = commonViewer.getExpandedElements();

            contentService.update();
            commonViewer.refresh();
            if (!restoring) {
                Object[] originalObjects = ssel != null ? ssel.toArray() : new Object[0];

                commonViewer.setExpandedElements(expandedElements);
                // restore the selection.
                IStructuredSelection newSelection = new StructuredSelection(originalObjects);
                commonViewer.setSelection(newSelection, true);
            }
        }

    } finally {
        commonViewer.getControl().setRedraw(true);
    }

}

From source file:tubame.knowhow.plugin.ui.action.CreateChapterPopupMenuAction.java

License:Apache License

/**
 * {@inheritDoc}/*w w w.  j  a  v a  2  s.  com*/
 */
@Override
public void run() {
    CreateChapterPopupMenuAction.LOGGER.debug(CmnStringUtil.EMPTY);

    InputDialog inputDialog = new InputDialog(PluginUtil.getActiveWorkbenchShell(),
            ResourceUtil.inputChapterSubject, ResourceUtil.inputChapterName, null, null);
    if (inputDialog.open() == InputDialog.OK) {
        // Pretreatment
        TreeViewer entryViewer = (TreeViewer) treeViewer;
        Object[] expandedNodes = entryViewer.getExpandedElements();
        entryViewer.getTree().setRedraw(false);
        // Entry Processing
        List<EntryOperator> entryList = treeViewer.getInputEntry();
        ChapterEntry chapter = new ChapterEntry();
        chapter.setKey(ResourceUtil.dummyChapterID);
        chapter.setName(inputDialog.getValue());
        chapter.setLevel(0);
        entryList.add(chapter);
        treeViewer.setEntryListData(entryList);
        // Post-processing
        treeViewer.refreshTreeViewer(true);
        entryViewer.setExpandedElements(expandedNodes);
        entryViewer.getTree().setRedraw(true);
    }
    CreateChapterPopupMenuAction.LOGGER
            .info(MessagePropertiesUtil.getMessage(MessagePropertiesUtil.LOG_CREATE_CONTEXTMENULIST));
}