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

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

Introduction

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

Prototype

public Tree getTree() 

Source Link

Document

Returns this tree viewer's tree control.

Usage

From source file:org.eclipse.cdt.cpp.ui.internal.editor.contentoutliner.CppContentOutlinePage.java

License:Open Source License

private void hackRedraw() {
    TreeViewer treeViewer = getTreeViewer();
    Tree tree = treeViewer.getTree();

    TreeItem[] items = tree.getItems();//ww w. j a va  2 s  .  c  o  m
    ArrayList newItems = _elementRoot.getAssociated(_elementRoot.getDataStore().getContentsRelation());
    if (newItems.size() > 0) {
        for (int i = 0; i < items.length; i++) {
            TreeItem item = items[i];
            Object data = item.getData();
            DataElement oldElement = (DataElement) data;

            if (newItems.size() > i) {
                DataElement newElement = (DataElement) newItems.get(i);
                if (oldElement != newElement) {
                    item.setData(newElement);
                    DataElementLabelProvider provider = (DataElementLabelProvider) treeViewer
                            .getLabelProvider();
                    // need to really do an update though to register properly
                    item.setText(provider.getText(newElement));
                    item.setImage(provider.getImage(newElement));
                    treeViewer.refresh(newElement);
                }
            } else {
                if (oldElement.isDeleted()) {
                    treeViewer.remove(oldElement);
                }
            }
        }

        for (int j = items.length; j < newItems.size(); j++) {
            DataElement newElement = (DataElement) newItems.get(j);
            TreeItem item = new TreeItem(tree, SWT.NONE);
            item.setData(newElement);

            DataElementLabelProvider provider = (DataElementLabelProvider) treeViewer.getLabelProvider();
            // need to really do an update though to register properly
            item.setText(provider.getText(newElement));
            item.setImage(provider.getImage(newElement));
            treeViewer.refresh(newElement);

        }
    }

}

From source file:org.eclipse.cdt.internal.ui.cview.CView.java

License:Open Source License

/**
 * Initializes and registers the context menu.
 *//*from ww w  .  java2  s.  c o m*/
protected void initContextMenu() {
    MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            CView.this.fillContextMenu(manager);
        }
    });
    TreeViewer viewer = getViewer();
    Menu menu = menuMgr.createContextMenu(viewer.getTree());
    viewer.getTree().setMenu(menu);
    getSite().registerContextMenu(menuMgr, viewer);
}

From source file:org.eclipse.cdt.internal.ui.cview.CViewRenameAction.java

License:Open Source License

/**
 * Create a ResourceNavigatorRenameAction and use the tree of the supplied viewer
 * for editing./*from w w w  .  j a v a  2  s .c  o  m*/
 * @param shell Shell
 * @param treeViewer TreeViewer
 * @deprecated
 */
@Deprecated
public CViewRenameAction(Shell shell, TreeViewer treeViewer) {
    super(shell, treeViewer.getTree());
    PlatformUI.getWorkbench().getHelpSystem().setHelp(this, ICHelpContextIds.RENAME_ACTION);
    this.viewer = treeViewer;
}

From source file:org.eclipse.cdt.internal.ui.cview.CViewRenameAction.java

License:Open Source License

/**
 * Create a ResourceNavigatorRenameAction and use the tree of the supplied viewer
 * for editing./* www.  java2  s .  co m*/
 * @param shellProvider a provider for a shell
 * @param treeViewer TreeViewer
 */
public CViewRenameAction(IShellProvider shellProvider, TreeViewer treeViewer) {
    super(shellProvider, treeViewer.getTree());
    PlatformUI.getWorkbench().getHelpSystem().setHelp(this, ICHelpContextIds.RENAME_ACTION);
    this.viewer = treeViewer;
}

From source file:org.eclipse.cdt.internal.ui.text.COutlineInformationControl.java

License:Open Source License

/**
 * {@inheritDoc}/*from  w w w .j  a  v  a  2s  .c o  m*/
 */
@Override
protected TreeViewer createTreeViewer(Composite parent, int treeStyle) {
    TreeViewer treeViewer = new ProblemTreeViewer(parent, treeStyle);
    final Tree tree = treeViewer.getTree();
    tree.setLayoutData(new GridData(GridData.FILL_BOTH));
    fOutlineContentProvider = new CContentOutlinerProvider(treeViewer);
    treeViewer.setContentProvider(fOutlineContentProvider);
    fSortingAction = new LexicalSortingAction(treeViewer, ".isChecked"); //$NON-NLS-1$
    treeViewer.addFilter(new NamePatternFilter());
    long textFlags = TEXT_FLAGS;
    if (PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.OUTLINE_GROUP_MEMBERS))
        textFlags = textFlags | CElementLabels.M_SIMPLE_NAME | CElementLabels.F_SIMPLE_NAME;
    treeViewer.setLabelProvider(
            new DecoratingCLabelProvider(new AppearanceAwareLabelProvider(textFlags, IMAGE_FLAGS), true));
    treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
    return treeViewer;
}

