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:Snippet048TreeViewerTabWithCheckboxFor3_3.java

License:Open Source License

public Snippet048TreeViewerTabWithCheckboxFor3_3(final Shell shell) {
    final TreeViewer v = new TreeViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    v.getTree().setLinesVisible(true);/*from   ww  w.ja v a  2s  . c  o m*/
    v.getTree().setHeaderVisible(true);

    final TreeViewerFocusCellManager mgr = new TreeViewerFocusCellManager(v,
            new FocusCellOwnerDrawHighlighter(v));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && (event.keyCode == SWT.CR || event.character == ' '))
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TreeViewerEditor.create(v, mgr, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
    final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(v.getTree());

    TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 1");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return "Column 1 => " + element.toString();
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return false;
        }

        protected CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        protected Object getValue(Object element) {
            return ((MyModel) element).counter + "";
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = Integer.parseInt(value.toString());
            v.update(element, null);
        }
    });

    column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 2");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return "Column 2 => " + element.toString();
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return true;
        }

        protected CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        protected Object getValue(Object element) {
            return ((MyModel) element).counter + "";
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = Integer.parseInt(value.toString());
            v.update(element, null);
        }
    });

    column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 3");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return ((MyModel) element).bool + "";
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return true;
        }

        protected CellEditor getCellEditor(Object element) {
            return checkboxCellEditor;
        }

        protected Object getValue(Object element) {
            return new Boolean(((MyModel) element).bool);
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).bool = ((Boolean) value).booleanValue();
            v.update(element, null);
        }
    });

    v.setContentProvider(new MyContentProvider());
    v.setInput(createModel());
    v.getControl().addTraverseListener(new TraverseListener() {

        public void keyTraversed(TraverseEvent e) {
            if ((e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
                    && mgr.getFocusCell().getColumnIndex() == 2) {
                ColumnViewerEditor editor = v.getColumnViewerEditor();
                ViewerCell cell = mgr.getFocusCell();

                try {
                    Method m = ColumnViewerEditor.class.getDeclaredMethod("processTraverseEvent",
                            new Class[] { int.class, ViewerRow.class, TraverseEvent.class });
                    m.setAccessible(true);
                    m.invoke(editor,
                            new Object[] { new Integer(cell.getColumnIndex()), cell.getViewerRow(), e });
                } catch (SecurityException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (NoSuchMethodException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IllegalArgumentException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IllegalAccessException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (InvocationTargetException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }

    });
}

From source file:Snippet015CustomTooltipsForTree.java

License:Open Source License

/**
 * @param args//  w  w  w .  j a va 2  s  .  c  o  m
 */
public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());

    TreeViewer v = new TreeViewer(shell, SWT.FULL_SELECTION);
    v.getTree().setLinesVisible(true);
    v.getTree().setHeaderVisible(true);
    ColumnViewerToolTipSupport.enableFor(v);

    v.setContentProvider(new MyContentProvider());

    CellLabelProvider labelProvider = new CellLabelProvider() {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipText(java.lang.Object)
         */
        public String getToolTipText(Object element) {
            return "Tooltip (" + element + ")";
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipShift(java.lang.Object)
         */
        public Point getToolTipShift(Object object) {
            return new Point(5, 5);
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipDisplayDelayTime(java.lang.Object)
         */
        public int getToolTipDisplayDelayTime(Object object) {
            return 1000;
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipTimeDisplayed(java.lang.Object)
         */
        public int getToolTipTimeDisplayed(Object object) {
            return 50000;
        }

        public void update(ViewerCell cell) {
            cell.setText(cell.getElement().toString());

        }
    };

    v.setLabelProvider(labelProvider);
    v.setInput("");

    shell.setSize(200, 200);
    shell.open();

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }

    display.dispose();
}

From source file:ac.soton.eventb.classdiagrams.diagram.part.ClassdiagramsElementChooserDialog.java

License:Open Source License

/**
 * @generated/*from   ww w . ja  v  a 2 s .c o m*/
 */
private void createModelBrowser(Composite composite) {
    myTreeViewer = new TreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 300;
    layoutData.widthHint = 300;
    myTreeViewer.getTree().setLayoutData(layoutData);
    myTreeViewer.setContentProvider(new ModelElementsTreeContentProvider());
    myTreeViewer.setLabelProvider(new ModelElementsTreeLabelProvider());
    myTreeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
    myTreeViewer.addFilter(new ModelFilesFilter());
    myTreeViewer.addSelectionChangedListener(new OkButtonEnabler());
}

From source file:ac.soton.eventb.classdiagrams.diagram.part.ModelElementSelectionPage.java

License:Open Source License

/**
 * @generated//from   w  ww  .j a v  a  2s.c o m
 */
public void createControl(Composite parent) {
    initializeDialogUnits(parent);

    Composite plate = new Composite(parent, SWT.NONE);
    plate.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;
    plate.setLayout(layout);
    setControl(plate);

    Label label = new Label(plate, SWT.NONE);
    label.setText(getSelectionTitle());
    label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));

    modelViewer = new TreeViewer(plate, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 300;
    layoutData.widthHint = 300;
    modelViewer.getTree().setLayoutData(layoutData);
    modelViewer.setContentProvider(new AdapterFactoryContentProvider(
            ClassdiagramsDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()));
    modelViewer.setLabelProvider(new AdapterFactoryLabelProvider(
            ClassdiagramsDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()));
    if (selectedModelElement != null) {
        modelViewer.setInput(selectedModelElement.eResource());
        modelViewer.setSelection(new StructuredSelection(selectedModelElement));
    }
    modelViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ModelElementSelectionPage.this.updateSelection((IStructuredSelection) event.getSelection());
        }
    });

    setPageComplete(validatePage());
}

