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:org.bundlemaker.core.ui.editor.xref3.TreeSelectionSnapshot.java

License:Open Source License

/**
 * @param treeViewer//  ww  w  .  j  av  a  2s. c om
 * @param b
 */
public void addSelection(TreeViewer treeViewer, boolean currentTree) {

    TreeSelection selection = new TreeSelection(treeViewer, treeViewer.getSelection());

    if (!currentTree) {
        _treeSelections.add(0, selection);
    } else {
        // current tree selection must be last in order to select it last if it's re-selected
        _treeSelections.add(selection);
    }

}

From source file:org.camunda.bpm.modeler.ui.dialog.importer.ModelProblemsDialog.java

License:Open Source License

private void createProblemsTreeView(Composite parent) {

    // clipboard to copy and paste from / to
    final Clipboard clipboard = new Clipboard(parent.getDisplay());

    Composite treeColumnComposite = new Composite(parent, SWT.NONE);
    GridData treeColumnCompositeGridData = new GridData(SWT.FILL, SWT.TOP, true, false);
    treeColumnCompositeGridData.widthHint = 420;
    treeColumnCompositeGridData.heightHint = 128;
    treeColumnComposite.setLayoutData(treeColumnCompositeGridData);

    TreeColumnLayout treeColumnLayout = new TreeColumnLayout();
    treeColumnComposite.setLayout(treeColumnLayout);

    final TreeViewer treeViewer = new TreeViewer(treeColumnComposite,
            SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    Tree tree = treeViewer.getTree();/*from  w ww .ja  va2 s .  c  o  m*/
    tree.setLinesVisible(true);

    treeViewer.setContentProvider(new ProblemsContentProvider());
    treeViewer.setLabelProvider(new ProblemLabelProvider());

    Menu menu = new Menu(parent.getShell(), SWT.POP_UP);
    final MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
    copyItem.setText("Copy Stacktrace to Clipboard");

    String imageName = ISharedImages.IMG_TOOL_COPY;
    copyItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(imageName));

    copyItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            Problem problem = (Problem) selection.getFirstElement();

            copyToClipboard(clipboard, problem);
        }
    });

    treeViewer.getTree().setMenu(menu);

    List<Problem> problems = populateProblems();

    // Expand the tree
    treeViewer.setAutoExpandLevel(2);

    // Provide the input to the ContentProvider
    treeViewer.setInput(problems);
}

From source file:org.cs3.pdt.analysis.views.AbstractAnalysisView.java

License:Open Source License

protected TreeViewer createResultTreeViewer(Composite parent) {
    final TreeViewer treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    gridData.verticalAlignment = GridData.FILL;

    Tree tree = treeViewer.getTree();//from w w  w .  j ava2 s .  c  om

    tree.addMouseListener(new MouseListener() {

        @Override
        public void mouseUp(MouseEvent e) {
        }

        @Override
        public void mouseDown(MouseEvent e) {
        }

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ISelection selection = treeViewer.getSelection();
            if (selection instanceof ITreeSelection) {
                Object o = ((ITreeSelection) selection).getFirstElement();
                if (o instanceof IResult) {
                    selectResultInEditor((IResult) o);
                }
            }
        }
    });
    tree.setLayoutData(gridData);
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    resultContentProvider = new ResultTableContentProvider(getResultModel());
    treeViewer.setContentProvider(resultContentProvider);
    treeViewer.setInput(new Object());

    resultTreeViewerColumns = new TreeViewerColumn[3];

    for (int i = 0; i < resultTreeViewerColumns.length; i++) {
        resultTreeViewerColumns[i] = new TreeViewerColumn(treeViewer, SWT.NONE);
        resultTreeViewerColumns[i].getColumn().setMoveable(true);
    }

    resultTreeViewerColumns[0].getColumn().setWidth(300);
    resultTreeViewerColumns[0].getColumn().setText("Description");
    resultTreeViewerColumns[0].setLabelProvider(new ResultTableDescriptionColumnLabelProvider());

    resultTreeViewerColumns[1].getColumn().setWidth(150);
    resultTreeViewerColumns[1].getColumn().setText("Resource");
    resultTreeViewerColumns[1].setLabelProvider(new ResultTableResourceColumnLabelProvider());

    resultTreeViewerColumns[2].getColumn().setWidth(100);
    resultTreeViewerColumns[2].getColumn().setText("Location");
    resultTreeViewerColumns[2].setLabelProvider(new ResultTableLocationColumnLabelProvider());

    return treeViewer;
}

