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.emf.ecoretools.legacy.properties.internal.sections.EAnnotationPropertySection.java

License:Open Source License

private TreeViewer createTreeViewer(Composite parent, GridData layoutData) {
    TreeViewer treeViewer = new TreeViewer(parent, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    treeViewer.getTree().setLinesVisible(true);
    treeViewer.getTree().setHeaderVisible(true);
    treeViewer.getTree().setLayoutData(layoutData);

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer,
            new FocusCellOwnerDrawHighlighter(treeViewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(treeViewer) {

        @Override//  w  w  w.j  a  va  2  s .  com
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TreeViewerEditor.create(treeViewer, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    return treeViewer;
}

From source file:org.eclipse.emf.ecoretools.registration.view.RegisteredPackageView.java

License:Open Source License

/**
 * used by createPartControl Creates the columns in the view
 * // w  w  w  .  j a  va2s. c  o m
 * @param treeViewer
 */
private void createColumns(TreeViewer treeViewer) {
    TreeColumn column1 = new TreeColumn(treeViewer.getTree(), SWT.LEFT);
    column1.setText(Messages.RegisteredPackageView_RegisteredURI);
    column1.setWidth(300);
    column1.setResizable(true);
    column1.addSelectionListener(new PackageNsURIColumnSelectionListener(treeViewer));

    TreeColumn column2 = new TreeColumn(treeViewer.getTree(), SWT.LEFT);
    column2.setText(Messages.RegisteredPackageView_PackageName);
    column2.setWidth(120);
    column2.setResizable(true);
    column2.addSelectionListener(new PackageNameColumnSelectionListener(treeViewer));

    TreeColumn column3 = new TreeColumn(treeViewer.getTree(), SWT.LEFT);
    column3.setText(Messages.RegisteredPackageView_Origin);
    column3.setWidth(350);
    column3.setResizable(true);
}

From source file:org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer.java

License:Open Source License

/**
 * Configures the passed tree viewer.//from   www  . j a  va 2  s  .c  o  m
 *
 * @param treeViewer the {@link TreeViewer} to configure
 * @param editorComposite the composite of the editor
 */
protected void setupTreeViewer(final TreeViewer treeViewer,

        final ScrolledComposite editorComposite) {
    treeViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return VCategorizableElement.class.isInstance(element)
                    && ((VCategorizableElement) element).isVisible();
        }
    });
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, true).hint(400, SWT.DEFAULT)
            .applyTo(treeViewer.getTree());

    final List<TreeEditor> editors = new ArrayList<TreeEditor>();

    final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
            ComposedAdapterFactory.Descriptor.Registry.INSTANCE);

    final AdapterFactoryContentProvider contentProvider = new AdapterFactoryContentProvider(adapterFactory) {

        @Override
        public boolean hasChildren(Object object) {

            final boolean hasChildren = super.hasChildren(object);
            if (hasChildren) {
                for (final Object o : getChildren(object)) {
                    for (final ViewerFilter viewerFilter : treeViewer.getFilters()) {
                        if (viewerFilter.select(treeViewer, object, o)) {
                            return true;
                        }
                    }
                }
            }
            return false;
        }

    };

    final TreeTableLabelProvider treeTableLabelProvider = getTreeLabelProvider(adapterFactory);
    treeViewer.getTree().addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent event) {
            contentProvider.dispose();
            treeTableLabelProvider.dispose();
            adapterFactory.dispose();
        }
    });

    treeViewer.setContentProvider(contentProvider);
    treeViewer.setLabelProvider(treeTableLabelProvider);

    treeViewer.addSelectionChangedListener(new TreeSelectionChangedListener(getViewModelContext(),
            editorComposite, getCategorizationElement(), treeViewer, editors));

    addTreeEditor(treeViewer, getVElement(), editors);

}

From source file:org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer.java

License:Open Source License

/**
 * Adds the tree editor./*from w ww.  j ava 2s .  c o  m*/
 *
 * @param treeViewer the tree viewer
 * @param view the view
 * @param editors the list of tree editors
 */
