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.e4.demo.modifier.SampleView.java

License:Open Source License

/**
 * Create the sample view./*from   ww  w  .  j  a v a2s .  c o  m*/
 * 
 * @param parent
 * @param selectionService
 */
public SampleView(Composite parent, final IEclipseContext outputContext, final IExtensionRegistry registry) {
    TreeViewer viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTree().setData("class", "navigator"); //$NON-NLS-1$ //$NON-NLS-2$
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            outputContext.set(IServiceConstants.SELECTION, event.getSelection());
        }
    });
    viewer.setContentProvider(new ITreeContentProvider() {

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof IConfigurationElement) {
                return ((IConfigurationElement) parentElement).getChildren();
            }
            return null;
        }

        public Object getParent(Object element) {
            if (element instanceof IConfigurationElement) {
                return ((IConfigurationElement) element).getParent();
            }
            return null;
        }

        public boolean hasChildren(Object element) {
            if (element instanceof IConfigurationElement) {
                return ((IConfigurationElement) element).getChildren().length > 0;
            }
            return false;
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof IExtension) {
                return ((IExtension) inputElement).getConfigurationElements();
            }
            return null;
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
    });
    viewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof IConfigurationElement) {
                IConfigurationElement c = (IConfigurationElement) element;
                String tag = c.getName();
                String id = c.getAttribute("id"); //$NON-NLS-1$
                if (id == null) {
                    id = c.getAttribute("name"); //$NON-NLS-1$
                }
                if (id == null) {
                    id = c.getAttribute("api"); //$NON-NLS-1$
                }
                if (id == null) {
                    id = c.getAttribute("class"); //$NON-NLS-1$
                }
                return tag + "(" + id + ")"; //$NON-NLS-1$ //$NON-NLS-2$
            }
            return ""; //$NON-NLS-1$
        }

        @Override
        public Image getImage(Object element) {
            // TODO update this to look for an icon or image attribute
            return super.getImage(element);
        }
    });

    IExtension input = null;
    IExtension[] extensions = registry.getExtensions("org.eclipse.e4.ui.workbench"); //$NON-NLS-1$
    for (int i = 0; i < extensions.length; i++) {
        if (extensions[i].getExtensionPointUniqueIdentifier().equals("org.eclipse.e4.services")) { //$NON-NLS-1$
            input = extensions[i];
            break;
        }
    }
    viewer.setInput(input);
    GridLayoutFactory.fillDefaults().generateLayout(parent);
}

From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.JDTOutlinePage.java

License:Open Source License

@Inject
public JDTOutlinePage(Composite parent, @Named(IServiceConstants.ACTIVE_PART) MPart part, IWorkspace workspace,
        Logger logger, INLSLookupFactoryService nlsFactory) {
    // if (PACKAGE_DECL == null) {
    // initImages(parent);
    // }//from   ww  w . j  a  v a2 s. com
    parent.setLayout(new FillLayout());

    JavaEditor editor = (JavaEditor) part.getObject();

    // FIXME We need to cache this!
    JavaUIMessages messages = nlsFactory.createNLSLookup(JavaUIMessages.class);

    final AppearanceAwareLabelProvider lprovider = new AppearanceAwareLabelProvider(
            AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS | JavaElementLabels.F_APP_TYPE_SIGNATURE
                    | JavaElementLabels.ALL_CATEGORY,
            AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS, logger, messages);

    TreeViewer viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.setContentProvider(new ContentProvider());
    viewer.setLabelProvider(new DelegatingStyledCellLabelProvider(lprovider));
    viewer.setInput(editor.getCompilationUnit());
    viewer.expandAll();
}

From source file:org.eclipse.e4.demo.simpleide.navigator.internal.ResourceNavigator.java

License:Open Source License

