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:com.python.pydev.analysis.PyContextActivatorViewCreatedObserver.java

License:Open Source License

public PyContextActivatorViewCreatedObserver() {
    onControlCreated = new ICallbackListener() {

        public Object call(Object obj) {
            if (obj instanceof TreeViewer) {
                TreeViewer treeViewer = (TreeViewer) obj;
                obj = treeViewer.getTree();
            }/* w w  w  .  j  ava 2 s . com*/

            if (obj instanceof Control) {
                Control control = (Control) obj;
                control.addFocusListener(pyContextObserver);
            }
            return null;
        }
    };

    onControlDisposed = new ICallbackListener() {

        public Object call(Object obj) {
            if (obj instanceof TreeViewer) {
                TreeViewer treeViewer = (TreeViewer) obj;
                obj = treeViewer.getTree();
            }

            if (obj instanceof Control) {
                Control control = (Control) obj;
                if (!control.isDisposed()) {
                    control.removeFocusListener(pyContextObserver);
                }
            }
            return null;
        }
    };
}

From source file:com.rcpcompany.uibindings.extests.viewerBindings.ChildCreationSpecificationTest.java

License:Open Source License

@Test
public void testTree() {
    myForm = myView.createFormCreator(myShop);

    final Tree tree = new Tree(myForm.addComposite(), SWT.SINGLE | SWT.FULL_SELECTION);
    tree.setLinesVisible(true);/*w ww .j  a  va  2  s.c  om*/
    tree.setHeaderVisible(true);

    final TreeColumn treeColumn = new TreeColumn(tree, SWT.LEAD);
    treeColumn.setText("");

    final IObservableList list = WritableList.withElementType(ShopPackage.Literals.SHOP);
    list.add(myShop);
    final IViewerBinding vb = myForm.getContext().addViewer().viewer(tree).model(list);

    vb.addColumn().model(SpecialBinding.TREE_ITEM).column(treeColumn);

    myForm.finish();
    yield();

    /*
     * Top-level item as parent
     */
    assertNoLog(new Runnable() {
        @Override
        public void run() {
            final List<IChildCreationSpecification> specs = vb.getPossibleChildObjects(myShop, null);

            assertNotNull(specs);
            assertEquals(2, specs.size());

            IChildCreationSpecification sp;

            sp = specs.get(0);
            assertEquals(myShop, sp.getParent());
            assertEquals(ShopPackage.Literals.SHOP__CONTACTS, sp.getReference());
            assertEquals(ShopPackage.Literals.CONTACT, sp.getChildType());
            assertEquals(-1, sp.getIndex());

            sp = specs.get(1);
            assertEquals(myShop, sp.getParent());
            assertEquals(ShopPackage.Literals.SHOP__SHOP_ITEMS, sp.getReference());
            assertEquals(ShopPackage.Literals.SHOP_ITEM, sp.getChildType());
            assertEquals(-1, sp.getIndex());
        }
    });

    /*
     * Top-level item as parent and sibling
     */
    assertNoLog(new Runnable() {
        @Override
        public void run() {
            final List<IChildCreationSpecification> specs = vb.getPossibleChildObjects(myShop, myShopItem2);

            assertNotNull(specs);
            assertEquals(1, specs.size());

            IChildCreationSpecification sp;

            sp = specs.get(0);
            assertEquals(myShop, sp.getParent());
            assertEquals(ShopPackage.Literals.SHOP__SHOP_ITEMS, sp.getReference());
            assertEquals(ShopPackage.Literals.SHOP_ITEM, sp.getChildType());
            assertEquals(1, sp.getIndex());
        }
    });

    /*
     * null as parent
     */
    assertNoLog(new Runnable() {
        @Override
        public void run() {
            final List<IChildCreationSpecification> specs = vb.getPossibleChildObjects(null, null);

            assertNotNull(specs);
            assertEquals(0, specs.size());
        }
    });

    /*
     * null as parent and non-null sibling
     */
    assertNoLog(new Runnable() {
        @Override
        public void run() {
            final List<IChildCreationSpecification> specs = vb.getPossibleChildObjects(null, myShopItem2);

            assertNotNull(specs);
            assertEquals(1, specs.size());

            IChildCreationSpecification sp;

            sp = specs.get(0);
            assertEquals(myShop, sp.getParent());
            assertEquals(ShopPackage.Literals.SHOP__SHOP_ITEMS, sp.getReference());
            assertEquals(ShopPackage.Literals.SHOP_ITEM, sp.getChildType());
            assertEquals(1, sp.getIndex());
        }
    });

    /*
     * Child as parent
     */
    assertNoLog(new Runnable() {
        @Override
        public void run() {
            // TODO SVTB
            final TreeViewer tv = (TreeViewer) vb.getViewer();
            assertNotNull(tv);
            tv.expandAll();
            final Tree tree = tv.getTree();
            assertNotNull(tree);

            TreeItem item;
            item = tree.getItem(0);
            assertNotNull(item);
            item = item.getItem(0);
            assertNotNull(item);

            final Object data = item.getData();
            assertNotNull(data);
            assertTrue(data instanceof IConstantTreeItem);
            final IConstantTreeItem i = (IConstantTreeItem) data;

            final List<IChildCreationSpecification> specs = vb.getPossibleChildObjects(i, null);

            assertNotNull(specs);
            assertEquals(1, specs.size());

            IChildCreationSpecification sp;

            sp = specs.get(0);
            assertEquals(myShop, sp.getParent());
            assertEquals(ShopPackage.Literals.SHOP__CONTACTS, sp.getReference());
            assertEquals(ShopPackage.Literals.CONTACT, sp.getChildType());
            assertEquals(-1, sp.getIndex());
        }
    });
}

