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

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

Introduction

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

Prototype

@Override
public void setContentProvider(IContentProvider provider) 

Source Link

Document

Sets the content provider used by this TreeViewer.

Usage

From source file:org.eclipse.emf.ecp.spi.common.ui.TreeViewerFactory.java

License:Open Source License

/**
 * @param labelProvider// w  ww. j a v a 2 s  .  co m
 * @param contentProvider
 * @param input
 * @param labelDecorator
 * @param viewer
 */
private static void createTreeViewer(ILabelProvider labelProvider, ITreeContentProvider contentProvider,
        Object input, ILabelDecorator labelDecorator, TreeViewer viewer, boolean sort) {
    viewer.setContentProvider(contentProvider);
    viewer.setLabelProvider(labelProvider);
    if (sort) {
        viewer.setSorter(new ViewerSorter());
    }
    viewer.setInput(input);

    if (labelDecorator != null) {
        if (!(labelProvider instanceof DecoratingLabelProvider)) {
            viewer.setLabelProvider(new DecoratingLabelProvider(labelProvider, labelDecorator));
        }
    }
}

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

License:Open Source License

/**
 * Configures the passed tree viewer./*  ww  w.  java2s. co  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.SWTCategorizationElementRenderer.java

License:Open Source License

/**
 * Configures the passed tree viewer./*from w w  w  .j a  v a2 s  . com*/
 * 
 * @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.treemasterdetail.ui.swt.internal.TreeMasterDetailSWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}.//from  ww  w .j a  va 2s.  co  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.emf.eef.runtime.ui.widgets.ElementSelectionDialog.java

License:Open Source License

/**
 * Used to display a page//from   w ww . j  av  a 2  s.c  o m
 * 
 * @param parent
 *            composite which contains the tree
 * @return the composite of this page
 */
public Control fillModelpage(Composite parent) {
    Composite composite = new Composite(parent, SWT.None);
    GridLayout layout = new GridLayout();
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    composite.setLayout(layout);

    // use pattern filter
    PatternFilter patternFilter = new TreeSelectionPatternFilter();
    patternFilter.setIncludeLeadingWildcard(true);

    FilteredTree filteredTree = new FilteredTree(composite, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.RESIZE,
            patternFilter, true);
    // use of EMF facilities
    final TreeViewer treeViewer = filteredTree.getViewer();
    treeViewer.setFilters(new ViewerFilter[0]);
    treeViewer.setUseHashlookup(true);
    if (input instanceof EEFEditorSettings)
        treeViewer.setContentProvider(
                new HideResourcesContentProvider(new AdvancedEEFEditorContentProvider(adapterFactory)));
    else
        treeViewer.setContentProvider(
                new HideResourcesContentProvider(new AdapterFactoryContentProvider(adapterFactory)));

    ArrayList<ViewerFilter> filters = new ArrayList<ViewerFilter>();
    if (viewerFilters != null && !viewerFilters.isEmpty()) {
        for (ViewerFilter filter : viewerFilters) {
            filters.add(filter);
        }
    }
    // for now, add the businessRuleFilters to the 'normal' filters
    if (brFilters != null && !brFilters.isEmpty()) {
        for (ViewerFilter filter : brFilters) {
            filters.add(filter);
        }
    }
    filters.add(patternFilter);
    ViewerFilter[] v = filters.toArray(new ViewerFilter[filters.size()]);
    treeViewer.setFilters(v);
    treeViewer.setLabelProvider(new EEFLabelProvider() {

        @Override
        public Color getForeground(Object element) {
            if (input instanceof ReferencesTableSettings && element instanceof EObject
                    && ((ReferencesTableSettings) input).contains((EObject) element)) {
                return getShell().getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
            }

            return super.getForeground(element);
        }

    });

    filteredTree.setLayoutData(new GridData(550, 300));
    // handle selection change
    if (input instanceof EEFEditorSettings) {
        treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
            public void selectionChanged(SelectionChangedEvent event) {
                if (event.getSelection() instanceof IStructuredSelection) {
                    // Check selection
                    IStructuredSelection structuredSelection = (IStructuredSelection) event.getSelection();
                    if (structuredSelection != null && !structuredSelection.isEmpty()) {
                        Object o = structuredSelection.getFirstElement();
                        // Check type matching
                        Button okButton = getButton(IDialogConstants.OK_ID);
                        if (((List<?>) ((EEFEditorSettings) input).choiceOfValues(adapterFactory))
                                .contains(o)) {
                            if (input instanceof ReferencesTableSettings) {
                                if (o instanceof EObject
                                        && !((ReferencesTableSettings) input).contains((EObject) o)) {
                                    selection = structuredSelection;
                                    if (okButton != null) {
                                        okButton.setEnabled(true);
                                    }
                                } else {
                                    // Reject selection
                                    if (okButton != null) {
                                        okButton.setEnabled(false);
                                    }
                                }
                            } else {
                                selection = structuredSelection;
                                if (okButton != null) {
                                    okButton.setEnabled(true);
                                }
                            }
                        } else {
                            // Reject selection
                            if (okButton != null) {
                                okButton.setEnabled(false);
                            }
                        }
                    }

                }
            }
        });

        // handle double click to validate
        treeViewer.addDoubleClickListener(new IDoubleClickListener() {
            public void doubleClick(DoubleClickEvent event) {
                if (selection != null && !selection.isEmpty()) {
                    Object o = selection.getFirstElement();
                    if (((List<?>) ((EEFEditorSettings) input).choiceOfValues(adapterFactory)).contains(o)
                            && input instanceof ReferencesTableSettings && o instanceof EObject
                            && !((ReferencesTableSettings) input).contains((EObject) o)) {
                        okPressed();
                    }
                }
            }
        });
    }
    treeViewer.setInput(input);

    // Init selected element
    if (selection != null) {
        treeViewer.setSelection(selection);
    }

    return composite;

}