From source file:org.eclipse.cdt.internal.ui.workingsets.WorkingSetConfigsController.java

License:Open Source License

/**
 * Assigns the tree viewer that I control.
 * //from  w  w w . j a  v a  2s  .  c o m
 * @param tree
 *            my tree viewer
 */
void setTreeViewer(final TreeViewer tree) {
    if (this.tree != null) {
        this.tree.removeSelectionChangedListener(this);
    }

    this.tree = tree;

    if (this.tree != null) {
        this.tree.addSelectionChangedListener(this);

        this.tree.setInput(workspace.getWorkingSets());

        if (!workspace.getWorkingSets().isEmpty()) {
            tree.getTree().getDisplay().asyncExec(new Runnable() {

                @Override
                public void run() {
                    Object initialSelection;

                    ITreeContentProvider content = (ITreeContentProvider) tree.getContentProvider();

                    if ((initialWorkingSet != null) && Arrays.asList(content.getElements(tree.getInput()))
                            .contains(initialWorkingSet)) {
                        initialSelection = initialWorkingSet;
                    } else {
                        // we have a most-recently-used working set. Just
                        // take the first in tree order
                        initialSelection = tree.getTree().getItem(0).getData();
                    }

                    Object[] children = content.getChildren(initialSelection);
                    IStructuredSelection sel;

                    if ((children == null) || (children.length == 0)) {
                        // Shouldn't happen: there should at least be the
                        // read-only config.
                        // Can only select the initial working set
                        sel = new StructuredSelection(initialSelection);
                    } else {
                        Object[] toSort = new Object[children.length];
                        System.arraycopy(children, 0, toSort, 0, children.length);
                        tree.getComparator().sort(tree, toSort);
                        sel = new StructuredSelection(toSort[0]);
                    }

                    // make the selection
                    tree.setSelection(sel, true);
                }
            });
        }
    }
}

From source file:org.eclipse.cdt.internal.ui.workingsets.WorkingSetConfigurationBlock.java

License:Open Source License

/**
 * Creates the "working set configurations" pane in the upper part of the sash form.
 * /*from  ww  w. j  ava  2  s. c  om*/
 * @param parent
 *            the parent composite
 * @param layoutFactory
 *            a layout-factory to use to lay out the composite in a grid, possibly pre-configured. Its use
 *            is optional
 * 
 * @return the working set configurations pane
 */
protected Composite createWorkingSetConfigsArea(Composite parent, GridLayoutFactory layoutFactory) {
    Composite result = new Composite(parent, SWT.NONE);
    layoutFactory.numColumns(2).applyTo(result);

    GridDataFactory layoutDataFactory = GridDataFactory.fillDefaults();

    Label label = new Label(result, SWT.NONE);
    label.setText(WorkingSetMessages.WSConfigDialog_wsTree_label);
    layoutDataFactory.span(2, 1).applyTo(label);

    controller = new WorkingSetConfigsController(workspace, initialSelection);

    TreeViewer tree = new TreeViewer(result);
    layoutDataFactory.span(1, 1).align(SWT.FILL, SWT.FILL).grab(true, true).hint(250, SWT.DEFAULT)
            .applyTo(tree.getControl());

    tree.setContentProvider(new WSConfigsContentProvider());
    tree.setLabelProvider(new WSConfigsLabelProvider(tree));
    controller.setTreeViewer(tree);

    tree.setComparator(new ViewerComparator() {
        @Override
        public int category(Object element) {
            if (element instanceof IWorkingSetConfiguration.ISnapshot) {
                IWorkingSetConfiguration.ISnapshot config = (IWorkingSetConfiguration.ISnapshot) element;
                if (config.isReadOnly()) {
                    return 0;
                }
            }
            return 1;
        }
    });

    tree.getTree().getAccessible().addAccessibleListener(new AccessibleAdapter() {
        @Override
        public void getName(AccessibleEvent e) {
            e.result = WorkingSetMessages.WSConfigDialog_wsTree_accessible_name;
        }
    });

    Composite buttons = new Composite(result, SWT.NONE);
    layoutDataFactory.grab(false, false).hint(SWT.DEFAULT, SWT.DEFAULT).applyTo(buttons);
    layoutFactory.numColumns(1).extendedMargins(0, 0, 0, 0).applyTo(buttons);

    Button button = new Button(buttons, SWT.PUSH);
    layoutDataFactory.align(SWT.FILL, SWT.BEGINNING).applyTo(button);
    button.setText(WorkingSetMessages.WSConfigDialog_add_label);
    controller.setAddButton(button);

    button = new Button(buttons, SWT.PUSH);
    layoutDataFactory.applyTo(button);
    button.setText(WorkingSetMessages.WSConfigDialog_remove_label);
    controller.setRemoveButton(button);

    button = new Button(buttons, SWT.PUSH);
    layoutDataFactory.applyTo(button);
    button.setText(WorkingSetMessages.WSConfigDialog_rename_label);
    controller.setRenameButton(button);

    button = new Button(buttons, SWT.PUSH);
    layoutDataFactory.applyTo(button);
    button.setText(WorkingSetMessages.WSConfigDialog_activate_label);
    controller.setActivateButton(button);

    button = new Button(buttons, SWT.PUSH);
    layoutDataFactory.applyTo(button);
    button.setText(WorkingSetMessages.WSConfigDialog_build_label);
    controller.setBuildButton(button);

    return result;
}

