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

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

Introduction

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

Prototype

public TreeViewer(Composite parent, int style) 

Source Link

Document

Creates a tree viewer on a newly-created tree control under the given parent.

Usage

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./*from  w  ww  .  j a  v 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);
        }
    });
}

From source file:com.safi.workshop.sqlexplorer.preview.XmlPreviewer.java

License:Open Source License

public void createControls(Composite parent, final Object data) throws ExplorerException {
    Element rootElem = getXml(data);
    if (rootElem == null)
        return;//from  w w  w .  ja va 2s .  co  m
    final Object[] root = new Object[] { rootElem };

    TreeViewer tree = new TreeViewer(parent, SWT.SINGLE);
    tree.setContentProvider(new ITreeContentProvider() {
        public void dispose() {
        }

        /**
         * Called to get the top level items
         */
        public Object[] getChildren(Object parentElement) {
            return root;
        }

        /**
         * Called to get the item's children
         */
        public Object[] getElements(Object inputElement) {
            Element elem = (Element) inputElement;
            return elem.elements().toArray();
        }

        public boolean hasChildren(Object element) {
            Element elem = (Element) element;
            List<Element> list = elem.elements();
            return list != null && list.size() > 0;
        }

        public Object getParent(Object element) {
            Element elem = (Element) element;
            return elem.getParent();
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // Nothing
        }
    });

    tree.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object obj) {
            Element elem = (Element) obj;
            StringBuffer result = new StringBuffer();
            result.append('<');
            result.append(elem.getName());

            for (Object o : elem.attributes()) {
                Attribute attr = (Attribute) o;
                result.append(' ').append(attr.getName()).append('=').append('\"').append(attr.getValue())
                        .append('\"');
            }
            if (!elem.hasContent())
                result.append('/');
            result.append('>');
            return result.toString();
        }
    });

    tree.expandToLevel(1);
}

From source file:com.sap.dirigible.ide.debug.ui.DebugView.java

License:Open Source License

private void createSessionsTable(final Composite holder) {
    sessionsTreeViewer = new TreeViewer(holder, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    sessionsTreeViewer.getTree().setHeaderVisible(true);

    Tree tree = sessionsTreeViewer.getTree();

    TreeColumn column = new TreeColumn(tree, SWT.LEFT);
    column.setText(SESSIONS);/* w w  w.  j  a v a 2s.  c om*/
    column.setWidth(150);

    sessionsContentProvider = new SessionsViewContentProvider();
    sessionsTreeViewer.setContentProvider(sessionsContentProvider);
    sessionsTreeViewer.setLabelProvider(new SessionsViewLabelProvider());
    sessionsTreeViewer.setInput(getViewSite());
    sessionsTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (!event.getSelection().isEmpty() && event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection structuredSelection = (IStructuredSelection) event.getSelection();
                String sessionInfo = (String) structuredSelection.getFirstElement();
                StringTokenizer tokenizer = new StringTokenizer(sessionInfo, CommonParameters.DEBUG_SEPARATOR);
                String userId = tokenizer.nextToken();
                String sessionId = tokenizer.nextToken();
                String executionId = tokenizer.nextToken();
                DebugModel debugModel = DebugModelFacade.getInstance().getDebugModel(executionId);
                DebugModelFacade.setActiveDebugModel(debugModel);
                refresh(debugModel);
                waitForMetadata(debugModel);
            }

        }
    });
}

From source file:com.sap.dirigible.ide.debug.ui.DebugView.java

License:Open Source License

private void createVariablesTable(final Composite holder) {
    variablesTreeViewer = new TreeViewer(holder, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    variablesTreeViewer.getTree().setHeaderVisible(true);

    Tree tree = variablesTreeViewer.getTree();

    TreeColumn column = new TreeColumn(tree, SWT.LEFT);
    column.setText(VARIABLES);//from w  w  w  .  j a v  a  2 s. co m
    column.setWidth(150);

    column = new TreeColumn(tree, SWT.LEFT);
    column.setText(VALUES);
    column.setWidth(595);

    variablesContentProvider = new VariablesViewContentProvider();
    variablesTreeViewer.setContentProvider(variablesContentProvider);
    variablesTreeViewer.setLabelProvider(new VariablesViewLabelProvider());
    variablesTreeViewer.setInput(getViewSite());
}

From source file:com.sap.dirigible.ide.debug.ui.DebugView.java

License:Open Source License

private void createBreakpointsTable(final Composite holder) {
    breakpointsTreeViewer = new TreeViewer(holder, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    breakpointsTreeViewer.getTree().setHeaderVisible(true);

    Tree tree = breakpointsTreeViewer.getTree();

    TreeColumn column = new TreeColumn(tree, SWT.LEFT);
    column.setText(FILE);/*  w  w w  .  j a  v a  2s .  com*/
    column.setWidth(150);

    column = new TreeColumn(breakpointsTreeViewer.getTree(), SWT.LEFT);
    column.setText(ROW);
    column.setWidth(50);

    column = new TreeColumn(breakpointsTreeViewer.getTree(), SWT.LEFT);
    column.setText(SOURCE);
    column.setWidth(350);

    breakpointsContentProvider = new BreakpointViewContentProvider();
    breakpointsTreeViewer.setContentProvider(breakpointsContentProvider);
    breakpointsTreeViewer.setLabelProvider(new BreakpointViewLabelProvider());
    breakpointsTreeViewer.setInput(getViewSite());
    breakpointsTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (!event.getSelection().isEmpty() && event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection structuredSelection = (IStructuredSelection) event.getSelection();
                BreakpointMetadata breakpointMetadata = (BreakpointMetadata) structuredSelection
                        .getFirstElement();
                openEditor(CommonUtils.formatToIDEPath(CommonParameters.SCRIPTING_CONTENT_FOLDER,
                        breakpointMetadata.getFullPath()), breakpointMetadata.getRow());
            }
        }
    });
}

