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.caesarj.ui.editor.CaesarJContentOutlinePage.java

License:Open Source License

/**
 * Creates the JFace control that displays the content
 *//*from  w w w. j  a  v a  2  s.  c  o m*/
public void createControl(Composite parent) {
    super.createControl(parent);

    contentProvider = new CaesarOutlineViewContentProvider();

    // Creates the helper classes and associates them to the tree viewer
    TreeViewer viewer = getTreeViewer();
    //viewer.setSorter(new CaesarOutlineViewLexicalSorter());
    viewer.setSorter(new CaesarOutlineViewLineSorter());
    viewer.setContentProvider(contentProvider);
    viewer.setLabelProvider(new CaesarOutlineViewLabelProvider());
    viewer.addSelectionChangedListener(this);

    // Call update to create the initial state
    ProjectProperties properties = ProjectProperties.create(project);
    if (properties.getAsmManager() != null) {
        update(ProjectProperties.create(project));
    }
}

From source file:org.caleydo.data.tcga.internal.TCGABrowserStartupAddon.java

License:Open Source License

private TreeViewer createSelectionTree(final SashForm form, final WizardPage page, final Listener listener) {
    final TreeViewer v = new TreeViewer(form, SWT.VIRTUAL | SWT.BORDER);
    v.setLabelProvider(new LabelProvider());
    v.setContentProvider(new MyContentProvider(v));
    v.setUseHashlookup(true);/*  w w w .j  av a2s . c  o m*/
    v.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            Object f = s.getFirstElement();
            if (f instanceof TumorProject) {
                selectedChoice = ((TumorProject) f).getProject();
                // page.setPageComplete(true);
            } else {
                selectedChoice = null;
                // page.setPageComplete(false);
            }

            if (f instanceof TumorProject) {
                updateDetailInfo((TumorProject) f);
                form.setMaximizedControl(null);
            } else if (f instanceof RunOverview) {
                updateDetailInfo((RunOverview) f);
                clearDetailInfo();
                form.setMaximizedControl(v.getControl());
            } else {
                clearDetailInfo();
                form.setMaximizedControl(v.getControl());
            }
            // This is a bit hacky, but there is no way to register a swt listener to a treeviewer.
            listener.handleEvent(null);
        }
    });
    return v;
}

From source file:org.camunda.bpm.modeler.ui.dialog.importer.ModelProblemsDialog.java

License:Open Source License

private void createProblemsTreeView(Composite parent) {

    // clipboard to copy and paste from / to
    final Clipboard clipboard = new Clipboard(parent.getDisplay());

    Composite treeColumnComposite = new Composite(parent, SWT.NONE);
    GridData treeColumnCompositeGridData = new GridData(SWT.FILL, SWT.TOP, true, false);
    treeColumnCompositeGridData.widthHint = 420;
    treeColumnCompositeGridData.heightHint = 128;
    treeColumnComposite.setLayoutData(treeColumnCompositeGridData);

    TreeColumnLayout treeColumnLayout = new TreeColumnLayout();
    treeColumnComposite.setLayout(treeColumnLayout);

    final TreeViewer treeViewer = new TreeViewer(treeColumnComposite,
            SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    Tree tree = treeViewer.getTree();/*from   w  ww  .  ja  v a  2 s . c om*/
    tree.setLinesVisible(true);

    treeViewer.setContentProvider(new ProblemsContentProvider());
    treeViewer.setLabelProvider(new ProblemLabelProvider());

    Menu menu = new Menu(parent.getShell(), SWT.POP_UP);
    final MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
    copyItem.setText("Copy Stacktrace to Clipboard");

    String imageName = ISharedImages.IMG_TOOL_COPY;
    copyItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(imageName));

    copyItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            Problem problem = (Problem) selection.getFirstElement();

            copyToClipboard(clipboard, problem);
        }
    });

    treeViewer.getTree().setMenu(menu);

    List<Problem> problems = populateProblems();

    // Expand the tree
    treeViewer.setAutoExpandLevel(2);

    // Provide the input to the ContentProvider
    treeViewer.setInput(problems);
}

From source file:org.cfeclipse.cfml.views.contentoutline.CFContentOutlineView.java

License:Open Source License

public void createControl(Composite parent) {
    super.createControl(parent);
    DocItem root = getRootInput();/*from  w  ww  .j  a  v  a2 s.  c  om*/
    TreeViewer viewer = getTreeViewer();
    viewer.setContentProvider(new OutlineContentProvider(root));
    viewer.setLabelProvider(new OutlineLabelProvider());
    viewer.addSelectionChangedListener(this);
    // this listener listens to the editor (vs. this outline view)
    getSite().getPage().addPostSelectionListener(this);
    createActions();
    createToolbar();
    createContextMenu();
    hookGlobalActions();
    hookDoubleClickAction();
    reload(root);
}