@Inject
public ResourceNavigator(Composite parent, final IEclipseContext context, IWorkspace workspace) {
    final Realm realm = SWTObservables.getRealm(parent.getDisplay());
    this.context = context;
    parent.setLayout(new FillLayout());
    TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();
            selectionService/*from  w ww.ja va 2 s  .co m*/
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
            //            context.modify(IServiceConstants.ACTIVE_SELECTION, selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });

    IObservableFactory setFactory = new IObservableFactory() {
        public IObservable createObservable(Object element) {
            if (element instanceof IContainer && ((IContainer) element).exists()) {
                IObservableSet observableSet = observableSets.get(element);
                if (observableSet == null) {
                    observableSet = new WritableSet(realm);
                    try {
                        observableSet.addAll(Arrays.asList(((IContainer) element).members()));
                    } catch (CoreException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    observableSets.put((IContainer) element, observableSet);
                }
                return observableSet;
            }
            return Observables.emptyObservableSet();
        }
    };
    viewer.setContentProvider(new ObservableSetTreeContentProvider(setFactory, new TreeStructureAdvisor() {
        public Boolean hasChildren(Object element) {
            return Boolean.valueOf(element instanceof IContainer);
        }
    }));

    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IResource)
                return ((IResource) element).getName();
            return element == null ? "" : element.toString();
        }
    });
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(workspace.getRoot());
    viewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {
            MSimpleIDEApplication app = (MSimpleIDEApplication) application;
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            for (Object o : s.toArray()) {
                if (o instanceof IFile) {
                    IFile f = (IFile) o;
                    context.set(IFile.class, f);
                    String fExt = f.getFileExtension();
                    EDITOR: for (MEditorPartDescriptor desc : app.getEditorPartDescriptors()) {
                        for (String ext : desc.getFileextensions()) {
                            if (ext.equals(fExt)) {
                                context.set(MEditorPartDescriptor.class, desc);
                                System.err.println("Opening with: " + desc);

                                Command cmd = commandService.getCommand("simpleide.command.openeditor");
                                ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(cmd, null);
                                handlerService.executeHandler(pCmd);

                                break EDITOR;
                            }
                        }
                    }
                }
            }

        }
    });
    setupContextMenu(viewer, parent.getShell());
    workspace.addResourceChangeListener(listener);
}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor.java

License:Open Source License

private TreeViewer createTreeViewerArea(Composite parent) {

    final Composite treeArea = new Composite(parent, SWT.BORDER);

    treeArea.setLayout(new FillLayout());
    treeArea.setData(CSS_CLASS_KEY, "formContainer"); //$NON-NLS-1$
    treeArea.setBackgroundMode(SWT.INHERIT_DEFAULT);

    TreeViewer tempViewer = null;/* ww  w  .ja  v  a 2  s.  co m*/
    String property = System.getProperty(ORG_ECLIPSE_E4_TOOLS_MODELEDITOR_FILTEREDTREE_ENABLED_XMITAB_DISABLED);
    if (property != null || preferences.getBoolean("tab-form-search-show", false)) { //$NON-NLS-1$
        FilteredTree viewParent = new FilteredTree(treeArea,
                SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter(), true);
        tempViewer = viewParent.getViewer();
    } else {
        tempViewer = new TreeViewerEx(treeArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL,
                emfDocumentProvider, modelProvider);
    }
    final TreeViewer viewer = tempViewer;

    viewer.setLabelProvider(new ComponentLabelProvider(this, messages));
    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            new ObservableFactoryImpl(), new TreeStructureAdvisor() {
            });
    viewer.setContentProvider(contentProvider);

    final WritableSet clearedSet = new WritableSet();

    contentProvider.getKnownElements().addSetChangeListener(new ISetChangeListener() {

        @Override
        public void handleSetChange(SetChangeEvent event) {
            for (Object o : event.diff.getAdditions()) {
                if (o instanceof EObject) {
                    clearedSet.add(o);
                }
            }

            for (Object o : event.diff.getRemovals()) {
                if (o instanceof EObject) {
                    clearedSet.remove(o);
                }
            }
        }
    });

    for (FeaturePath p : labelFeaturePaths) {
        IObservableMap map = EMFProperties.value(p).observeDetail(clearedSet);
        map.addMapChangeListener(new IMapChangeListener() {

            @Override
            public void handleMapChange(MapChangeEvent event) {
                viewer.update(event.diff.getChangedKeys().toArray(), null);
            }
        });
    }

    viewer.setInput(modelProvider.getRoot());
    viewer.setAutoExpandLevel(2);
    viewer.expandToLevel(viewer.getAutoExpandLevel());
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) event.getViewer();
            IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection();
            Object selectedNode = thisSelection.getFirstElement();
            if (mod1Down) {
                if (viewer.getExpandedState(selectedNode))
                    viewer.setExpandedState(selectedNode, false);
                else
                    viewer.expandToLevel(selectedNode, AbstractTreeViewer.ALL_LEVELS);
            } else {
                viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode));
            }

        }
    });

    // Effect of filtered tree implementation (bug 391086)
    viewer.getTree().addTreeListener(new TreeAdapter() {
        @Override
        public void treeCollapsed(TreeEvent e) {
            viewer.expandToLevel(viewer.getAutoExpandLevel());
        }
    });

    int ops = DND.DROP_MOVE;
    viewer.addDragSupport(ops, new Transfer[] { MemoryTransfer.getInstance() }, new DragListener(viewer));
    viewer.addDropSupport(ops, new Transfer[] { MemoryTransfer.getInstance() },
            new DropListener(viewer, modelProvider.getEditingDomain()));

    return viewer;
}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer.java

