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

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

Introduction

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

Prototype

@Override
public ISelection getSelection() 

Source Link

Document

The AbstractTreeViewer implementation of this method returns the result as an ITreeSelection.

Usage

From source file:net.bioclipse.cdk.ui.wizards.SelectFilesWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    container.setLayout(layout);//from   w w  w .j a v a2  s.c om
    layout.numColumns = 2;
    layout.verticalSpacing = 9;
    final TreeViewer treeViewer = new TreeViewer(container);
    if (withCheckbox) {
        includeRecursivlyButton = new Button(container, SWT.CHECK);
        includeRecursivlyButton.addSelectionListener(new SelectionListener() {

            public void widgetDefaultSelected(SelectionEvent e) {
                this.widgetSelected(e);
            }

            public void widgetSelected(SelectionEvent e) {
                SelectFilesWizardPage.this.setPageComplete(false);
                if (includeRecursivlyButton.getSelection()) {
                    ISelection sel = treeViewer.getSelection();
                    if (sel instanceof IStructuredSelection) {
                        selectedFiles = (IStructuredSelection) sel;
                        try {
                            if (containsMolecule(selectedFiles) || (includeRecursivlyButton.getSelection()
                                    && containsFolder(selectedFiles)))
                                SelectFilesWizardPage.this.setPageComplete(true);
                        } catch (Exception e1) {
                            LogUtils.handleException(e1, logger);
                        }
                    }
                }
            }
        });
        Label includeRecursivlyLabel = new Label(container, SWT.NULL);
        includeRecursivlyLabel.setText("Include directories recursivly");
    }
    treeViewer.setContentProvider(new MoleculeFileContentProvider());
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setUseHashlookup(true);
    ViewerFilter[] filters = new ViewerFilter[1];
    filters[0] = new DotViewerFilter();
    treeViewer.setFilters(filters);
    //Layout the tree viewer below the text field
    GridData layoutData = new GridData();
    layoutData.grabExcessHorizontalSpace = true;
    layoutData.grabExcessVerticalSpace = true;
    layoutData.horizontalAlignment = GridData.FILL;
    layoutData.verticalAlignment = GridData.FILL;
    layoutData.horizontalSpan = 3;
    treeViewer.getControl().setLayoutData(layoutData);
    treeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot().findMember("."));
    treeViewer.expandToLevel(2);
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            SelectFilesWizardPage.this.setPageComplete(false);
            ISelection sel = event.getSelection();
            if (sel instanceof IStructuredSelection) {
                selectedFiles = (IStructuredSelection) sel;
                try {
                    if (containsMolecule(selectedFiles)
                            || (includeRecursivlyButton.getSelection() && containsFolder(selectedFiles)))
                        SelectFilesWizardPage.this.setPageComplete(true);
                } catch (Exception e) {
                    LogUtils.handleException(e, logger);
                }
            }
        }
    });
    treeViewer.setSelection(sel, true);
    if (sel != null && !sel.isEmpty())
        setPageComplete(true);
    else
        setPageComplete(false);
    setControl(container);
}

From source file:net.refractions.udig.style.sld.editor.internal.EditorDialog.java

License:Open Source License

/**
 * Add the listeners to the tree viewer.
 * @param viewer/*from   w  w  w.  java 2s.c o m*/
 * 
 * @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 IEditorNode) {
                if (!isCurrentPageValid()) {
                    handleError();
                } else if (!showPage((IEditorNode) selection)) {
                    // Page flipping wasn't successful
                    handleError();
                } else {
                    // Everything went well
                    lastSuccessfulNode = (IEditorNode) selection;
                }
            }
        }
    });
    ((Tree) viewer.getControl()).addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(final SelectionEvent event) {
            ISelection selection = viewer.getSelection();
            if (selection.isEmpty())
                return;
            IEditorNode 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();
            }
        }
    });
}

From source file:net.rim.ejde.internal.ui.editors.model.BlackBerryProjectOutlinePage.java

License:Open Source License