protected void addTreeEditor(final TreeViewer treeViewer, EObject view, final List<TreeEditor> editors) {
    // The text column
    final Tree tree = treeViewer.getTree();
    int maxActions = 0;
    final Iterator<EObject> viewContents = view.eAllContents();
    while (viewContents.hasNext()) {
        final EObject object = viewContents.next();
        if (VAbstractCategorization.class.isInstance(object)) {
            final VAbstractCategorization abstractCategorization = (VAbstractCategorization) object;
            if (maxActions < abstractCategorization.getActions().size()) {
                maxActions = abstractCategorization.getActions().size();
            }
        }
    }
    if (maxActions == 0) {
        return;
    }
    final TreeColumn columnText = new TreeColumn(tree, SWT.NONE);
    columnText.setWidth(300);
    columnText.setAlignment(SWT.FILL);

    for (int i = 0; i < maxActions; i++) {
        // The column
        final TreeColumn column = new TreeColumn(tree, SWT.NONE);
        column.setWidth(50);

        final TreeEditor editor = new TreeEditor(tree);
        // The editor must have the same size as the cell and must
        // not be any smaller than 50 pixels.
        editor.horizontalAlignment = SWT.CENTER;
        editor.grabHorizontal = true;
        editor.minimumWidth = 50;
        editor.setColumn(i + 1);

        editors.add(editor);
    }

    tree.addTreeListener(new TreeListener() {

        @Override
        public void treeExpanded(TreeEvent e) {
        }

        @Override
        public void treeCollapsed(TreeEvent e) {
            cleanUpTreeEditors(editors);
        }
    });

}

From source file:org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractJFaceTreeRenderer.java

License:Open Source License

/**
 * Adds the buttons.//from  w  w  w  . j a va 2  s. c o m
 *
 * @param treeViewer the tree viewer
 * @param treeSelection the tree selection
 * @param editors the list of tree editors
 */
protected void addButtons(final TreeViewer treeViewer, TreeSelection treeSelection, List<TreeEditor> editors) {

    cleanUpTreeEditors(editors);

    if (treeSelection.getPaths().length == 0) {
        return;
    }

    // Identify the selected row
    final TreeItem item = treeViewer.getTree().getSelection()[0];
    if (item == null) {
        return;
    }

    final VCategorizableElement object = (VCategorizableElement) treeSelection.getFirstElement();
    if (object.getECPActions() == null) {
        return;
    }
    for (int i = 0; i < object.getECPActions().size(); i++) {
        final ECPTreeViewAction action = (ECPTreeViewAction) object.getECPActions().get(i);
        final TreeEditor editor = editors.get(i);
        action.init(treeViewer, treeSelection, editor);
        action.execute();
    }
}

From source file:org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationElementRenderer.java

License:Open Source License

/**
 * Configures the passed tree viewer./*from   w w w.j  a  v  a 2  s  .  c  o  m*/
 * 
 * @param treeViewer the {@link TreeViewer} to configure
 * @param vCategorizationElement the {@link VCategorizationElement}
 * @param editorComposite the composite of the editor
 * @param viewModelContext the {@link ViewModelContext} to use
 */
protected void setupTreeViewer(final TreeViewer treeViewer, final VCategorizationElement vCategorizationElement,
        final ScrolledComposite editorComposite, final ViewModelContext viewModelContext) {
    treeViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return VCategorizableElement.class.isInstance(element)
                    && ((VCategorizableElement) element).isVisible();
        }
    });
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, true).hint(400, SWT.DEFAULT)
            .applyTo(treeViewer.getTree());

    final List<TreeEditor> editors = new ArrayList<TreeEditor>();

    final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
            ComposedAdapterFactory.Descriptor.Registry.INSTANCE);

    final AdapterFactoryContentProvider contentProvider = new AdapterFactoryContentProvider(adapterFactory) {

        /**
         * {@inheritDoc}
         * 
         * @see org.eclipse.emf.ecp.internal.ui.view.emf.AdapterFactoryContentProvider#hasChildren(java.lang.Object)
         */
        @Override
        public boolean hasChildren(Object object) {

            final boolean hasChildren = super.hasChildren(object);
            if (hasChildren) {
                for (final Object o : getChildren(object)) {
                    for (final ViewerFilter viewerFilter : treeViewer.getFilters()) {
                        if (viewerFilter.select(treeViewer, object, o)) {
                            return true;
                        }
                    }
                }
            }
            return false;
        }

    };

    final TreeTableLabelProvider treeTableLabelProvider = new TreeTableLabelProvider(adapterFactory);
    treeViewer.getTree().addDisposeListener(new DisposeListener() {

        private static final long serialVersionUID = 1L;

        public void widgetDisposed(DisposeEvent event) {
            contentProvider.dispose();
            treeTableLabelProvider.dispose();
            adapterFactory.dispose();
        }
    });

    treeViewer.setContentProvider(contentProvider);
    treeViewer.setLabelProvider(treeTableLabelProvider);

    treeViewer.addSelectionChangedListener(new TreeSelectionChangedListener(viewModelContext, editorComposite,
            vCategorizationElement, treeViewer, editors));

    addTreeEditor(treeViewer, vCategorizationElement, editors);

}