From source file:org.cheetahplatform.tdm.explorer.TDMProjectExplorerView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    composite = new TDMProjectExplorerComposite(parent, SWT.NONE);
    model = new TDMProjectExplorerModel();

    TreeViewer viewer = composite.getTreeViewer();
    viewer.setContentProvider(model.createContentProvider());
    viewer.setLabelProvider(model.createLabelProvider());

    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override// ww w.  j  a  v a 2s. c o  m
        public void doubleClick(DoubleClickEvent event) {
            openTestEditor();
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            openTestEditor();
        }
    });

    if (CheetahPlatformConfigurator.getBoolean(IConfiguration.ALLOW_MODIFICATION_OF_TESTS)) {
        addContextMenu();
    }
}

From source file:org.chromium.debug.ui.liveedit.LiveEditDiffViewer.java

License:Open Source License

private void configureTreeViewer(TreeViewer treeViewer, TreeViewer opposite, Side side) {
    treeViewer.setContentProvider(new FunctionTreeContentProvider());
    treeViewer.setLabelProvider(new LabelProviderImpl(side));
    treeViewer.addSelectionChangedListener(new SelectionChangeListener(opposite));
    treeViewer.addTreeListener(new TreeListenerImpl(opposite));
    treeViewer.getTree().getVerticalBar().addListener(SWT.Selection, new TreeScrollBarListener(opposite));
}

From source file:org.codecover.eclipse.views.controls.RedundancyViewerFactory.java

License:Open Source License