From source file:org.eclipse.emf.eef.runtime.ui.widgets.masterdetails.tree.EEFTreeMasterPart.java

License:Open Source License

/**
 * {@inheritDoc}//from   w ww.  j ava 2s .co  m
 * 
 * @see org.eclipse.emf.eef.runtime.ui.widgets.masterdetails.AbstractEEFMasterPart#createSectionClientContents(org.eclipse.swt.widgets.Composite,
 *      org.eclipse.ui.forms.widgets.FormToolkit)
 */
protected TreeViewer createSectionClientContents(Composite sectionContainer, FormToolkit toolkit) {
    Tree tree = toolkit.createTree(sectionContainer, SWT.MULTI | SWT.BORDER);
    TreeViewer result = new TreeViewer(tree);
    result.setContentProvider(new AdapterFactoryContentProvider(getAdapterFactory()));
    result.setLabelProvider(new AdapterFactoryLabelProvider(getAdapterFactory()));
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.widthHint = 80;
    tree.setLayoutData(gd);
    return result;
}

From source file:org.eclipse.emf.eef.runtime.ui.widgets.TabElementTreeSelectionDialog.java

License:Open Source License

/**
 * Used to display a page in a tab/*from ww  w  .j a va 2  s.com*/
 * 
 * @param tabFolder
 *            that contains all tabs
 * @param specificTabFilter
 *            a specific filter to this page
 * @return the composite of this page
 */
public Control fillModelpage(CTabFolder tabFolder, final boolean showResourceItem,
        final ViewerFilter specificTabFilter) {
    Composite composite = new Composite(tabFolder, SWT.None);
    GridLayout layout = new GridLayout();
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    composite.setLayout(layout);

    // use pattern filter
    PatternFilter patternFilter = new TreeSelectionPatternFilter();
    patternFilter.setIncludeLeadingWildcard(true);

    FilteredTree filteredTree = new FilteredTree(composite, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.RESIZE,
            patternFilter);
    // use of EMF facilities
    final TreeViewer treeViewer = filteredTree.getViewer();
    treeViewer.setFilters(new ViewerFilter[0]);
    treeViewer.setUseHashlookup(true);
    if (input instanceof EEFEditorSettings)
        treeViewer.setContentProvider(new AdvancedEEFEditorContentProvider(adapterFactory));
    else
        treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

    ArrayList<ViewerFilter> filters = new ArrayList<ViewerFilter>();
    if (specificTabFilter != null) {
        filters.add(specificTabFilter);
    }
    if (viewerFilters != null && !viewerFilters.isEmpty()) {
        for (ViewerFilter filter : viewerFilters) {
            filters.add(filter);
        }
    }
    // for now, add the businessRuleFilters to the 'normal' filters
    if (brFilters != null && !brFilters.isEmpty()) {
        for (ViewerFilter filter : brFilters) {
            filters.add(filter);
        }
    }
    filters.add(patternFilter);
    ViewerFilter[] v = filters.toArray(new ViewerFilter[filters.size()]);
    treeViewer.setFilters(v);
    treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));

    filteredTree.setLayoutData(new GridData(550, 300));
    // handle selection change
    if (input instanceof EEFEditorSettings) {
        treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
            public void selectionChanged(SelectionChangedEvent event) {
                if (event.getSelection() instanceof IStructuredSelection) {
                    // Check selection
                    IStructuredSelection structuredSelection = (IStructuredSelection) event.getSelection();
                    if (structuredSelection != null && !structuredSelection.isEmpty()) {
                        Object o = structuredSelection.getFirstElement();
                        // Check type matching
                        Button okButton = getButton(IDialogConstants.OK_ID);
                        if (((List<?>) ((EEFEditorSettings) input).choiceOfValues(adapterFactory))
                                .contains(o)) {
                            selection = structuredSelection;
                            if (okButton != null) {
                                okButton.setEnabled(true);
                            }
                        } else {
                            // Reject selection
                            if (okButton != null) {
                                okButton.setEnabled(false);
                            }
                        }
                    }

                }
            }
        });

        // handle double click to validate
        treeViewer.addDoubleClickListener(new IDoubleClickListener() {
            public void doubleClick(DoubleClickEvent event) {
                if (selection != null && !selection.isEmpty()) {
                    Object o = selection.getFirstElement();
                    if (((List<?>) ((EEFEditorSettings) input).choiceOfValues(adapterFactory)).contains(o)) {
                        okPressed();
                    }
                }
            }
        });
    }
    treeViewer.setInput(input);

    // Init selected element
    if (selection != null) {
        treeViewer.setSelection(selection);
    }

    return composite;

}