From source file:org.csstudio.dal.ui.internal.developmentsupport.util.ContainerView.java

License:Open Source License

private void createPvProviderTree(final Composite parent) {
    final TreeViewer tv = new TreeViewer(parent);

    tv.setContentProvider(new BaseWorkbenchContentProvider() {
        /**/*from  ww  w  .  j  a v  a 2 s.  com*/
         * {@inheritDoc}
         */
        @Override
        public Object[] getElements(final Object element) {
            return (Object[]) element;
        }
    });

    tv.setLabelProvider(new WorkbenchLabelProvider());
    tv.setInput(_samplePvAdresses);

    getViewSite().setSelectionProvider(tv);

    // add drag support
    ProcessVariableExchangeUtil.addProcessVariableAdressDragSupport(tv.getTree(), DND.DROP_MOVE | DND.DROP_COPY,
            new IProcessVariableAdressProvider() {
                @Override
                public IProcessVariableAddress getPVAdress() {
                    final List<IProcessVariableAddress> l = getProcessVariableAdresses();
                    if (l.size() > 0) {
                        return l.get(0);
                    }
                    return null;
                }

                @Override
                public List<IProcessVariableAddress> getProcessVariableAdresses() {
                    final IStructuredSelection sel = (IStructuredSelection) tv.getSelection();

                    final List<IProcessVariableAddress> list = sel.toList();
                    return list;
                }
            });

    // create context menu
    configureContextMenu(tv);
}

From source file:org.csstudio.dal.ui.internal.developmentsupport.util.ContainerView.java

License:Open Source License

private void createTextProviderTree(final Composite parent) {
    final TreeViewer tv = new TreeViewer(parent);

    tv.setContentProvider(new BaseWorkbenchContentProvider() {
        /**// w w  w . j  ava 2  s.com
         * {@inheritDoc}
         */
        @Override
        public Object[] getElements(final Object element) {
            return (Object[]) element;
        }
    });

    tv.setLabelProvider(new WorkbenchLabelProvider());
    tv.setInput(_sampleStrings);

    getViewSite().setSelectionProvider(tv);

    // add drag support
    // FIXME: nur Text-Support anbieten
    // ProcessVariableExchangeUtil.addProcessVariableAdressDragSupport(
    // pvAdressesTv.getTree(), DND.DROP_MOVE | DND.DROP_COPY, this);

    final DragSource dragSource = new DragSource(tv.getControl(), DND.DROP_MOVE | DND.DROP_COPY);

    final Transfer[] types = new Transfer[] { TextTransfer.getInstance() };

    dragSource.setTransfer(types);

    dragSource.addDragListener(new DragSourceAdapter() {

        @Override
        public void dragSetData(final DragSourceEvent event) {
            if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
                final IStructuredSelection sel = (IStructuredSelection) tv.getSelection();
                final List<String> list = sel.toList();

                final StringBuffer sb = new StringBuffer();

                for (final String s : list) {
                    sb.append(s);
                    sb.append("\n"); //$NON-NLS-1$
                }
                event.data = sb.toString();
            }
        }

    });

    // create context menu
    configureContextMenu(tv);
}

From source file:org.dawnsci.breadcrumb.navigation.views.StyledTreeBreadcrumbViewer.java

License:Open Source License