From source file:org.eclipse.cdt.launch.internal.ui.MultiLaunchConfigurationSelectionDialog.java

License:Open Source License

@Override
public void selectionChanged(SelectionChangedEvent event) {

    // This listener gets called for a selection change in the launch
    // configuration viewer embedded in the dialog. Problem is, there are
    // numerous viewers--one for each platform debug ILaunchGroup (run,
    // debug, profile). These viewers are stacked, so only one is ever
    // visible to the user. During initialization, we get a selection change
    // notification for every viewer. We need to ignore all but the one that
    // matters--the visible one.

    Tree topTree = null;//from  w w w .j  a  va 2  s  .  c  o m
    final Control topControl = fStackComposite.getTopControl();
    if (topControl instanceof FilteredTree) {
        final TreeViewer viewer = ((FilteredTree) topControl).getViewer();
        if (viewer != null) {
            topTree = viewer.getTree();
        }
    }
    if (topTree == null) {
        return;
    }

    boolean selectionIsForVisibleViewer = false;
    final Object src = event.getSource();
    if (src instanceof Viewer) {
        final Control viewerControl = ((Viewer) src).getControl();
        if (viewerControl == topTree) {
            selectionIsForVisibleViewer = true;
        }
    }

    if (!selectionIsForVisibleViewer) {
        return;
    }

    fSelection = event.getSelection();
    validate();
}

From source file:org.eclipse.cdt.ui.tests.callhierarchy.CallHierarchyAcrossProjectsTest.java

License:Open Source License

public void testMethodsInMultipleFiles() throws Exception {
    StringBuilder[] content = getContentsForTest(3);
    String header = content[0].toString();
    String source1 = content[1].toString();
    String source2 = content[2].toString();
    IFile headerFile = createFile(fCProject.getProject(), "testMethods.h", header);
    IFile sourceFile1 = createFile(fCProject.getProject(), "testMethods1.cpp", source1);
    IFile sourceFile2 = createFile(fCProject2.getProject(), "testMethods2.cpp", source2);

    CEditor editor = openEditor(sourceFile1);
    waitUntilFileIsIndexed(fIndex, sourceFile2);

    editor.selectAndReveal(source1.indexOf("method3"), 2);
    openCallHierarchy(editor);//  w  w w  . ja  va2 s .  c o  m
    TreeViewer tv = getCHTreeViewer();

    checkTreeNode(tv.getTree(), 0, "MyClass::method3() : void");
    TreeItem item = checkTreeNode(tv.getTree(), 0, 0, "MyClass::method2() : void");
    checkTreeNode(tv.getTree(), 0, 1, null);
    tv.setExpandedState(item.getData(), true);
    TreeItem nextItem = checkTreeNode(item, 0, "MyClass::method1() : void");
    checkTreeNode(item, 1, null);
    item = nextItem;
    tv.setExpandedState(item.getData(), true);
    checkTreeNode(item, 0, null);
}

From source file:org.eclipse.cdt.ui.tests.callhierarchy.CallHierarchyAcrossProjectsTest.java

License:Open Source License

public void testMultipleImplsForMethod() throws Exception {
    StringBuilder[] content = getContentsForTest(3);
    String header = content[0].toString();
    String source1 = content[1].toString();
    String source2 = content[2].toString();
    IFile headerFile = createFile(getProject(), "testMethods.h", header);
    IFile sourceFile1 = createFile(fCProject2.getProject(), "testMethods1.cpp", source1);
    IFile sourceFile2 = createFile(getProject(), "testMethods2.cpp", source2);

    CEditor editor = openEditor(sourceFile1);
    waitUntilFileIsIndexed(fIndex, sourceFile1);
    waitUntilFileIsIndexed(fIndex, sourceFile2);

    editor.selectAndReveal(source1.indexOf("method3"), 2);
    openCallHierarchy(editor);/*  w ww . j  a v  a2s  .  com*/
    TreeViewer tv = getCHTreeViewer();

    checkTreeNode(tv.getTree(), 0, "MyClass::method3() : void");
    TreeItem item0 = checkTreeNode(tv.getTree(), 0, 0, "MyClass::method1() : void");
    TreeItem item1 = checkTreeNode(tv.getTree(), 0, 1, "MyClass::method2() : void");
    checkTreeNode(tv.getTree(), 0, 2, null);

    // method 1
    tv.setExpandedState(item0.getData(), true);
    checkTreeNode(item0, 0, null);

    // method 2
    tv.setExpandedState(item1.getData(), true);
    TreeItem nextItem = checkTreeNode(item1, 0, "MyClass::method1() : void");
    checkTreeNode(item1, 1, null);
    item1 = nextItem;
    tv.setExpandedState(item1.getData(), true);
    checkTreeNode(item1, 0, null);
}