From source file:org.eclipse.emf.example.databinding.project.ui.rcp.views.ProjectExplorerPart.java

License:Open Source License

private TreeViewer init(Composite parent, Foundation foundation) {
    TreeViewer viewer = new TreeViewer(parent);

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(new TreeFactoryImpl(),
            new TreeStructureAdvisorImpl());
    viewer.setContentProvider(cp);

    IObservableSet set = cp.getKnownElements();

    IObservableMap[] map = new IObservableMap[4];
    map[0] = EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNAME).observeDetail(set);
    map[1] = EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITTERS).observeDetail(set);
    map[2] = EMFProperties.value(FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP__PERSON,
            ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(set);
    map[3] = EMFProperties.value(FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP__PERSON,
            ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set);

    viewer.setLabelProvider(new TreeLabelProviderImpl(map));

    IEMFListProperty projects = EMFProperties.list(ProjectPackage.Literals.FOUNDATION__PROJECTS);
    viewer.setInput(projects.observe(foundation));

    MenuManager mgr = new MenuManager();
    mgr.add(new GroupMarker("additions"));
    viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl()));

    site.registerContextMenu(Activator.PLUGIN_ID + ".projectexp", mgr, viewer);
    site.setSelectionProvider(viewer);/*from  ww w  .ja v a2  s .c  o m*/

    ColumnViewerToolTipSupportImpl.enableFor(viewer, toolkit);

    IObservableValue treeObs = ViewerProperties.singleSelection().observe(viewer);
    treeObs.addValueChangeListener(new IValueChangeListener() {

        public void handleValueChange(ValueChangeEvent event) {
            ISourceProviderService s = (ISourceProviderService) site.getService(ISourceProviderService.class);
            ResourceProvider p = (ResourceProvider) s.getSourceProvider(ResourceProvider.MODEL_RESOURCE_NAME);

            if (event.diff.getNewValue() instanceof Project) {
                Project pr = (Project) event.diff.getNewValue();
                master.setValue(pr);
                p.setCommitter(null);
                p.setProject(pr);
            } else if (event.diff.getNewValue() != null) {
                CommitterShip cm = (CommitterShip) event.diff.getNewValue();
                master.setValue(cm.getProject());
                p.setCommitter(cm);
                p.setProject(cm.getProject());
            } else {
                p.setCommitter(null);
                p.setProject(null);
            }
        }
    });

    return viewer;
}

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

License:Open Source License

/**
 * Creates a {@link TreeViewer}./*from   w w w  . j  a va 2  s  .  c o  m*/
 *
 * @param behaviour the {@link TreeViewerCustomization}
 * @param composite the parent {@link Composite}
 * @param editingDomain the {@link EditingDomain}
 * @param input the input
 * @return the viewer
 */
static TreeViewer create(TreeViewerCustomization behaviour, Composite composite, EditingDomain editingDomain,
        Object input) {
    final TreeViewer treeViewer = behaviour.createTree(composite);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(treeViewer.getControl());
    if (behaviour.hasDND()) {
        treeViewer.addDragSupport(behaviour.getDragOperations(), behaviour.getDragTransferTypes(),
                behaviour.getDragListener(treeViewer));
        treeViewer.addDropSupport(behaviour.getDropOperations(), behaviour.getDropTransferTypes(),
                behaviour.getDropListener(editingDomain, treeViewer));
    }
    treeViewer.setContentProvider(behaviour.getContentProvider());
    treeViewer.setLabelProvider(behaviour.getLabelProvider());
    treeViewer.setFilters(behaviour.getViewerFilters());
    treeViewer.getControl().setMenu(behaviour.getMenu(treeViewer, editingDomain));
    treeViewer.setInput(input);
    final EObject initialSelection = behaviour.getInitialSelection(input);
    if (initialSelection != null) {
        treeViewer.setSelection(new StructuredSelection(initialSelection), true);
    }
    return treeViewer;
}

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

License:Open Source License

/**
 * Add view/*from w w w.  j av  a2 s . com*/
 * 
 * @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);
}