@Override
public void selectionChanged(SelectionChangedEvent event) {
    super.selectionChanged(event);
    Object source = event.getSource();
    BlackBerryProjectPropertiesPage page = null;
    Control control = null;//w  w  w . j  av  a2s. com

    if (source instanceof TreeViewer) {
        TreeViewer v = (TreeViewer) source;
        TreeSelection t = (TreeSelection) v.getSelection();
        Object obj = t.getFirstElement();
        if (obj instanceof BlackBerryProjectPropertiesPage) {
            page = (BlackBerryProjectPropertiesPage) obj;
        } else {
            page = (BlackBerryProjectPropertiesPage) t.getPaths()[0].getFirstSegment();
        }

        if (_editor.getActivePage() != page.getIndex()) {
            _editor.setActivePage(page.getIndex());
        }

        if (obj instanceof Control) {
            control = (Control) obj;
            control.setFocus();
            if (control instanceof Text) {
                Text text = (Text) control;
                text.selectAll();
            }
        } else if (obj instanceof TableItem) {
            // Table table = (Table) t.getPaths()[ 0 ].getParentPath().getLastSegment();
            TreePath path = t.getPaths()[0];
            Object parentObject = path.getSegment(path.getSegmentCount() - 2);
            if (parentObject instanceof Table) {
                Table table = (Table) parentObject;
                table.select(BlackBerryProjectPropertiesPage
                        .getItemIndex(table, v.getTree().getSelection()[0].getText()).intValue());
            }
        }
    }
}

From source file:net.sf.eclipsensis.wizard.NSISWizardContentsPage.java

License:Open Source License

private List<INSISInstallElement> getSelectionList(TreeViewer tv) {
    List<INSISInstallElement> list = new ArrayList<INSISInstallElement>();
    ISelection sel = tv.getSelection();
    if (!sel.isEmpty() && sel instanceof IStructuredSelection) {
        for (Object o : ((IStructuredSelection) sel).toList()) {
            list.add((INSISInstallElement) o);
        }/*from  ww  w  . j av a 2s.  c  om*/
    }
    return list;
}

From source file:net.sf.eclipsensis.wizard.settings.dialogs.NSISContentBrowserDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);
    NSISWizardDialogUtil.createLabel(composite, "wizard.select.shortcut.message", true, null, false); //$NON-NLS-1$

    ViewerFilter vf = new ViewerFilter() {
        private HashSet<String> mFilterTypes = new HashSet<String>(Arrays.asList(new String[] {
                NSISInstaller.TYPE, NSISSectionGroup.TYPE, NSISSection.TYPE, NSISInstallDirectory.TYPE,
                NSISInstallFile.TYPE, NSISInstallFiles.TYPE, NSISInstallFiles.FileItem.FILEITEM_TYPE }));

        @Override//from  www  .j  a va2  s.  c o  m
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof INSISInstallElement) {
                return mFilterTypes.contains(((INSISInstallElement) element).getType());
            }
            return false;
        }
    };
    final Tree tree = new Tree(composite, SWT.BORDER);
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    tree.setLayoutData(gd);
    final TreeViewer tv = new TreeViewer(tree);
    tv.setLabelProvider(new NSISInstallElementLabelProvider());
    tv.setContentProvider(new NSISInstallElementTreeContentProvider(mSettings));
    tv.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            getButton(IDialogConstants.OK_ID).setEnabled(setElement(event.getSelection()));
        }
    });
    tree.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            if (setElement(tv.getSelection())) {
                buttonPressed(IDialogConstants.OK_ID);
            }
        }
    });
    tv.setAutoExpandLevel(2);
    tv.addFilter(vf);
    tv.setInput(mSettings);

    return composite;
}

From source file:net.sf.wdte.ui.views.outline.ModelBasedOutlinePage.java

License:Open Source License

/**
 * Selects a specific element in the outline page.
 * /*from  w ww  .  j av a  2s  .c o m*/
 * @param element the element to select
 */
public void select(ISourceReference element) {
    TreeViewer viewer = getTreeViewer();
    if (viewer != null) {
        ISelection selection = viewer.getSelection();
        if (selection instanceof IStructuredSelection) {
            IStructuredSelection structuredSelection = (IStructuredSelection) selection;
            List elements = structuredSelection.toList();
            if (!elements.contains(element)) {
                if (element == null) {
                    selection = StructuredSelection.EMPTY;
                } else {
                    selection = new StructuredSelection(element);
                }
                viewer.setSelection(selection, true);
            }
        }
    }
}

From source file:net.sourceforge.sqlexplorer.plugin.views.DatabaseStructureView.java

License:Open Source License

/**
 * Add a new session to the database structure view. This will create a new tab for the session.
 * //from   w w  w .j  av  a2  s  .c o  m
 * @param session
 */