License:Open Source License

public TreeViewer createViewer(Composite parent, EStructuralFeature feature, final IObservableValue master,
        IResourcePool resourcePool, final Messages messages) {
    final TreeViewer viewer = new TreeViewer(parent);
    viewer.setContentProvider(new WidgetContentProvider());
    viewer.setLabelProvider(new WidgetLabelProvider(resourcePool));
    IEMFValueProperty property = EMFProperties.value(feature);
    IObservableValue value = property.observeDetail(master);
    value.addValueChangeListener(new IValueChangeListener() {

        @Override//www  . j  a v a 2s. c om
        public void handleValueChange(ValueChangeEvent event) {
            if (event.diff.getNewValue() != null) {
                viewer.setInput(Collections.singleton(event.diff.getNewValue()));
                viewer.expandToLevel(2);
            } else {
                viewer.setInput(Collections.emptyList());
            }
        }
    });

    final MenuManager mgr = new MenuManager();
    mgr.setRemoveAllWhenShown(true);
    mgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            final Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
            if (o instanceof Control) {
                manager.add(new Action(messages.ModelEditor_ShowControl) {
                    @Override
                    public void run() {
                        ControlHighlighter.show((Control) o);
                    }
                });
            }

            IExtensionRegistry registry = RegistryFactory.getRegistry();
            IExtensionPoint extPoint = registry.getExtensionPoint("org.eclipse.e4.tools.emf.ui.scripting"); //$NON-NLS-1$
            final IConfigurationElement[] elements = extPoint.getConfigurationElements();

            final IStructuredSelection s = (IStructuredSelection) viewer.getSelection();

            if (elements.length > 0 && !s.isEmpty()) {
                MenuManager scriptExecute = new MenuManager(messages.ModelEditor_Script);
                manager.add(scriptExecute);
                for (IConfigurationElement e : elements) {
                    final IConfigurationElement le = e;
                    scriptExecute.add(new Action(e.getAttribute("label")) { //$NON-NLS-1$
                        @Override
                        public void run() {
                            try {
                                MApplicationElement o = (MApplicationElement) master.getValue();
                                IScriptingSupport support = (IScriptingSupport) le
                                        .createExecutableExtension("class"); //$NON-NLS-1$
                                support.openEditor(viewer.getControl().getShell(), s.getFirstElement(),
                                        ModelUtils.getContainingContext(o));
                            } catch (CoreException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    });
                }
            }
        }
    });

    viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl()));

    return viewer;
}

From source file:org.eclipse.e4.ui.workbench.swt.internal.copy.ShowViewDialog.java

License:Open Source License

/**
 * Create a new filtered tree viewer in the parent.
 * /*from  w w  w  . jav  a 2  s. c  o m*/
 * @param parent
 *            the parent <code>Composite</code>.
 */