From source file:org.eclipse.emf.ecp.view.spi.categorization.swt.SWTCategorizationElementRenderer.java

License:Open Source License

/**
 * Adds the tree editor.//from w  w w .  j  a  v  a  2s  .co m
 * 
 * @param treeViewer the tree viewer
 * @param view the view
 * @param editors the list of tree editors
 */
protected void addTreeEditor(final TreeViewer treeViewer, VCategorizationElement view,
        final List<TreeEditor> editors) {
    // The text column
    final Tree tree = treeViewer.getTree();
    final TreeColumn columnText = new TreeColumn(tree, SWT.NONE);
    columnText.setWidth(300);
    columnText.setAlignment(SWT.FILL);

    int maxActions = 0;
    final Iterator<EObject> viewContents = view.eAllContents();
    while (viewContents.hasNext()) {
        final EObject object = viewContents.next();
        if (VAbstractCategorization.class.isInstance(object)) {
            final VAbstractCategorization abstractCategorization = (VAbstractCategorization) object;
            if (maxActions < abstractCategorization.getActions().size()) {
                maxActions = abstractCategorization.getActions().size();
            }
        }
    }
    for (int i = 0; i < maxActions; i++) {
        // The column
        final TreeColumn column = new TreeColumn(tree, SWT.NONE);
        column.setWidth(50);

        final TreeEditor editor = new TreeEditor(tree);
        // The editor must have the same size as the cell and must
        // not be any smaller than 50 pixels.
        editor.horizontalAlignment = SWT.CENTER;
        editor.grabHorizontal = true;
        editor.minimumWidth = 50;
        editor.setColumn(i + 1);

        editors.add(editor);
    }

    tree.addTreeListener(new TreeListener() {

        private static final long serialVersionUID = -576684848162963651L;

        public void treeExpanded(TreeEvent e) {
        }

        public void treeCollapsed(TreeEvent e) {
            cleanUpTreeEditors(editors);
        }
    });

}

From source file:org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.TreeMasterDetailSWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}.//from w  w  w .  j a v a 2s.c o  m
 * 
 * @see org.eclipse.emf.ecp.ui.view.swt.internal.AbstractSWTRenderer#renderModel(org.eclipse.swt.widgets.Composite,
 *      org.eclipse.emf.ecp.view.model.VElement, org.eclipse.emf.ecp.view.context.ViewModelContext)
 */