private void addSession(final MetaDataSession session) throws SQLCannotConnectException {
    if (_allSessions.contains(session)) {
        return;
    }
    try {
        session.getMetaData();
        session.setAutoCommit(true);
    } catch (SQLCannotConnectException e) {
        SQLExplorerPlugin.error(e);
        throw e;
    } catch (SQLException e) {
        SQLExplorerPlugin.error(e);
        MessageDialog.openError(getSite().getShell(), "Cannot connect", e.getMessage());
    }
    DatabaseNode rootNode = session.getRoot();
    if (rootNode == null) {
        return;
    }
    _allSessions.add(session);

    if (_filterAction != null) {
        _filterAction.setEnabled(true);
    }

    if (_tabFolder == null || _tabFolder.isDisposed()) {

        clearParent();

        // create tab folder for different sessions
        _tabFolder = new CTabFolder(_parent, SWT.TOP | SWT.CLOSE);

        // add listener to keep both views on the same active tab
        _tabFolder.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {

                // set the selected node in the detail view.
                DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage()
                        .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL);
                synchronizeDetailView(detailView);
            }

        });

        // Set up a gradient background for the selected tab
        Display display = getSite().getShell().getDisplay();
        _tabFolder.setSelectionBackground(
                new Color[] { display.getSystemColor(SWT.COLOR_WHITE), new Color(null, 211, 225, 250),
                        new Color(null, 175, 201, 246), IConstants.TAB_BORDER_COLOR },
                new int[] { 25, 50, 75 }, true);

        // Add a listener to handle the close button on each tab
        _tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() {

            @Override
            public void close(CTabFolderEvent event) {
                CTabItem tabItem = (CTabItem) event.item;
                TabData tabData = (TabData) tabItem.getData();
                _allSessions.remove(tabData.session);
                event.doit = true;
            }
        });

        _parent.layout();
        _parent.redraw();

    }

    // create tab
    final CTabItem tabItem = new CTabItem(_tabFolder, SWT.NULL);
    TabData tabData = new TabData();
    tabItem.setData(tabData);
    tabData.session = session;

    // set tab text
    String labelText = session.getUser().getDescription();
    tabItem.setText(labelText);

    // create composite for our outline
    Composite composite = new Composite(_tabFolder, SWT.NULL);
    composite.setLayout(new FillLayout());
    tabItem.setControl(composite);

    // create outline
    final TreeViewer treeViewer = new TreeViewer(composite,
            SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.BORDER);
    tabData.treeViewer = treeViewer;

    // add drag support
    // TODO improve drag support options
    Transfer[] transfers = new Transfer[] { TableNodeTransfer.getInstance() };
    treeViewer.addDragSupport(DND.DROP_COPY, transfers, new DragSourceListener() {

        public void dragFinished(DragSourceEvent event) {

            System.out.println("$drag finished");
            TableNodeTransfer.getInstance().setSelection(null);
        }

        public void dragSetData(DragSourceEvent event) {

            Object sel = ((IStructuredSelection) treeViewer.getSelection()).getFirstElement();
            event.data = sel;
        }

        public void dragStart(DragSourceEvent event) {

            event.doit = !treeViewer.getSelection().isEmpty();
            if (event.doit) {
                Object sel = ((IStructuredSelection) treeViewer.getSelection()).getFirstElement();
                if (!(sel instanceof TableNode)) {
                    event.doit = false;
                } else {
                    TableNode tn = (TableNode) sel;
                    TableNodeTransfer.getInstance().setSelection(tn);
                    if (!tn.isTable()) {
                        event.doit = false;
                    }
                }
            }
        }
    });

    // use hash lookup to improve performance
    treeViewer.setUseHashlookup(true);

    // add content and label provider
    treeViewer.setContentProvider(new DBTreeContentProvider());
    treeViewer.setLabelProvider(new DBTreeLabelProvider());

    // set input session
    treeViewer.setInput(rootNode);

    // add selection change listener, so we can update detail view as
    // required.
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent ev) {

            // set the selected node in the detail view.
            DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage()
                    .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL);
            synchronizeDetailView(detailView);
        }
    });

    // bring detail to front on doubleclick of node
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {

            try {
                // find view
                DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage()
                        .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL);
                if (detailView == null) {
                    getSite().getPage().showView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL);
                }
                getSite().getPage().bringToTop(detailView);
                synchronizeDetailView(detailView);
            } catch (Exception e) {
                // fail silent
            }
        }

    });

    // add expand/collapse listener
    treeViewer.addTreeListener(new ITreeViewerListener() {

        public void treeCollapsed(TreeExpansionEvent event) {

            // refresh the node to change image
            INode node = (INode) event.getElement();
            node.setExpanded(false);
            TreeViewer viewer = (TreeViewer) event.getSource();
            viewer.update(node, null);
        }

        public void treeExpanded(TreeExpansionEvent event) {

            // refresh the node to change image
            INode node = (INode) event.getElement();
            node.setExpanded(true);
            TreeViewer viewer = (TreeViewer) event.getSource();
            viewer.update(node, null);
        }

    });

    // set new tab as the active one
    _tabFolder.setSelection(_tabFolder.getItemCount() - 1);

    // update detail view
    DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage()
            .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL);

    if (detailView != null) {

        // synchronze detail view with new session
        synchronizeDetailView(detailView);

        // bring detail to top of the view stack
        getSite().getPage().bringToTop(detailView);
    }

    // refresh view
    composite.layout();
    _tabFolder.layout();
    _tabFolder.redraw();

    // bring this view to top of the view stack, above detail if needed..
    getSite().getPage().bringToTop(this);

    // add context menu
    final DBTreeActionGroup actionGroup = new DBTreeActionGroup(treeViewer);
    MenuManager menuManager = new MenuManager("DBTreeContextMenu");
    menuManager.setRemoveAllWhenShown(true);
    Menu contextMenu = menuManager.createContextMenu(treeViewer.getTree());
    treeViewer.getTree().setMenu(contextMenu);

    menuManager.addMenuListener(new IMenuListener() {

        public void menuAboutToShow(IMenuManager manager) {

            actionGroup.fillContextMenu(manager);
        }
    });

    // if (sessionSelectionMap.containsKey(tabData.session)) {
    // tabData.treeViewer.setSelection(sessionSelectionMap.get(tabData.session));
    // sessionSelectionMap.remove(tabData.session);
    // _allSessions.remove(tabData.session);
    // }
}