From source file:ac.soton.fmusim.components.diagram.part.ModelElementSelectionPage.java

License:Open Source License

/**
 * @generated// w ww  .ja va  2 s  .  c  om
 */
public void createControl(Composite parent) {
    initializeDialogUnits(parent);

    Composite plate = new Composite(parent, SWT.NONE);
    plate.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;
    plate.setLayout(layout);
    setControl(plate);

    Label label = new Label(plate, SWT.NONE);
    label.setText(getSelectionTitle());
    label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));

    modelViewer = new TreeViewer(plate, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 300;
    layoutData.widthHint = 300;
    modelViewer.getTree().setLayoutData(layoutData);
    modelViewer.setContentProvider(new AdapterFactoryContentProvider(
            ComponentsDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()));
    modelViewer.setLabelProvider(new AdapterFactoryLabelProvider(
            ComponentsDiagramEditorPlugin.getInstance().getItemProvidersAdapterFactory()));
    if (selectedModelElement != null) {
        modelViewer.setInput(selectedModelElement.eResource());
        modelViewer.setSelection(new StructuredSelection(selectedModelElement));
    }
    modelViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ModelElementSelectionPage.this.updateSelection((IStructuredSelection) event.getSelection());
        }
    });

    setPageComplete(validatePage());
}

From source file:alma.acs.eventbrowser.parts.ChannelTreePart.java

License:Open Source License

/**
 * See http://www.vogella.com/articles/EclipseJFaceTree/article.html
 *///  w  w w. jav a 2s. c  o m
@PostConstruct
public void postConstruct(Composite parent, final IEclipseContext context, EMenuService menuService,
        IEventBroker eventBroker) {
    try {
        eventModel = EventModel.getInstance();
    } catch (Throwable thr) {
        thr.printStackTrace();
        IStatus someStatus = statusReporter.newStatus(IStatus.ERROR, "Connection with NCs failed.", thr);
        statusReporter.report(someStatus, StatusReporter.SHOW);
        throw new RuntimeException(thr);
    }
    //      eventModel.getLogger().info("ChannelTreePart got EventModel instance.");

    statusLineWriter = new StatusLineWriter(eventBroker);

    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.setContentProvider(new ChannelTreeContentProvider());
    viewer.setLabelProvider(new ChannelTreeLabelProvider());
    // Expand the tree. '2' means to show only the visible top-level nodes.
    viewer.setAutoExpandLevel(2);

    viewer.setComparator(new ServiceViewerComparator());

    // Provide the root node to the ContentProvider
    viewer.setInput(eventModel.getNotifyServicesRoot());

    // Expand with doubleclick
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection();
            Object selectedNode = thisSelection.getFirstElement();
            viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode));
        }
    });

    // Attach a selection listener to our tree that will post selections to the ESelectionService
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            selectionService
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });

    // TODO: Take care of help system. Here's the E3 code:
    //      // Create the help context id for the viewer's control
    //      PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "alma.acs.eventbrowser.viewer");

    hookContextMenu(menuService);

    // TODO: this could be used by handlers etc, currently it's not
    context.set(ChannelTreePart.class, this);
}

From source file:at.bitandart.zoubek.mervin.patchset.history.PatchSetHistoryView.java

License:Open Source License