@Override
protected void configureDropDownViewer(final TreeViewer viewer, Object input) {

    // We add a label to view the text seaches with
    this.searchLabel = new Label(viewer.getControl().getParent(), SWT.NONE);
    searchLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    GridUtils.setVisible(searchLabel, false);
    searchLabel.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    viewer.setContentProvider(new TreeNodeContentProvider((TreeNode) input));

    final IStyledTreeLabelProvider lprov = createBeadcrumbLabelProvider();
    viewer.setLabelProvider(new DelegatingStyledCellLabelProvider(lprov));
    viewer.setInput(input);//from   w  w  w . ja v  a  2 s .  c  o  m
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        boolean first = true;

        @Override
        public void selectionChanged(SelectionChangedEvent event) {

            if (!isOn)
                return;
            try {
                isOn = false;
                if (first) {
                    first = false;
                    return;
                }
                DefaultMutableTreeNode sel = (DefaultMutableTreeNode) ((StructuredSelection) event
                        .getSelection()).getFirstElement();
                StyledTreeBreadcrumbViewer.this.setInput(sel);
                StyledTreeBreadcrumbViewer.this.setSelection(new StructuredSelection(sel));
                if (!viewer.getControl().isDisposed()) {
                    if (!viewer.getControl().getShell().isDisposed()) {
                        viewer.getControl().getShell().setVisible(false);
                    }
                }

                boolean isBranch = isBranch(sel.getUserObject());
                if (sel.getChildCount() > 0 && isBranch) {
                    StyledTreeBreadcrumbViewer.this.showMenu();
                }
            } finally {
                isOn = true;
            }
        }
    });
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            Object sel = ((StructuredSelection) viewer.getSelection()).getFirstElement();
            StyledTreeBreadcrumbViewer.this.setInput(sel);
            StyledTreeBreadcrumbViewer.this.setSelection(new StructuredSelection(sel));
            if (!viewer.getControl().isDisposed()) {
                if (!viewer.getControl().getShell().isDisposed()) {
                    viewer.getControl().getShell().setVisible(false);
                }
            }
        }
    });

    /**
     * This listener is rather complex. It gives filtering
     * by search key and pressing enter to make the breadcrumb
     * like a context proposing text field.
     */
    viewer.getControl().addKeyListener(new KeyListener() {

        private Job textBufferJob;
        private StringBuffer textBuffer = new StringBuffer();

        Job getJob() {
            if (textBufferJob != null)
                return textBufferJob;
            textBufferJob = new Job("Text Buffer") {

                public IStatus run(IProgressMonitor monitor) {
                    if (monitor.isCanceled())
                        return Status.CANCEL_STATUS;
                    textBuffer.delete(0, textBuffer.length());
                    Display.getDefault().syncExec(new Runnable() {
                        public void run() {
                            if (searchLabel.isDisposed() || searchLabel.getParent().isDisposed())
                                return;
                            GridUtils.setVisible(searchLabel, false);
                            searchLabel.setText("");
                            searchLabel.getParent().layout();
                            if (!viewer.getControl().isDisposed()) {
                                viewer.getControl().setFocus();
                            }
                        }
                    });
                    return Status.OK_STATUS;
                }
            };
            textBufferJob.setPriority(Job.INTERACTIVE);
            textBufferJob.setSystem(true);
            return textBufferJob;
        }

        @Override
        public void keyReleased(KeyEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void keyPressed(KeyEvent e) {

            if (e.character == '\r') {
                TreeNode child = (TreeNode) ((StructuredSelection) viewer.getSelection()).getFirstElement();
                if (child != null) {
                    setSelection(new StructuredSelection(child));
                    Display.getDefault().asyncExec(new Runnable() {
                        public void run() {
                            final Object node = ((StructuredSelection) getSelection()).getFirstElement();
                            if (isBranch(node))
                                showMenu();
                        }
                    });
                }
                return;
            }

            getJob().cancel();
            try {

                if (!isOn)
                    return;
                isOn = false;
                e.doit = false;

                switch (e.keyCode) {
                case SWT.HOME:
                case SWT.END:
                case SWT.PAGE_UP:
                case SWT.PAGE_DOWN:
                case SWT.ARROW_UP:
                case SWT.ARROW_DOWN:
                    position(viewer, e.keyCode);
                    return;
                }

                if (e.character == '\b') {
                    if (textBuffer.length() > 0)
                        textBuffer.deleteCharAt(textBuffer.length() - 1);
                } else {
                    textBuffer.append(e.character);
                }

                TreeNode child = (TreeNode) ((StructuredSelection) viewer.getSelection()).getFirstElement();
                TreeNode parent = child != null ? (TreeNode) child.getParent() : null;
                if (child == null && parent == null)
                    return;

                Map<String, Object> uObs = getUserObjects(lprov, parent);
                for (String key : uObs.keySet()) {

                    Object node = uObs.get(key);
                    if (key.toLowerCase().contains(textBuffer.toString())) {
                        viewer.setSelection(new StructuredSelection(node));
                        return;
                    }
                }

            } finally {
                isOn = true;
                getJob().schedule(2000);

                if (searchLabel.isDisposed() || searchLabel.getParent().isDisposed())
                    return;
                GridUtils.setVisible(searchLabel, textBuffer.length() > 0);
                searchLabel.setText(textBuffer.toString());
                searchLabel.getParent().layout();
            }
        }
    });
}