private void createFilteredTreeViewer(Composite parent) {
    PatternFilter filter = new ViewPatternFilter(context);
    int styleBits = SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER;
    filteredTree = new FilteredTree(parent, styleBits, filter, true);
    filteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));

    TreeViewer treeViewer = filteredTree.getViewer();

    treeViewer.setLabelProvider(new ViewLabelProvider(context));
    treeViewer.setContentProvider(new ViewContentProvider(application));
    treeViewer.setComparator(new ViewComparator());
    treeViewer.setInput(application);
    treeViewer.addSelectionChangedListener(this);
    treeViewer.addDoubleClickListener(this);
    treeViewer.getControl().addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
            handleTreeViewerKeyPressed(e);
        }
    });

    // if the tree has only one or zero views, disable the filter text
    // control
    if (hasAtMostOneView(filteredTree.getViewer())) {
        Text filterText = filteredTree.getFilterControl();
        if (filterText != null) {
            filterText.setEnabled(false);
        }
    }
}

From source file:org.eclipse.e4.xwt.tools.ui.designer.databinding.ui.ObservableList.java

License:Open Source License

protected TreeViewer createControlsViewer(Composite control) {
    TreeViewer treeViewer = new TreeViewer(control, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    treeViewer.getTree().setLayoutData(layoutData);
    treeViewer.setContentProvider(new ITreeContentProvider() {
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }/* w  w  w .java2  s.co m*/

        public void dispose() {
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof IObservable[]) {
                return (IObservable[]) inputElement;
            }
            return new Object[0];
        }

        public boolean hasChildren(Object element) {
            if (element instanceof IObservable) {
                return ((IObservable) element).hasChildren();
            }
            return false;
        }

        public Object getParent(Object element) {
            if (element instanceof IObservable) {
                return ((IObservable) element).getParent();
            }
            return null;
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof IObservable) {
                return ((IObservable) parentElement).getChildren();
            }
            return null;
        }
    });
    treeViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IObservable) {
                return ((IObservable) element).getDisplayName();
            }
            return super.getText(element);
        }

        public Image getImage(Object element) {
            if (element instanceof IObservable) {
                Object source = ((IObservable) element).getSource();
                if (source == null) {
                    return super.getImage(element);
                }
                if (source instanceof Widget) {
                    return ImageShop.getImageForWidget((Widget) source);
                } else if (source instanceof Viewer) {
                    return ImageShop.getObj16(((Viewer) source).getClass().getSimpleName().toLowerCase());
                } else {
                    return ImageShop.getImageForType(source.getClass());
                }
            }
            return super.getImage(element);
        }
    });
    treeViewer.setAutoExpandLevel(3);
    treeViewer.addFilter(new ViewerFilter() {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof IObservable) {
                return ((IObservable) element).getProperties().length > 0;
            }
            return false;
        }
    });
    return treeViewer;
}