@PostConstruct
public void postConstruct(Composite parent, EModelService modelService, MPart part) {

    syncMenuAndToolbarItemState(modelService, part);

    initializeColors();/*from   w  ww .ja v  a  2  s . c  o m*/
    highlightStyler = new HighlightStyler(display);

    mainPanel = new Composite(parent, SWT.NONE);
    mainPanel.setLayout(new GridLayout());

    // progress information panel

    progressPanel = new ProgressPanel(mainPanel, SWT.BORDER);
    progressPanel.setBackground(progressBackgroundColor);
    progressPanel.setForeground(progressForegroundColor);
    progressPanel.setVisible(false);
    progressPanel.setLayout(new GridLayout());
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
    gridData.exclude = true;
    progressPanel.setLayoutData(gridData);

    // initialize tree viewer

    historyTreeViewer = new TreeViewer(mainPanel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    historyTreeViewer.setComparator(new ViewerComparator());
    historyTreeViewer.setContentProvider(new PatchSetHistoryContentProvider());
    historyTreeViewer.addSelectionChangedListener(new HighlightSelectionListener(this));
    Tree histroryTree = historyTreeViewer.getTree();
    histroryTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    histroryTree.setLinesVisible(false);
    histroryTree.setHeaderVisible(true);
    histroryTree.addMouseTrackListener(new HighlightHoveredTreeItemMouseTracker(this));

    // set up all columns of the tree

    labelColumn = new TreeViewerColumn(historyTreeViewer, SWT.NONE);
    labelColumn.getColumn().setResizable(true);
    labelColumn.getColumn().setMoveable(true);
    labelColumn.getColumn().setText("Diff");
    labelColumn.getColumn().setWidth(400);

    DiffNameColumnLabelProvider labelColumnLabelProvider = new DiffNameColumnLabelProvider();
    labelColumn.setLabelProvider(labelColumnLabelProvider);
    labelColumn.getColumn().addSelectionListener(
            new ThreeWayObjectTreeViewerComparator(historyTreeViewer, labelColumn, labelColumnLabelProvider));

    viewInitialized = true;

    // refresh the viewer highlights if highlighting is requested
    highlightService.addHighlightServiceListener(new IReviewHighlightServiceListener() {

        @Override
        public void elementRemoved(ModelReview review, Object element) {

            historyTreeViewer.refresh();

        }

        @Override
        public void elementAdded(ModelReview review, Object element) {

            historyTreeViewer.refresh();

        }
    });
}

From source file:at.bitandart.zoubek.mervin.review.DiagramDiffDebugView.java

License:Open Source License

private void createViewModelTab(FormToolkit toolkit, CTabFolder tabFolder) {
    CTabItem tabItem = new CTabItem(tabFolder, SWT.NULL);
    tabItem.setText("View Model");
    Composite body = toolkit.createComposite(tabFolder);
    body.setLayout(new GridLayout());
    tabItem.setControl(body);//from  w w w  . j  a va  2  s .  c  o  m
    tabFolder.setSelection(tabItem);

    modelTreeViewer = new TreeViewer(body, SWT.VIRTUAL);
    modelTreeViewer.setUseHashlookup(true);
    Tree modelTree = modelTreeViewer.getTree();
    modelTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    modelTreeViewer.setContentProvider(new EmfAndReflectionContentProvider(modelTreeViewer));
    modelTreeViewer.setLabelProvider(new EmfAndReflectionCellLabelProvider());

    Menu contextMenu = new Menu(modelTree);
    MenuItem refreshItem = new MenuItem(contextMenu, SWT.NULL);
    refreshItem.setText("refresh");
    refreshItem.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            modelTreeViewer.refresh();
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    modelTree.setMenu(contextMenu);
}

From source file:at.bitandart.zoubek.mervin.review.DiagramDiffDebugView.java

License:Open Source License

private void createEditPartTab(FormToolkit toolkit, CTabFolder tabFolder) {
    CTabItem tabItem = new CTabItem(tabFolder, SWT.NULL);
    tabItem.setText("Edit Parts");
    Composite body = toolkit.createComposite(tabFolder);
    body.setLayout(new GridLayout());
    tabItem.setControl(body);//  w w  w .ja  v a2  s  . c  om

    editPartTreeViewer = new TreeViewer(body, SWT.VIRTUAL);
    editPartTreeViewer.setUseHashlookup(true);
    Tree editPartTree = editPartTreeViewer.getTree();
    editPartTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    editPartTreeViewer.setContentProvider(new EmfAndReflectionContentProvider(editPartTreeViewer));
    editPartTreeViewer.setLabelProvider(new EmfAndReflectionCellLabelProvider());

    Menu contextMenu = new Menu(editPartTree);
    MenuItem refreshItem = new MenuItem(contextMenu, SWT.NULL);
    refreshItem.setText("refresh");
    refreshItem.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            editPartTreeViewer.refresh();
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    editPartTree.setMenu(contextMenu);

}

From source file:at.bitandart.zoubek.mervin.review.DiagramDiffDebugView.java

License:Open Source License

private void createFigureTab(FormToolkit toolkit, CTabFolder tabFolder) {
    CTabItem tabItem = new CTabItem(tabFolder, SWT.NULL);
    tabItem.setText("Figures");
    Composite body = toolkit.createComposite(tabFolder);
    body.setLayout(new GridLayout());
    tabItem.setControl(body);//from   www.ja  va  2 s .co  m

    figureTreeViewer = new TreeViewer(body, SWT.VIRTUAL);
    figureTreeViewer.setUseHashlookup(true);
    Tree figureTree = figureTreeViewer.getTree();
    figureTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    figureTreeViewer.setContentProvider(new EmfAndReflectionContentProvider(figureTreeViewer));
    figureTreeViewer.setLabelProvider(new EmfAndReflectionCellLabelProvider());

    Menu contextMenu = new Menu(figureTree);
    MenuItem refreshItem = new MenuItem(contextMenu, SWT.NULL);
    refreshItem.setText("refresh");
    refreshItem.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            figureTreeViewer.refresh();
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    figureTree.setMenu(contextMenu);
}