From source file:org.dawnsci.breadcrumb.navigation.views.StyledTreeBreadcrumbViewer.java

License:Open Source License

protected void position(TreeViewer viewer, int keyCode) {

    TreeNode child = (TreeNode) ((StructuredSelection) viewer.getSelection()).getFirstElement();
    TreeNode parent = child != null ? (TreeNode) child.getParent() : null;
    if (child == null && parent == null)
        return;/*ww w . j a  v  a  2  s  . com*/

    if (keyCode == SWT.HOME) {
        viewer.setSelection(new StructuredSelection(parent.getChildAt(0)));
        return;
    } else if (keyCode == SWT.END) {
        viewer.setSelection(new StructuredSelection(parent.getChildAt(parent.getChildCount() - 1)));
        return;
    }

    int index = parent.getIndex(child);
    if (keyCode == SWT.ARROW_UP && index > 0) {
        viewer.setSelection(new StructuredSelection(parent.getChildAt(index - 1)));
        return;
    } else if (keyCode == SWT.ARROW_DOWN && index < parent.getChildCount() - 1) {
        viewer.setSelection(new StructuredSelection(parent.getChildAt(index + 1)));
        return;
    }
}

From source file:org.dawnsci.common.widgets.gda.function.FunctionTreeViewerPluginTestBase.java

License:Open Source License

/** Trigger edit on currently selected row for the given column */
protected Text editElement(COLUMN column) {
    FunctionTreeViewer functionTreeViewer = getFunctionTreeViewer();
    TreeViewer treeViewer = functionTreeViewer.getTreeViewer();
    ISelection selection = treeViewer.getSelection();
    assertTrue("Row must already be selected!", selection instanceof StructuredSelection);
    StructuredSelection structuredSelection = (StructuredSelection) selection;
    Object element = structuredSelection.getFirstElement();
    assertTrue("Selection is of unexpected type", element instanceof FunctionModelElement);
    treeViewer.editElement(element, column.COLUMN_INDEX);

    ITextEditingSupport support = functionTreeViewer.getColumnEditingSupport(column);
    Text text = (Text) support.getTextCellEditor().getControl();
    return text;//from w  ww . j a  v  a2s.co  m
}

From source file:org.dev.toos.constcode.ui.handler.consttree.ConstTreeAddAdapter.java

License:Apache License

@Override
public void widgetSelected(SelectionEvent e) {
    TreeViewer treeViewer = this.getViewPage().getConstTreeViewer();
    TreeSelection selection = (TreeSelection) treeViewer.getSelection();
    ConstGroup atGroup = null;/*from   w  ww.  java 2  s. c  o m*/
    int index = -1;
    if (selection.isEmpty() == true) {
        atGroup = ConstModelSet.getActivateModel().getCurrentGroup();
        if (atGroup == null)
            atGroup = ConstModelSet.getActivateModel().getGroups().get(0);
        if (atGroup.isReadOnly() == true)
            return;
    } else {
        ConstBeanBridge constElement = (ConstBeanBridge) selection.getFirstElement();
        atGroup = constElement.getSource();
        index = constElement.getSource().constList().indexOf(constElement);
    }
    //
    ConstBeanBridge newConst = new ConstBeanBridge(null, atGroup);
    atGroup.addConst(index + 1, newConst);
    treeViewer.refresh();
    treeViewer.setSelection(new TreeSelection(new TreePath(new Object[] { newConst })), true);
    newConst.doEdit();
    treeViewer.editElement(newConst, 0);
}

From source file:org.dev.toos.constcode.ui.handler.consttree.ConstTreeDeleteAdapter.java

License:Apache License

@Override
public void widgetSelected(SelectionEvent e) {
    TreeViewer treeViewer = this.getViewPage().getConstTreeViewer();
    TreeSelection selection = (TreeSelection) treeViewer.getSelection();
    if (selection.isEmpty() == true)
        return;//from   w  w w. j  a  v a2s .c  om
    Iterator<Object> iterator = selection.iterator();
    while (iterator.hasNext()) {
        ConstBeanBridge bridge = (ConstBeanBridge) iterator.next();
        if (bridge.readOnly() == true)
            return;
        bridge.getSource().deleteConst(bridge);
    }
    treeViewer.refresh();
    this.getViewPage().getVarTreeViewer().refresh();
}