private static void configureViewer(final TreeViewer viewer, final boolean withTestSessionColumn,
        final Runnable disposeRunnable) {
    TreeColumnLayout layout = new TreeColumnLayout();
    TreeColumn column;//ww w  .  j av a 2 s  .  co  m

    viewer.getTree().setRedraw(false);

    viewer.getTree().getParent().setLayout(layout);

    // set providers
    viewer.setContentProvider(new ViewerContentProvider(disposeRunnable));
    viewer.setLabelProvider(new ViewerLabelProvider(withTestSessionColumn));

    // add columns to viewer
    viewer.getTree().setHeaderVisible(true);
    // name column
    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.NAME.getIndex(withTestSessionColumn));
    column.setText(Columns.NAME.getText());
    column.setWidth(120);
    layout.setColumnData(column, new ColumnWeightData(52, 120));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            return Collator.getInstance().compare(
                    this.lblProvider.getColumnText(o1, Columns.NAME.getIndex(withTestSessionColumn)),
                    this.lblProvider.getColumnText(o2, Columns.NAME.getIndex(withTestSessionColumn)));
        }
    };
    // test session column (optional)
    if (withTestSessionColumn) {
        column = new TreeColumn(viewer.getTree(), SWT.LEAD,
                Columns.TESTSESSION.getIndex(withTestSessionColumn));
        column.setText(Columns.TESTSESSION.getText());
        column.setWidth(100);
        layout.setColumnData(column, new ColumnWeightData(16, 100));
        new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) {

            private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

            @Override
            protected int doCompare(Viewer viewer, Object o1, Object o2) {
                return Collator.getInstance().compare(
                        this.lblProvider.getColumnText(o1, Columns.TESTSESSION.getIndex(withTestSessionColumn)),
                        this.lblProvider.getColumnText(o2,
                                Columns.TESTSESSION.getIndex(withTestSessionColumn)));
            }
        };
    }
    // Redundancy columns:
    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.ST_REDUNDANCY.getIndex(withTestSessionColumn));
    column.setText(Columns.ST_REDUNDANCY.getText());
    column.setWidth(80);
    layout.setColumnData(column, new ColumnWeightData(16, 80));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            String str1 = this.lblProvider.getColumnText(o1,
                    Columns.ST_REDUNDANCY.getIndex(withTestSessionColumn));
            String str2 = this.lblProvider.getColumnText(o2,
                    Columns.ST_REDUNDANCY.getIndex(withTestSessionColumn));
            if (str1.compareTo("NaN") == 0) {
                return 1;
            } else if (str2.compareTo("NaN") == 0) {
                return -1;
            } else {
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);
                if (d1 <= d2) {
                    return 1;
                } else {
                    return -1;
                }
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.BR_REDUNDANCY.getIndex(withTestSessionColumn));
    column.setText(Columns.BR_REDUNDANCY.getText());
    column.setWidth(80);
    layout.setColumnData(column, new ColumnWeightData(16, 80));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            String str1 = this.lblProvider.getColumnText(o1,
                    Columns.BR_REDUNDANCY.getIndex(withTestSessionColumn));
            String str2 = this.lblProvider.getColumnText(o2,
                    Columns.BR_REDUNDANCY.getIndex(withTestSessionColumn));
            if (str1.compareTo("NaN") == 0) {
                return 1;
            } else if (str2.compareTo("NaN") == 0) {
                return -1;
            } else {
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);
                if (d1 <= d2) {
                    return 1;
                } else {
                    return -1;
                }
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD,
            Columns.COND_REDUNDANCY.getIndex(withTestSessionColumn));
    column.setText(Columns.COND_REDUNDANCY.getText());
    column.setWidth(80);
    layout.setColumnData(column, new ColumnWeightData(16, 80));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            String str1 = this.lblProvider.getColumnText(o1,
                    Columns.COND_REDUNDANCY.getIndex(withTestSessionColumn));
            String str2 = this.lblProvider.getColumnText(o2,
                    Columns.COND_REDUNDANCY.getIndex(withTestSessionColumn));
            if (str1.compareTo("NaN") == 0) {
                return 1;
            } else if (str2.compareTo("NaN") == 0) {
                return -1;
            } else {
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);
                if (d1 <= d2) {
                    return 1;
                } else {
                    return -1;
                }
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD,
            Columns.LOOP_REDUNDANCY.getIndex(withTestSessionColumn));
    column.setText(Columns.LOOP_REDUNDANCY.getText());
    column.setWidth(80);
    layout.setColumnData(column, new ColumnWeightData(16, 80));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            String str1 = this.lblProvider.getColumnText(o1,
                    Columns.LOOP_REDUNDANCY.getIndex(withTestSessionColumn));
            String str2 = this.lblProvider.getColumnText(o2,
                    Columns.LOOP_REDUNDANCY.getIndex(withTestSessionColumn));
            if (str1.compareTo("NaN") == 0) {
                return 1;
            } else if (str2.compareTo("NaN") == 0) {
                return -1;
            } else {
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);
                if (d1 <= d2) {
                    return 1;
                } else {
                    return -1;
                }
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.REDUNDANCY.getIndex(withTestSessionColumn));
    column.setText(Columns.REDUNDANCY.getText());
    column.setWidth(80);
    layout.setColumnData(column, new ColumnWeightData(16, 80));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            String str1 = this.lblProvider.getColumnText(o1,
                    Columns.REDUNDANCY.getIndex(withTestSessionColumn));
            String str2 = this.lblProvider.getColumnText(o2,
                    Columns.REDUNDANCY.getIndex(withTestSessionColumn));
            if (str1.compareTo("NaN") == 0) {
                return 1;
            } else if (str2.compareTo("NaN") == 0) {
                return -1;
            } else {
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);
                if (d1 <= d2) {
                    return 1;
                } else {
                    return -1;
                }
            }
        }
    };

    // Covered Items columns:
    column = new TreeColumn(viewer.getTree(), SWT.LEAD,
            Columns.ST_COVEREDITEMS.getIndex(withTestSessionColumn));
    column.setText(Columns.ST_COVEREDITEMS.getText());
    column.setWidth(60);
    layout.setColumnData(column, new ColumnWeightData(16, 60));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            int a = Integer.parseInt(this.lblProvider.getColumnText(o1,
                    Columns.ST_COVEREDITEMS.getIndex(withTestSessionColumn)));
            int b = Integer.parseInt(this.lblProvider.getColumnText(o2,
                    Columns.ST_COVEREDITEMS.getIndex(withTestSessionColumn)));
            if (a <= b) {
                return 1;
            } else {
                return -1;
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD,
            Columns.BR_COVEREDITEMS.getIndex(withTestSessionColumn));
    column.setText(Columns.BR_COVEREDITEMS.getText());
    column.setWidth(60);
    layout.setColumnData(column, new ColumnWeightData(16, 60));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            int a = Integer.parseInt(this.lblProvider.getColumnText(o1,
                    Columns.BR_COVEREDITEMS.getIndex(withTestSessionColumn)));
            int b = Integer.parseInt(this.lblProvider.getColumnText(o2,
                    Columns.BR_COVEREDITEMS.getIndex(withTestSessionColumn)));
            if (a <= b) {
                return 1;
            } else {
                return -1;
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD,
            Columns.COND_COVEREDITEMS.getIndex(withTestSessionColumn));
    column.setText(Columns.COND_COVEREDITEMS.getText());
    column.setWidth(60);
    layout.setColumnData(column, new ColumnWeightData(16, 60));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            int a = Integer.parseInt(this.lblProvider.getColumnText(o1,
                    Columns.COND_COVEREDITEMS.getIndex(withTestSessionColumn)));
            int b = Integer.parseInt(this.lblProvider.getColumnText(o2,
                    Columns.COND_COVEREDITEMS.getIndex(withTestSessionColumn)));
            if (a <= b) {
                return 1;
            } else {
                return -1;
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD,
            Columns.LOOP_COVEREDITEMS.getIndex(withTestSessionColumn));
    column.setText(Columns.LOOP_COVEREDITEMS.getText());
    column.setWidth(60);
    layout.setColumnData(column, new ColumnWeightData(16, 60));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            int a = Integer.parseInt(this.lblProvider.getColumnText(o1,
                    Columns.LOOP_COVEREDITEMS.getIndex(withTestSessionColumn)));
            int b = Integer.parseInt(this.lblProvider.getColumnText(o2,
                    Columns.LOOP_COVEREDITEMS.getIndex(withTestSessionColumn)));
            if (a <= b) {
                return 1;
            } else {
                return -1;
            }
        }
    };

    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.COVEREDITEMS.getIndex(withTestSessionColumn));
    column.setText(Columns.COVEREDITEMS.getText());
    column.setWidth(60);
    layout.setColumnData(column, new ColumnWeightData(16, 60));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {

        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            int a = Integer.parseInt(
                    this.lblProvider.getColumnText(o1, Columns.COVEREDITEMS.getIndex(withTestSessionColumn)));
            int b = Integer.parseInt(
                    this.lblProvider.getColumnText(o2, Columns.COVEREDITEMS.getIndex(withTestSessionColumn)));
            if (a <= b) {
                return 1;
            } else {
                return -1;
            }
        }
    };

    viewer.getTree().setRedraw(true);
}