From source file:com.redhat.ceylon.eclipse.code.outline.CeylonOutlinePage.java

License:Open Source License

public void update(final CeylonParseController parseController) {
    TreeViewer treeViewer = getTreeViewer();
    if (treeViewer != null && !treeViewer.getTree().isDisposed()) {
        treeViewer.getTree().getDisplay().asyncExec(new Runnable() {
            public void run() {
                TreeViewer treeViewer = getTreeViewer();
                if (treeViewer != null && !treeViewer.getTree().isDisposed()) {
                    treeViewer.setInput(modelBuilder.buildTree(parseController.getRootNode()));
                }//from   www . j  av a 2  s.c  om
            }
        });
    }
}

From source file:com.safi.workshop.sqlexplorer.dbstructure.DBTreeActionGroup.java

License:Open Source License

/**
 * Construct a new action group for a given database structure outline.
 * /*ww w. j  a v a 2s  . c o m*/
 * @param treeViewer
 *          TreeViewer used for this outline.
 */
public DBTreeActionGroup(TreeViewer treeViewer) {

    _treeViewer = treeViewer;
    treeViewer.getTree().addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            runDefault();

        }

    });
}

From source file:com.safi.workshop.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./*  w ww  .jav  a2 s  . c  om*/
 * 
 * @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);
        }
    });
}

From source file:com.siteview.mde.internal.ui.editor.monitor.FormFilteredTree.java

License:Open Source License

protected TreeViewer doCreateTreeViewer(Composite parent, int style) {
    TreeViewer viewer = super.doCreateTreeViewer(parent, toolkit.getBorderStyle() | style);
    toolkit.paintBordersFor(viewer.getTree().getParent());
    return viewer;
}

From source file:com.siteview.mde.internal.ui.parts.TreeMessageDialog.java

License:Open Source License

protected Control createCustomArea(Composite parent) {
    TreeViewer viewer = new TreeViewer(parent, SWT.BORDER);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.heightHint = 150;//  ww w . j  a v a 2  s .co  m
    viewer.getTree().setLayoutData(gd);
    viewer.setContentProvider(fContentProvider);
    viewer.setLabelProvider(fLabelProvider);
    viewer.setInput(fInput);
    applyDialogFont(viewer.getControl());
    return viewer.getControl();
}