From source file:org.eclipse.e4.xwt.tools.ui.designer.dialogs.ImageDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite dialogArea = (Composite) super.createDialogArea(parent);
    GridLayout layout = (GridLayout) dialogArea.getLayout();
    layout.numColumns = 2;/*from  w ww.ja  v  a  2s  .  co  m*/

    Group leftComp = new Group(dialogArea, SWT.NONE);
    leftComp.setText("types");
    layout = new GridLayout(2, false);
    leftComp.setLayout(layout);
    leftComp.setLayoutData(new GridData(GridData.FILL_BOTH));

    final Button projRadio = new Button(leftComp, SWT.RADIO);
    projRadio.setText("Project");
    projRadio.setSelection(true);
    projRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
    new Label(leftComp,
            SWT.NONE)/* .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL)) */;

    final Button fileRadio = new Button(leftComp, SWT.RADIO);
    fileRadio.setText("File System");
    fileRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
    final Button browserButton = new Button(leftComp, SWT.PUSH);
    browserButton.setText("Browser");
    // browserButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL));
    browserButton.setEnabled(false);

    Group previewer = new Group(dialogArea, SWT.NONE);
    previewer.setText("Preview");
    previewer.setLayout(new FillLayout());
    previewLable = new Label(previewer, SWT.CENTER | SWT.SHADOW_IN);
    GridData gd = new GridData(GridData.FILL_BOTH);
    // gd.heightHint = 50;
    // gd.widthHint = 50;
    // gd.horizontalSpan = 2;
    previewer.setLayoutData(gd);

    final TreeViewer viewer = new TreeViewer(dialogArea, SWT.BORDER);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.horizontalSpan = 2;
    viewer.getControl().setLayoutData(layoutData);
    viewer.setContentProvider(new ImageContentProvider());
    JavaElementLabelProvider labelProvider = new JavaElementLabelProvider() {
        public String getText(Object element) {
            // Need a slight override, for source roots, want to show the entire path so that the project shows up.
            // It doesn't look as good because you can't tell what project the root is in when there are required projects.
            String result = super.getText(element);
            if (element instanceof IPackageFragmentRoot)
                result = MessageFormat.format("{0} - {1}", new Object[] { result,
                        ((IPackageFragmentRoot) element).getJavaProject().getElementName() });
            return result;
        }
    };
    viewer.setLabelProvider(labelProvider);
    if (project != null) {
        viewer.setInput(JavaCore.create(project));
    }
    viewer.expandToLevel(2);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            Object firstElement = selection.getFirstElement();
            if (firstElement instanceof IFile) {
                IPath fullPath = ((IFile) firstElement).getLocation();
                String path = fullPath.toString();
                if (file != null) {
                    String sourcePath = file.getLocation().toString();
                    path = PathHelper.getRelativePath(sourcePath, path);
                }
                setImagePath(path);
            }
        }
    });
    Listener listener = new Listener() {
        public void handleEvent(Event event) {
            setImagePath(null);
            if (event.widget == projRadio) {
                viewer.getControl().setEnabled(true);
                browserButton.setEnabled(false);
            } else if (event.widget == fileRadio) {
                viewer.getControl().setEnabled(false);
                browserButton.setEnabled(true);
            } else if (event.widget == browserButton) {
                chooseImage();
            }
        }
    };
    projRadio.addListener(SWT.Selection, listener);
    fileRadio.addListener(SWT.Selection, listener);
    browserButton.addListener(SWT.Selection, listener);

    Composite bottomComp = new Composite(dialogArea, SWT.NONE);
    layout = new GridLayout(2, false);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    bottomComp.setLayout(layout);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 2;
    bottomComp.setLayoutData(gd);
    new Label(bottomComp, SWT.NONE).setText("Image:");
    imageLabel = new Label(bottomComp, SWT.NONE);
    imageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    return dialogArea;
}

From source file:org.eclipse.ease.modules.unittest.ui.views.UnitTestView.java

License:Open Source License