From source file:com.sap.dirigible.ide.generic.ui.GenericListView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it./*from  ww w. j a  v  a 2 s  .c o m*/
 */
public void createPartControl(Composite parent) {
    // PatternFilter filter = new PatternFilter();
    // FilteredTree tree = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL
    // | SWT.V_SCROLL, filter, true);
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTree().setHeaderVisible(true);
    TreeColumn column = new TreeColumn(viewer.getTree(), SWT.LEFT);
    column.setText(NAME);
    column.setWidth(150);
    column = new TreeColumn(viewer.getTree(), SWT.LEFT);
    column.setText(LOCATION);
    column.setWidth(500);

    viewer.setContentProvider(new GenericListViewContentProvider(this));
    viewer.setLabelProvider(new GenericListViewLabelProvider());
    viewer.setSorter(new NameSorter());
    viewer.setInput(getViewSite());
    makeActions();
    hookContextMenu();
    contributeToActionBars();
}

From source file:com.sap.dirigible.ide.repository.ui.view.ResourceHistoryView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it.//from  w ww .ja  va2  s . c om
 */
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    viewer.setContentProvider(new ViewContentProvider());
    viewer.setLabelProvider(new ViewLabelProvider());
    viewer.setSorter(new VersionSorter());
    Tree tree = viewer.getTree();
    tree.setHeaderVisible(true);
    createTreeHeader(tree);
    viewer.setInput(getViewSite());
    makeActions();
    hookDoubleClickAction();
}

From source file:com.sap.dirigible.ide.services.security.manager.views.SecurityManagerView.java

License:Open Source License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it./*from w  ww  . ja  va  2 s  . c om*/
 */
public void createPartControl(Composite parent) {
    // PatternFilter filter = new PatternFilter();
    // FilteredTree tree = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL
    // | SWT.V_SCROLL, filter, true);
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTree().setHeaderVisible(true);
    TreeColumn column = new TreeColumn(viewer.getTree(), SWT.LEFT);
    column.setText(LOCATION);
    column.setWidth(300);
    column = new TreeColumn(viewer.getTree(), SWT.LEFT);
    column.setText(ROLES);
    column.setWidth(500);

    viewer.setContentProvider(new SecurityViewContentProvider(this));
    viewer.setLabelProvider(new SecurityViewLabelProvider());
    viewer.setSorter(new NameSorter());
    viewer.setInput(getViewSite());
    makeActions();
    hookContextMenu();
    contributeToActionBars();
}

From source file:com.sap.dirigible.ide.template.ui.db.wizard.DataStructureTemplateStructurePage.java

License:Open Source License

private void createColumnsField(Composite parent) {
    final Label label = new Label(parent, SWT.NONE);
    label.setText(COLUMN_DEFINITIONS);//from   www.  j  a v  a  2 s .  c  om
    label.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, false));

    typeViewer = new TreeViewer(parent,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
    typeViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    typeViewer.setContentProvider(new DataStructureTemplateStructurePageViewContentProvider());
    typeViewer.setLabelProvider(new DataStructureTemplateStructurePageLabelProvider());
    Tree tree = typeViewer.getTree();
    tree.setHeaderVisible(true);
    createTreeHeader(tree);
    columnDefinitions = createColumnDefinitions();
    typeViewer.setInput(columnDefinitions);
    typeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateColumnDefinitions();
            checkPageStatus();
        }
    });
    updateColumnDefinitions();
    checkPageStatus();

}

From source file:com.sap.dirigible.ide.template.ui.ed.view.ExtensionsView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    viewer.setContentProvider(new ExtensionsContentProvider(extensionManager, viewer.getControl().getShell()));
    viewer.setLabelProvider(new ExtensionsLabelProvider());
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(getExtensionPoints());

    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override/*from www .j a v a2 s  .c  o m*/
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object firstElement = selection.getFirstElement();

            if (firstElement != null) {
                if (firstElement instanceof ExtensionPointDefinition) {
                    ExtensionPointDefinition extensionPoint = (ExtensionPointDefinition) firstElement;
                    openEditor(CommonUtils.formatToIDEPath(CommonParameters.EXTENSION_CONTENT_FOLDER,
                            extensionPoint.getLocation()) + CommonParameters.EXTENSION_POINT_EXTENSION);
                } else if (firstElement instanceof ExtensionDefinition) {
                    ExtensionDefinition extension = (ExtensionDefinition) firstElement;
                    openEditor(CommonUtils.formatToIDEPath(CommonParameters.EXTENSION_CONTENT_FOLDER,
                            extension.getLocation()) + CommonParameters.EXTENSION_EXTENSION);
                }
            }
        }
    });
}