From source file:com.synflow.ngDesign.ui.internal.handlers.NewMenuHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    IWorkbenchPart part = HandlerUtil.getActivePartChecked(event);
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
    if (ProjectExplorer.VIEW_ID.equals(part.getSite().getId())) {
        ProjectExplorer explorer = (ProjectExplorer) part.getAdapter(ProjectExplorer.class);
        INavigatorContentService service = explorer.getNavigatorContentService();

        // creates and fills a menu manager
        MenuManager menuManager = new MenuManager();
        ProjectExplorerNewActionProvider provider = new ProjectExplorerNewActionProvider();

        ISelection selection = HandlerUtil.getCurrentSelectionChecked(event);
        provider.setContext(new ActionContext(selection));
        provider.init(window, service);//from  w w  w  . j  av  a 2 s .co  m
        provider.fillContextMenu(menuManager);

        // create context menu and show it
        TreeViewer commonViewer = explorer.getCommonViewer();
        showMenu(menuManager, commonViewer.getTree());
    }

    return null;
}

From source file:com.testify.ecfeed.ui.editor.TestCasesViewer.java

License:Open Source License

@Override
protected TreeViewer createTreeViewer(Composite parent, int style) {
    TreeViewer treeViewer = super.createTreeViewer(parent, style);
    final Tree tree = treeViewer.getTree();
    tree.addListener(SWT.Selection, new Listener() {
        @Override//from ww w .j  a v  a 2  s . c  o m
        public void handleEvent(Event event) {
            if (event.detail == SWT.CHECK) {
                fExecuteSelectedButton.setEnabled(executionEnabled());
            }
        }
    });
    return treeViewer;
}

From source file:com.twinsoft.convertigo.eclipse.property_editors.XmlQNameEditorComposite.java

License:Open Source License