private TreeViewer createTestArea(final Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    final TreeColumnLayout layout = new TreeColumnLayout();
    composite.setLayout(layout);//w w  w . j av a 2s  .  c o  m

    final TreeViewer viewer = new TreeViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(final DoubleClickEvent event) {
            final Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (element instanceof Test) {

                List<IScriptDebugFrame> trace;
                final List<TestResult> messages = ((Test) element).getMessages();
                if ((messages != null) && (!messages.isEmpty()))
                    trace = messages.get(0).getStackTrace();
                else
                    trace = ((Test) element).getTestLocation();

                if (trace != null) {
                    // open trace location
                    for (final IScriptDebugFrame traceElement : trace) {
                        final Object file = traceElement.getScript().getFile();
                        if (file instanceof IFile) {
                            if (((IFile) file).exists()) {
                                try {
                                    final int line = Math.max(traceElement.getLineNumber(), 1);
                                    final ITextEditor textEditor = (ITextEditor) UIModule
                                            .showEditor((IFile) file);
                                    final IDocument document = textEditor.getDocumentProvider()
                                            .getDocument(textEditor.getEditorInput());
                                    try {
                                        textEditor.selectAndReveal(document.getLineOffset(line - 1),
                                                document.getLineLength(line - 1));
                                    } catch (final BadLocationException e) {
                                        // TODO implement
                                        throw new RuntimeException(e);
                                    }
                                } catch (final Throwable e) {
                                    // TODO handle this exception (but for now, at least know it happened)
                                    throw new RuntimeException(e);

                                }

                                break;
                            }
                        }
                    }

                } else {
                    // we do not have a trace, open test set
                    final Object input = viewer.getInput();
                    if (input instanceof TestFile) {

                        try {
                            final Object file = ((TestFile) input).getFile();
                            if (file instanceof IFile)
                                UIModule.showEditor((IFile) ((TestFile) input).getFile());

                        } catch (final Throwable e) {
                            // TODO handle this exception (but for now, at least know it happened)
                            throw new RuntimeException(e);

                        }
                    }
                }
            }
        }
    });

    viewer.getTree().setHeaderVisible(true);
    viewer.getTree().setLinesVisible(true);

    viewer.setContentProvider(new TestFileContentProvider());

    final TreeViewerColumn testColumn = new TreeViewerColumn(viewer, SWT.NONE);
    testColumn.getColumn().setWidth(100);
    testColumn.getColumn().setText("Test");
    layout.setColumnData(testColumn.getColumn(), new ColumnWeightData(30, 50, true));
    testColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof Test)
                return ((Test) element).getTitle();

            if (element instanceof Entry<?, ?>)
                // metadata
                return ((Entry<?, ?>) element).getKey().toString();

            return "";
        }

        @Override
        public Image getImage(final Object element) {

            if (element instanceof Entry<?, ?>)
                // metadata
                return fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_METADATA));

            TestStatus status = null;
            if (element instanceof Test)
                status = ((Test) element).getStatus();
            else if (element instanceof TestResult)
                status = ((TestResult) element).getStatus();

            if (status != null) {
                switch (status) {
                case PASS:
                    return fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_PASS));
                case ERROR:
                    return fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_ERROR));
                case FAILURE:
                    return fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_FAILURE));
                case RUNNING:
                    return fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_RUNNING));
                default:
                    return super.getImage(element);
                }
            }

            return super.getImage(element);
        }

        @Override
        public String getToolTipText(final Object element) {
            if (element instanceof Test) {
                if ((((Test) element).getDescription() != null)
                        && (!((Test) element).getDescription().isEmpty()))
                    return ((Test) element).getDescription();
            }

            return super.getToolTipText(element);
        }
    });

    final TreeViewerColumn messageColumn = new TreeViewerColumn(viewer, SWT.NONE);
    messageColumn.getColumn().setWidth(100);
    messageColumn.getColumn().setText("Message");
    layout.setColumnData(messageColumn.getColumn(), new ColumnWeightData(70, 50, true));
    messageColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof Test) {
                final TestResult message = ((Test) element).getSeverestMessage();
                if (message != null)
                    return message.getDescription();

                return ((Test) element).getDescription();
            }

            if (element instanceof Entry<?, ?>)
                // metadata
                return ((Entry<?, ?>) element).getValue().toString();

            return super.getText(element);
        }
    });

    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    return viewer;
}

From source file:org.eclipse.eatop.examples.explorer.dialogs.InstanceRefEditorDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite contents = (Composite) super.createDialogArea(parent);

    GridData contentsGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    contentsGridData.horizontalAlignment = SWT.FILL;
    contentsGridData.verticalAlignment = SWT.FILL;

    GridLayout grid = new GridLayout();
    grid.numColumns = 1;//from w  w  w  . j a v  a2  s . c  om
    contents.setLayout(grid);

    contents.setSize(400, 550);

    Tree tree = new Tree(contents, SWT.SINGLE | SWT.BORDER);

    GridData treeGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    treeGridData.widthHint = 300;
    treeGridData.heightHint = 300;

    TreeViewer newTreeViewer = new TreeViewer(tree);
    newTreeViewer.getTree().setLayout(new FillLayout());
    newTreeViewer.getTree().setLayoutData(treeGridData);
    newTreeViewer.setContentProvider(new InstanceRefTreeProvider());

    ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(
            ComposedAdapterFactory.Descriptor.Registry.INSTANCE);

    AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(composedAdapterFactory);
    newTreeViewer.setLabelProvider(labelProvider);

    newTreeViewer.setInput(choiceOfValues);

    newTreeViewer.addSelectionChangedListener(createSelectionListener());

    if (!forceAutoresolve) {
        if (isTarget) {
            Button check = new Button(contents, SWT.CHECK);
            check.setSelection(true);
            check.setText("Try to automatically set context"); //$NON-NLS-1$
            check.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    autoresolve = ((Button) e.widget).getSelection();
                }
            });
        }
    }

    return contents;
}