@Override
protected List<RenderingResultRow<Control>> renderModel(Composite parent, VTreeMasterDetail vElement,
        ViewModelContext viewContext) throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {

    final SashForm sash = new SashForm(parent, SWT.HORIZONTAL);

    GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(sash);
    GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(sash);
    sash.setSashWidth(5);

    final Composite leftPanel = new Composite(sash, SWT.FILL);
    leftPanel.setLayout(GridLayoutFactory.fillDefaults().create());
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.FILL).grab(false, true).applyTo(leftPanel);
    leftPanel.setBackground(parent.getBackground());

    final ScrolledComposite rightPanel = new ScrolledComposite(sash, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
    rightPanel.setShowFocusedControl(true);
    rightPanel.setExpandVertical(true);
    rightPanel.setExpandHorizontal(true);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(rightPanel);
    rightPanel.setLayout(GridLayoutFactory.fillDefaults().create());
    rightPanel.setBackground(parent.getBackground());

    sash.setWeights(new int[] { 1, 3 });

    final EObject modelElement = viewContext.getDomainModel();
    final VView detailView = vElement.getDetailView();

    final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(modelElement);

    final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
            ComposedAdapterFactory.Descriptor.Registry.INSTANCE);

    final AdapterFactoryContentProvider adapterFactoryContentProvider = new AdapterFactoryContentProvider(
            adapterFactory) {

        /**
         * {@inheritDoc}
         * 
         * @see org.eclipse.emf.ecp.internal.ui.view.emf.AdapterFactoryContentProvider#getElements(java.lang.Object)
         */
        @Override
        public Object[] getElements(Object object) {

            return new Object[] { ((RootObject) object).getRoot() };
        }

    };
    final AdapterFactoryLabelProvider adapterFactoryLabelProvider = new AdapterFactoryLabelProvider(
            adapterFactory);

    final TreeViewer treeViewer = new TreeViewer(leftPanel);

    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).hint(100, SWT.DEFAULT)
            .applyTo(treeViewer.getTree());

    treeViewer.setContentProvider(adapterFactoryContentProvider);
    treeViewer.setLabelProvider(adapterFactoryLabelProvider);
    treeViewer.setInput(new RootObject(modelElement));

    // Drag and Drop
    addDragAndDropSupport(modelElement, treeViewer, editingDomain);

    // Selection Listener
    treeViewer.addSelectionChangedListener(new TreeMasterViewSelectionListener(rightPanel, detailView));

    fillContextMenu(treeViewer, editingDomain);

    final RenderingResultRow<Control> createRenderingResultRow = SWTRenderingHelper.INSTANCE
            .getResultRowFactory().createRenderingResultRow(parent);

    final List<RenderingResultRow<Control>> renderingList = new ArrayList<RenderingResultRow<Control>>();
    renderingList.add(createRenderingResultRow);

    treeViewer.getTree().addDisposeListener(new DisposeListener() {

        private static final long serialVersionUID = 1L;

        public void widgetDisposed(DisposeEvent event) {
            adapterFactoryContentProvider.dispose();
            adapterFactoryLabelProvider.dispose();
            adapterFactory.dispose();
        }
    });

    return renderingList;

}

From source file:org.eclipse.emfforms.spi.swt.treemasterdetail.actions.KeybindedMasterDetailAction.java

License:Open Source License

/**
 * {@inheritDoc}//from   ww w . j  av a  2s  .co  m
 *
 * @see org.eclipse.emfforms.spi.swt.treemasterdetail.actions.MasterDetailAction#setTreeViewer(org.eclipse.jface.viewers.TreeViewer)
 */
@Override
public void setTreeViewer(TreeViewer treeviewer) {
    super.setTreeViewer(treeviewer);
    if (registeredTreeViewer != null) {
        registeredTreeViewer.getTree().removeKeyListener(this);
        registeredTreeViewer.removeSelectionChangedListener(this);
    }
    treeviewer.getTree().addKeyListener(this);
    treeviewer.addSelectionChangedListener(this);
    registeredTreeViewer = treeviewer;
}

From source file:org.eclipse.epf.authoring.ui.forms.ConfigViewPage.java

License:Open Source License

/**
 * Add view/*from   w w w  .  j  a  v  a  2 s.  c  o m*/
 * 
 * @param obj
 */
private void addView(ContentCategory obj) {
    selectedItem = obj;
    Composite composite = new Composite(tabFolder, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));

    TreeViewer treeViewer = new TreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    treeViewer.getTree().setLayout(new GridLayout());
    treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));

    IFilter configFilter = new ConfigurationViewFilter(config, treeViewer);
    AdapterFactory adapterFactory = TngAdapterFactory.INSTANCE
            .getConfigurationView_AdapterFactory(configFilter);

    AdapterFactoryContentProvider contentProvider = new AdapterFactoryContentProvider(adapterFactory) {
        public Object[] getElements(Object object) {
            // Get the adapter from the factory.
            ITreeItemContentProvider itemProvider = (ITreeItemContentProvider) adapterFactory
                    .adapt(selectedItem, ITreeItemContentProvider.class);

            return itemProvider.getChildren(selectedItem).toArray();
            // return itemProvider.getElements(selectedItem).toArray();
        }
    };

    treeViewer.setContentProvider(contentProvider);
    treeViewer.setLabelProvider(new ConfigurationLabelProvider(config, adapterFactory));
    try {
        treeViewer.setInput(config);
    } catch (Exception ex) {
        logger.logError("Error creating treeviewer for config", ex); //$NON-NLS-1$
    }

    CTabItem item = new CTabItem(tabFolder, SWT.TOP);
    item.setText(((ContentCategory) obj).getName());
    item.setControl(composite);

    // make all buttons enabled
    removeButton.setEnabled(true);
    makeDefaultButton.setEnabled(true);

    toolkit.paintBordersFor(composite);
    tabFolder.setSelection(item);
}