public XmlQNameEditorComposite(final Composite parent, int style, AbstractDialogCellEditor cellEditor) {
    super(parent, style, cellEditor);

    try {//  ww  w .  j  av a  2s .  co m
        String propertyName = "" + cellEditor.propertyDescriptor.getId();
        DatabaseObject dbo = cellEditor.databaseObjectTreeObject.getObject();
        Project project = dbo.getProject();
        collection = Engine.theApp.schemaManager.getSchemasForProject(project.getName());
        currentNamespace = project.getTargetNamespace();
        if ("xmlTypeAffectation".equals(propertyName)) {
            // useComplexType = true; // TODO: add complex type support for input variables 
            useSimpleType = true;
        } else {
            useComplexType = "xmlComplexTypeAffectation".equals(propertyName);
            useSimpleType = "xmlSimpleTypeAffectation".equals(propertyName);
        }
        useType = useComplexType || useSimpleType;
        useRef = "xmlElementRefAffectation".equals(propertyName);
    } catch (Exception e) {
        e.printStackTrace();
    }

    this.setLayoutData(new GridData(GridData.FILL_BOTH));
    this.setLayout(new GridLayout(1, false));

    new Label(this, style).setText("Existing objects");

    final TreeViewer treeViewer = new TreeViewer(this);
    treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    treeViewer.setContentProvider(new SchemaViewContentProvider() {

        @Override
        protected void filter(XmlSchemaObject xso, List<XmlSchemaObject> children, XmlSchemaObject subObject) {
            if (xso instanceof XmlSchema) {
                if ((useSimpleType && subObject instanceof XmlSchemaSimpleType)
                        || useComplexType && subObject instanceof XmlSchemaComplexType
                        || useRef && subObject instanceof XmlSchemaElement) {
                    super.filter(xso, children, subObject);
                }
            } else {
                super.filter(xso, children, subObject);
            }
        }

        @Override
        public Object[] getChildren(Object object) {
            Object[] children = super.getChildren(object);
            for (Object child : children) {
                if (child instanceof NamedList) {
                    if (useType && "Types".equals(((NamedList) child).getName())) {
                        return new Object[] { child };
                    } else if (useRef && "Elements".equals(((NamedList) child).getName())) {
                        return new Object[] { child };
                    }
                } else {
                    return children;
                }
            }
            return children;
        }

    });

    treeViewer.setComparer(new IElementComparer() {

        public int hashCode(Object element) {
            return element.hashCode();
        }

        public boolean equals(Object a, Object b) {
            return a == b;
        }

    });

    DecoratingLabelProvider dlp = new DecoratingLabelProvider(new SchemaViewLabelProvider(),
            new SchemaViewLabelDecorator());
    treeViewer.setLabelProvider(dlp);
    treeViewer.setInput(collection);
    treeViewer.expandToLevel(3);

    new Label(this, SWT.NONE).setText("Namespace");

    tNamespace = new Text(this, SWT.NONE);
    tNamespace.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    tNamespace.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    tNamespace.setEditable(false);

    new Label(this, SWT.NONE).setText("Local name");

    tLocalName = new Text(this, SWT.NONE);
    tLocalName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    final Button bNone = new Button(this, SWT.NONE);
    bNone.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    bNone.setText("No " + (useComplexType ? "type" : (useRef ? "element" : "object")));

    new Label(this, SWT.NONE).setText("Summary");

    lSummary = new Label(this, SWT.WRAP);
    lSummary.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    lSummary.setText("No change.");
    lSummary.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_LIST_BACKGROUND));

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            TreePath[] path = ((ITreeSelection) event.getSelection()).getPaths();

            XmlSchemaObject object = null;
            QName qName = null;
            if (path.length > 0 && path[0].getSegmentCount() > 2
                    && path[0].getSegment(2) instanceof XmlSchemaType) {
                object = (XmlSchemaType) path[0].getSegment(2);
                qName = ((XmlSchemaType) object).getQName();
            }
            if (path.length > 0 && path[0].getSegmentCount() > 2
                    && path[0].getSegment(2) instanceof XmlSchemaElement) {
                object = (XmlSchemaElement) path[0].getSegment(2);
                qName = ((XmlSchemaElement) object).getQName();
            }

            if (object != null) {
                String obText = (useType ? "type" : (useRef ? "element" : "object"));
                tLocalName.setText(qName.getLocalPart());
                tNamespace.setText(qName.getNamespaceURI());
                updateLabel(obText, qName, object);
                XmlQNameEditorComposite.this.layout(true);
            }
        }
    });

    bNone.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            tNamespace.setText("");
            tLocalName.setText("");
            lSummary.setText("No " + (useType ? "type" : (useRef ? "element" : "object")) + " set.");
            lSummary.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND));
        }
    });

    tLocalName.addVerifyListener(new VerifyListener() {
        public void verifyText(VerifyEvent e) {
            if (e.text.contains(" ")) {
                e.doit = false;
            }
        }
    });

    tLocalName.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            String txt = tLocalName.getText();
            if (txt.length() == 0) {
                //bNone.notifyListeners(SWT.Selection, null); // commented to prevent stack over flow
            } else {
                tNamespace.setText(currentNamespace);
                QName qName = new QName(currentNamespace, txt);
                XmlSchemaType type = collection.getTypeByQName(qName);
                XmlSchemaElement element = collection.getElementByQName(qName);

                XmlSchemaObject object = type == null ? element : type;
                String obText = (useType ? "type" : (useRef ? "element" : "object"));
                if (object == null) {
                    lSummary.setText("Create the dynamic " + obText + " : \n" + qName.toString());
                    lSummary.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_DARK_MAGENTA));
                    XmlQNameEditorComposite.this.layout(true);
                } else {
                    updateLabel(obText, qName, object);
                }
            }
        }
    });

    if (useSimpleType) {
        tLocalName.setEnabled(false);
        bNone.setEnabled(false);
    }

    XmlQName schemaDefinition = (XmlQName) cellEditor.getValue();

    if (schemaDefinition != null) {
        QName qName = schemaDefinition.getQName();

        if (useType) {
            XmlSchemaType type = collection.getTypeByQName(qName);
            if (type != null) {
                treeViewer.setSelection(new StructuredSelection(type), true);
            }
        }

        if (useRef) {
            XmlSchemaElement element = collection.getElementByQName(qName);
            if (element != null) {
                treeViewer.setSelection(new StructuredSelection(element), true);
            }
        }
    }
}