From source file:org.codecover.eclipse.views.controls.TestSessionsViewerFactory.java

License:Open Source License

private static void configureViewer(final TreeViewer viewer, final boolean withTestSessionColumn,
        final Runnable disposeRunnable) {
    TreeColumnLayout layout = new TreeColumnLayout();
    TreeColumn column;/*w ww .j  av a2  s  .co  m*/

    viewer.getTree().setRedraw(false);

    viewer.getTree().getParent().setLayout(layout);

    // set providers
    viewer.setContentProvider(new ViewerContentProvider(disposeRunnable));
    viewer.setLabelProvider(new ViewerLabelProvider(withTestSessionColumn));

    // add columns to viewer
    viewer.getTree().setHeaderVisible(true);
    // name column
    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.NAME.getIndex(withTestSessionColumn));
    column.setText(Columns.NAME.getText());
    column.setWidth(120);
    layout.setColumnData(column, new ColumnWeightData(52, 120));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) {
        private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            return Collator.getInstance().compare(
                    this.lblProvider.getColumnText(o1, Columns.NAME.getIndex(withTestSessionColumn)),
                    this.lblProvider.getColumnText(o2, Columns.NAME.getIndex(withTestSessionColumn)));
        }
    };
    // test session column (optional)
    if (withTestSessionColumn) {
        column = new TreeColumn(viewer.getTree(), SWT.LEAD,
                Columns.TESTSESSION.getIndex(withTestSessionColumn));
        column.setText(Columns.TESTSESSION.getText());
        column.setWidth(100);
        layout.setColumnData(column, new ColumnWeightData(16, 100));
        new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) {
            private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider();

            @Override
            protected int doCompare(Viewer viewer, Object o1, Object o2) {
                return Collator.getInstance().compare(
                        this.lblProvider.getColumnText(o1, Columns.TESTSESSION.getIndex(withTestSessionColumn)),
                        this.lblProvider.getColumnText(o2,
                                Columns.TESTSESSION.getIndex(withTestSessionColumn)));
            }
        };
    }
    // date column
    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.DATE.getIndex(withTestSessionColumn));
    column.setText(Columns.DATE.getText());
    column.setWidth(80);
    layout.setColumnData(column, new ColumnWeightData(16, 80));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {
        private final DateComparator comparator = new DateComparator();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            return this.comparator.compare(viewer, o1, o2);
        }
    };
    // time column
    column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.TIME.getIndex(withTestSessionColumn));
    column.setText(Columns.TIME.getText());
    column.setWidth(60);
    layout.setColumnData(column, new ColumnWeightData(16, 60));
    new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) {
        private final DateComparator comparator = new DateComparator();

        @Override
        protected int doCompare(Viewer viewer, Object o1, Object o2) {
            return this.comparator.compare(viewer, o1, o2);
        }
    };

    viewer.getTree().setRedraw(true);
}