From source file:net.tourbook.ui.action.ActionCollapseAll.java

License:Open Source License

@Override
public void run() {

    if (_tourViewer != null) {

        final ColumnViewer viewer = _tourViewer.getViewer();

        if (viewer instanceof TreeViewer) {

            final TreeViewer treeViewer = (TreeViewer) viewer;

            final Tree tree = treeViewer.getTree();

            // disable redraw that the UI in not flickering
            tree.setRedraw(false);/*from  w  ww. ja va 2  s . co m*/
            {
                try {
                    treeViewer.collapseAll();
                } catch (final Exception e) {
                    // this occured
                }
            }
            tree.setRedraw(true);

            try {

                final StructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
                if (selection != null) {
                    final Object firstElement = selection.getFirstElement();
                    if (firstElement != null) {
                        treeViewer.reveal(firstElement);
                    }
                }

            } catch (final Exception e) {

                // this occured, ensure something is selected otherwise further NPEs occure

                final TreeItem[] selection = tree.getSelection();

                for (final TreeItem treeItem : selection) {

                    final Object itemData = treeItem.getData();

                    _tourViewer.getViewer().setSelection(new StructuredSelection(itemData), true);

                    break;
                }
            }
        }
    }
}

From source file:net.tourbook.ui.action.ActionCollapseOthers.java

License:Open Source License

@Override
public void run() {

    if (fTourViewer != null) {

        final ColumnViewer viewer = fTourViewer.getViewer();
        if (viewer instanceof TreeViewer) {

            final TreeViewer treeViewer = (TreeViewer) viewer;
            final Object firstElement = ((StructuredSelection) treeViewer.getSelection()).getFirstElement();

            if (firstElement != null) {

                final Tree tree = treeViewer.getTree();
                tree.setRedraw(false);//www .  j  a va2 s  .  com
                {
                    treeViewer.collapseAll();
                    treeViewer.setExpandedElements(new Object[] { firstElement });
                    treeViewer.setSelection(new StructuredSelection(firstElement), true);
                }
                tree.setRedraw(true);
            }
        }
    }
}

From source file:net.tourbook.ui.action.ActionExpandSelection.java

License:Open Source License

@Override
public void run() {

    if (_tourViewer == null) {
        return;//from  ww w  .  j  a v  a  2s .c om
    }

    final ColumnViewer viewer = _tourViewer.getViewer();
    if (viewer instanceof TreeViewer) {

        final TreeViewer treeViewer = (TreeViewer) viewer;
        final ITreeSelection selection = (ITreeSelection) treeViewer.getSelection();

        if (selection.size() == 0) {
            return;
        }

        final Tree tree = treeViewer.getTree();
        tree.setRedraw(false);
        {
            for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
                treeViewer.expandToLevel(iterator.next(), _expandLevels);
            }
        }
        tree.setRedraw(true);
    }
}