From source file:org.cs3.pdt.analysis.views.AbstractAnalysisView.java

License:Open Source License

protected TreeViewer createResultTreeViewer(Composite parent) {
    final TreeViewer treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    gridData.verticalAlignment = GridData.FILL;

    Tree tree = treeViewer.getTree();/*from  ww  w  .  j a  va2  s.c o  m*/

    tree.addMouseListener(new MouseListener() {

        @Override
        public void mouseUp(MouseEvent e) {
        }

        @Override
        public void mouseDown(MouseEvent e) {
        }

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ISelection selection = treeViewer.getSelection();
            if (selection instanceof ITreeSelection) {
                Object o = ((ITreeSelection) selection).getFirstElement();
                if (o instanceof IResult) {
                    selectResultInEditor((IResult) o);
                }
            }
        }
    });
    tree.setLayoutData(gridData);
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    resultContentProvider = new ResultTableContentProvider(getResultModel());
    treeViewer.setContentProvider(resultContentProvider);
    treeViewer.setInput(new Object());

    resultTreeViewerColumns = new TreeViewerColumn[3];

    for (int i = 0; i < resultTreeViewerColumns.length; i++) {
        resultTreeViewerColumns[i] = new TreeViewerColumn(treeViewer, SWT.NONE);
        resultTreeViewerColumns[i].getColumn().setMoveable(true);
    }

    resultTreeViewerColumns[0].getColumn().setWidth(300);
    resultTreeViewerColumns[0].getColumn().setText("Description");
    resultTreeViewerColumns[0].setLabelProvider(new ResultTableDescriptionColumnLabelProvider());

    resultTreeViewerColumns[1].getColumn().setWidth(150);
    resultTreeViewerColumns[1].getColumn().setText("Resource");
    resultTreeViewerColumns[1].setLabelProvider(new ResultTableResourceColumnLabelProvider());

    resultTreeViewerColumns[2].getColumn().setWidth(100);
    resultTreeViewerColumns[2].getColumn().setText("Location");
    resultTreeViewerColumns[2].setLabelProvider(new ResultTableLocationColumnLabelProvider());

    return treeViewer;
}

From source file:org.cs3.pdt.common.search.PrologSearchResultPage.java

License:Open Source License

@Override
protected void configureTreeViewer(TreeViewer viewer) {
    viewer.setLabelProvider(new DecoratingPrologSearchLabelProvider(new PrologSearchLabelProvider()));
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);
    //      viewer.setLabelProvider(new DecoratingLabelProvider(new PrologSearchLabelProvider(), 
    //            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    fContentProvider = new PrologSearchTreeContentProvider(this);
    viewer.setContentProvider(fContentProvider);
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override/*ww  w  .  j a va  2s .c o  m*/
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof TreeSelection) {
                Object firstElement = ((TreeSelection) selection).getFirstElement();
                Match m = null;
                if (firstElement instanceof SearchModuleElement) {
                    m = ((SearchModuleElement) firstElement).getMatch();
                } else if (firstElement instanceof SearchPredicateElement) {
                    m = ((SearchPredicateElement) firstElement).getFirstOccurrence();
                } else if (firstElement instanceof SearchFileTreeElement) {
                    m = ((SearchFileTreeElement) firstElement).getFirstMatch();
                }
                if (m != null) {
                    final Match match = m;
                    UIJob job = new UIJob("Show Match") {
                        @Override
                        public IStatus runInUIThread(IProgressMonitor monitor) {
                            try {
                                showMatch(match, match.getOffset(), match.getLength(), true);
                            } catch (PartInitException e) {
                                Debug.report(e);
                            }
                            return Status.OK_STATUS;
                        }
                    };
                    job.schedule();
                }
            }
        }
    });
    viewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeExpanded(TreeExpansionEvent event) {
            final AbstractTreeViewer treeViewer = event.getTreeViewer();
            PrologSearchTreeContentProvider contentProvider = (PrologSearchTreeContentProvider) treeViewer
                    .getContentProvider();
            final Object element = event.getElement();
            int expandLevel = 1;
            Object[] children = contentProvider.getChildren(element);
            while (children.length == 1) {
                expandLevel++;
                children = contentProvider.getChildren(children[0]);
            }
            if (expandLevel > 1) {
                final int finalExpandLevel = expandLevel;
                treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
                    @Override
                    public void run() {
                        treeViewer.expandToLevel(element, finalExpandLevel);
                    }
                });
            }
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
        }
    });
}