Example usage for org.eclipse.jface.viewers TreeViewerColumn getColumn

List of usage examples for org.eclipse.jface.viewers TreeViewerColumn getColumn

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewerColumn getColumn.

Prototype

public TreeColumn getColumn() 

Source Link

Usage

From source file:gov.redhawk.sca.ui.ScaPropertiesViewer.java

License:Open Source License

protected void createValueColumn(ILabelProvider rootLabelProvider) {
    TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.None);
    column.getColumn().setMoveable(false);
    column.getColumn().setResizable(true);
    column.getColumn().setText("Value");
    treeColumnLayout.setColumnData(column.getColumn(),
            new ColumnPixelData(50, column.getColumn().getResizable()));
    column.setLabelProvider(createValueColumnLabelProvider(rootLabelProvider));
    column.setEditingSupport(createValueColumnEditingSupport());
}

From source file:gov.redhawk.sca.ui.ScaPropertiesViewer.java

License:Open Source License

protected TreeViewerColumn createPropertyColumn(ILabelProvider rootLabelProvider) {
    TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.None);
    viewer.getTree().setSortColumn(column.getColumn());
    column.getColumn().setMoveable(false);
    column.getColumn().setResizable(true);
    column.getColumn().setText("Property");
    treeColumnLayout.setColumnData(column.getColumn(),
            new ColumnPixelData(250, column.getColumn().getResizable()));
    column.setLabelProvider(createPropertyColumnLabelProvider(rootLabelProvider));
    column.getColumn().addSelectionListener(new SelectionAdapter() {

        @Override//from  w w  w . j  a  va  2 s . c  o  m
        public void widgetSelected(final SelectionEvent e) {
            final Tree tree = viewer.getTree();
            if (tree.getSortDirection() == SWT.UP) {
                tree.setSortDirection(SWT.DOWN);
            } else {
                tree.setSortDirection(SWT.UP);
            }
            viewer.refresh();
        }
    });

    return column;
}

From source file:lumina.ui.dialogs.ControlPanelActionEditorDialog.java

/**
 * Creates the widgets for this editor./*from  w  w  w . j  a v  a 2  s  .c  o  m*/
 * 
 * @param parent
 *            parent control
 * @return control with the dialog area
 */
// CHECKSTYLE:OFF - Automatically generated code for the UI
protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    GridLayout gridLayout = (GridLayout) container.getLayout();
    gridLayout.marginBottom = -8;
    gridLayout.verticalSpacing = 6;

    // TableViewer
    tableViewer = new TreeViewer(container, SWT.BORDER | SWT.FULL_SELECTION);

    table = tableViewer.getTree();
    table.setHeaderVisible(true);
    table.setBackgroundMode(SWT.INHERIT_FORCE);
    table.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
    table.setLinesVisible(true);

    GridData gd_table = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd_table.heightHint = 183;
    table.setLayoutData(gd_table);

    // FIXME: Tooltips and messages

    final TreeViewerColumn labelColumn = new TreeViewerColumn(tableViewer, SWT.NONE);
    labelColumn.getColumn().setText(COLUMN_LABEL_NAME);
    labelColumn.getColumn().setWidth(200);
    labelColumn.getColumn().setToolTipText(Messages.getString("ControlPanelActionEditorDialog.labelTooltip"));
    labelColumn.getColumn().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            // Set the sorter if it's not already active
            if (tableViewer.getSorter() == null)
                tableViewer.setSorter(actionViewerSorter);
            int dir = ((ActionViewerSorter) tableViewer.getSorter()).doSort(LABEL_COLUMN_INDEX);
            table.setSortColumn(labelColumn.getColumn());
            table.setSortDirection(dir);
            tableViewer.refresh();

        }
    });

    final TreeViewerColumn commandColumn = new TreeViewerColumn(tableViewer, SWT.NONE);
    commandColumn.getColumn().setText(COLUMN_COMMAND_NAME);
    commandColumn.getColumn().setToolTipText(Messages.getString("ControlPanelActionEditorDialog.idTooltip"));
    commandColumn.getColumn().setWidth(100);
    commandColumn.getColumn().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            // Set the sorter if it's not already active
            if (tableViewer.getSorter() == null)
                tableViewer.setSorter(actionViewerSorter);
            int dir = ((ActionViewerSorter) tableViewer.getSorter()).doSort(COMMAND_COLUMN_INDEX);
            table.setSortColumn(commandColumn.getColumn());
            table.setSortDirection(dir);
            tableViewer.refresh();

        }
    });

    final TreeViewerColumn parameterColumn = new TreeViewerColumn(tableViewer, SWT.NONE);
    parameterColumn.getColumn().setText(COLUMN_PARAMETER_NAME);
    parameterColumn.getColumn().setToolTipText(Messages.getString("ControlPanelActionEditorDialog.idTooltip"));
    parameterColumn.getColumn().setWidth(100);
    parameterColumn.getColumn().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            // Set the sorter if it's not already active
            if (tableViewer.getSorter() == null)
                tableViewer.setSorter(actionViewerSorter);
            int dir = ((ActionViewerSorter) tableViewer.getSorter()).doSort(PARAMETER_COLUMN_INDEX);
            table.setSortColumn(commandColumn.getColumn());
            table.setSortDirection(dir);
            tableViewer.refresh();
        }
    });

    final TreeViewerColumn deviceColumn = new TreeViewerColumn(tableViewer, SWT.NONE);
    deviceColumn.getColumn().setText(COLUMN_DEVICE_NAME);
    deviceColumn.getColumn().setToolTipText(Messages.getString("ControlPanelActionEditorDialog.idTooltip"));
    deviceColumn.getColumn().setWidth(100);
    deviceColumn.getColumn().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            // Set the sorter if it's not already active
            if (tableViewer.getSorter() == null)
                tableViewer.setSorter(actionViewerSorter);
            int dir = ((ActionViewerSorter) tableViewer.getSorter()).doSort(DEVICE_COLUMN_INDEX);
            table.setSortColumn(commandColumn.getColumn());
            table.setSortDirection(dir);
            tableViewer.refresh();

        }
    });

    // Set the editors, cell modifier, and column properties

    tableViewer.setColumnProperties(new String[] { COLUMN_LABEL_NAME, COLUMN_COMMAND_NAME });
    // tableViewer.setCellModifier(new LabelCellModifier(tableViewer));

    tableViewer.setContentProvider(new PanelActionsContentProvider());
    tableViewer.setLabelProvider(new ActionLabelProvider());

    // Set up the temporary actions panel object
    actionsCurrentlyBeeingEdited = new PanelActions(panelActions);

    tableViewer.setInput(actionsCurrentlyBeeingEdited);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // Cell Editors
    // tableViewer.setCellEditors(new CellEditor[] { new
    // ChoiceCellEditor(table),
    // new TextCellEditor(table) });
    labelColumn.setEditingSupport(new LabelEditingSupport(tableViewer));
    commandColumn.setEditingSupport(new CommandEditingSupport(tableViewer));
    parameterColumn.setEditingSupport(new CommandParameterEditingSupport(tableViewer));
    deviceColumn.setEditingSupport(new ActionDeviceEditingSupport(tableViewer));

    // commandColumn.
    // Create the types
    Transfer[] types = new Transfer[] { LocalSelectionTransfer.getTransfer() };

    // Create the drag source
    DragSource source = new DragSource(table, DND.DROP_MOVE);
    source.setTransfer(types);
    source.addDragListener(new DragSourceAdapter() {
        public void dragStart(DragSourceEvent event) {
            super.dragStart(event);
            tableViewer.setSorter(null);
            table.setSortColumn(null);
        }

        public void dragSetData(DragSourceEvent event) {

            // Set the transfer data
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            LocalSelectionTransfer.getTransfer().setSelection(selection);
        }

    });

    // Create the drop target
    DropTarget target = new DropTarget(table, DND.DROP_MOVE | DND.DROP_DEFAULT);

    target.setTransfer(types);
    target.addDropListener(new DropTargetAdapter() {
        public void dragEnter(DropTargetEvent event) {
            if (event.detail == DND.DROP_DEFAULT) {
                event.detail = (event.operations & DND.DROP_MOVE) != 0 ? DND.DROP_MOVE : DND.DROP_NONE;
            }

            // Allow dropping table items only
            for (int i = 0, n = event.dataTypes.length; i < n; i++) {
                if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataTypes[i])) {
                    event.currentDataType = event.dataTypes[i];
                }
            }
        }

        public void dragOver(DropTargetEvent event) {
            // Provide visual feedback
            event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
        }

        public void drop(DropTargetEvent event) {
            // If any item was dropped . . .
            if (LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType)) {
                // Get the dropped data
                IStructuredSelection selection = (IStructuredSelection) event.data;
                Action sourceItem = (Action) selection.getFirstElement();

                if (event.item != null) {
                    Action destinationItem = (Action) event.item.getData();
                    actionsCurrentlyBeeingEdited.moveTo(actionsCurrentlyBeeingEdited.indexOf(sourceItem),
                            actionsCurrentlyBeeingEdited.indexOf(destinationItem));

                    // update viewer
                    tableViewer.refresh();
                    return;
                } else {
                    actionsCurrentlyBeeingEdited.moveTo(actionsCurrentlyBeeingEdited.indexOf(sourceItem),
                            actionsCurrentlyBeeingEdited.size() - 1);

                    // update viewer
                    tableViewer.refresh();
                    return;
                }
            }
        }
    });
    return container;
}

From source file:main.java.miro.browser.browser.widgets.stats.ResultWidget.java

License:Open Source License

public void initValidationStatusViewer() {
    final Tree validityTree = new Tree(this, SWT.FULL_SELECTION | SWT.BORDER);
    validationStatusViewer = new TreeViewer(validityTree);

    GridData gridData = new GridData();
    gridData.verticalAlignment = SWT.FILL;
    validityTree.setLayoutData(gridData);

    validityTree.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            StatsTreeItem selected = (StatsTreeItem) e.item.getData();

            objectTypeTreeViewer.setInput(StatsTreeItem.getFakeRoot(selected));
            objectTypeTreeViewer.expandAll();
            objectTypeTreeViewer.refresh();
            setObjectBreakdownItems(selected.getObjectTypeBreakdown());
        }//from w w  w .j  av a  2 s  .  c  o  m

    });

    TreeViewerColumn colorColumn = new TreeViewerColumn(validationStatusViewer, SWT.BORDER);
    colorColumn.getColumn().setWidth(30);

    TreeViewerColumn textColumn = new TreeViewerColumn(validationStatusViewer, SWT.BORDER);
    textColumn.getColumn().setWidth(250);
    textColumn.setLabelProvider(new KeyColumnLabelProvider());

    TreeViewerColumn amountColumn = new TreeViewerColumn(validationStatusViewer, SWT.BORDER);
    amountColumn.getColumn().setWidth(200);
    amountColumn.setLabelProvider(new AmountColumnLabelProvider());

    TreeViewerColumn percentColumn = new TreeViewerColumn(validationStatusViewer, SWT.BORDER);
    percentColumn.getColumn().setWidth(100);
    percentColumn.setLabelProvider(new PercentageColumnLabelProvider());

    validationStatusViewer.setContentProvider(new StatsTreeContentProvider(StatsViewerType.VALIDITY));
    validationStatusViewer.setLabelProvider(new StatsTreeLabelProvider(StatsViewerType.VALIDITY));
}

From source file:main.java.miro.browser.browser.widgets.stats.ResultWidget.java

License:Open Source License

private void initObjectBreakdownViewer() {
    Tree objectTree = new Tree(this, SWT.BORDER);
    objectTypeTreeViewer = new TreeViewer(objectTree);

    GridData gridData = new GridData();
    gridData.verticalAlignment = SWT.FILL;
    objectTree.setLayoutData(gridData);/*w  w w  .  ja  v  a2 s. co  m*/

    TreeViewerColumn colorColumn = new TreeViewerColumn(objectTypeTreeViewer, SWT.BORDER);
    colorColumn.getColumn().setWidth(30);

    TreeViewerColumn textColumn = new TreeViewerColumn(objectTypeTreeViewer, SWT.NONE);
    textColumn.getColumn().setWidth(250);
    textColumn.setLabelProvider(new KeyColumnLabelProvider());

    TreeViewerColumn amountColumn = new TreeViewerColumn(objectTypeTreeViewer, SWT.NONE);
    amountColumn.getColumn().setWidth(200);
    amountColumn.setLabelProvider(new AmountColumnLabelProvider());

    TreeViewerColumn percentColumn = new TreeViewerColumn(objectTypeTreeViewer, SWT.NONE);
    percentColumn.getColumn().setWidth(100);
    percentColumn.setLabelProvider(new PercentageColumnLabelProvider());

    objectTypeTreeViewer.setContentProvider(new StatsTreeContentProvider(StatsViewerType.OBJECT_TYPE));
    objectTypeTreeViewer.setLabelProvider(new StatsTreeLabelProvider(StatsViewerType.OBJECT_TYPE));
}

From source file:movies.ui.views.sort.TreeViewerColumnSorter.java

License:Open Source License

/**
 * Constructor./* w  w w . java 2s  . com*/
 * 
 * @param viewer TreeViewer to be sorted
 * @param column TreeViewerColumn based on which the TreeViewer is sorted
 * @param columnLabelProvider LabelProvider used to sort the contents
 */
public TreeViewerColumnSorter(TreeViewer viewer, TreeViewerColumn column,
        ColumnLabelProvider columnLabelProvider) {
    super(viewer, columnLabelProvider);
    this.column = column;

    column.getColumn().addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (getViewer().getComparator() != null) {
                if (getViewer().getComparator() == TreeViewerColumnSorter.this) {
                    if (getDirection() == ASC) {
                        setSorter(TreeViewerColumnSorter.this, DESC);
                    } else {
                        setSorter(TreeViewerColumnSorter.this, ASC);
                    }
                } else {
                    setSorter(TreeViewerColumnSorter.this, ASC);
                }
            } else {
                setSorter(TreeViewerColumnSorter.this, ASC);
            }
        }
    });
}

From source file:net.bioclipse.qsar.ui.editors.DescriptorsPage.java

License:Open Source License

/**
  * Create the left part of the page for displaying molecules
  * @param form// w  w  w  .j  a  v  a  2s.com
  * @param toolkit
  */
private void createDescriptorSection(final ScrolledForm form, FormToolkit toolkit) {

    Section descSection = toolkit.createSection(form.getBody(), Section.TWISTIE | Section.DESCRIPTION);
    descSection.setActiveToggleColor(toolkit.getHyperlinkGroup().getActiveForeground());
    descSection.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
    toolkit.createCompositeSeparator(descSection);
    Composite client = toolkit.createComposite(descSection, SWT.WRAP);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    client.setLayout(layout);

    final Button btnOnlyImpl = toolkit.createButton(client, "Display only with implementation", SWT.CHECK);
    btnOnlyImpl.setSelection(true);
    btnOnlyImpl.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (btnOnlyImpl.getSelection() == true) {
                descViewer.addFilter(onlyWithImplFilter);
            } else if (btnOnlyImpl.getSelection() == false) {
                descViewer.removeFilter(onlyWithImplFilter);
            }
        }

    });
    GridData gdBTN = new GridData(GridData.FILL_HORIZONTAL);
    gdBTN.horizontalSpan = 2;
    btnOnlyImpl.setLayoutData(gdBTN);

    descViewer = new TreeViewer(client, SWT.BORDER | SWT.MULTI);
    descTree = descViewer.getTree();
    toolkit.adapt(descTree, true, true);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.widthHint = 250;
    descTree.setLayoutData(gd);

    descTree.setHeaderVisible(true);
    //          molTable.setLinesVisible(true);
    toolkit.adapt(descTree, true, true);

    //Add providers columns
    TableLayout tableLayout = new TableLayout();
    descTree.setLayout(tableLayout);

    TreeViewerColumn firstCol = new TreeViewerColumn(descViewer, SWT.NONE);
    firstCol.getColumn().setText("");
    tableLayout.addColumnData(new ColumnPixelData(200));

    TreeViewerColumn providersCol = new TreeViewerColumn(descViewer, SWT.NONE);
    providersCol.getColumn().setText("Provider(s)");
    tableLayout.addColumnData(new ColumnPixelData(100));

    descViewer.setContentProvider(new DescriptorContentProvider());
    descViewer.setLabelProvider(new DescriptorLabelProvider());
    descViewer.setUseHashlookup(true);

    //Sort by name
    descViewer.setSorter(new ViewerSorter());

    //Default is to only show with impl (checkbox is selected!)
    descViewer.addFilter(onlyWithImplFilter);

    //If focus gained, make this viewer provide selections
    descViewer.getTree().addFocusListener(new FocusListener() {

        public void focusGained(FocusEvent e) {
            rightViewer.setSelection(null);
        }

        public void focusLost(FocusEvent e) {
        }
    });

    descTree.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {
            //Delete key
            if (e.keyCode == SWT.DEL) {
                deleteSelectedDescriptors();
            }

            //Space key, toggle selection
            if (e.keyCode == 32) {

                //                     IStructuredSelection msel=(IStructuredSelection) descViewer.getSelection();
                //TODO: implement

            }
        }

        public void keyReleased(KeyEvent e) {
        }
    });

    //Create composite centered vertically and add buttons to it
    Composite comp = toolkit.createComposite(client, SWT.WRAP);
    comp.setLayout(new GridLayout());
    GridData gd2 = new GridData(GridData.VERTICAL_ALIGN_CENTER);
    comp.setLayoutData(gd2);

    Button btnAdd = toolkit.createButton(comp, " >> ", SWT.PUSH);
    btnAdd.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            addSelectedDescriptors();
        }
    });
    GridData gda2 = new GridData(GridData.VERTICAL_ALIGN_CENTER);
    gda2.widthHint = 60;
    btnAdd.setLayoutData(gda2);

    Button btnDel = toolkit.createButton(comp, " << ", SWT.PUSH);
    btnDel.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            deleteSelectedDescriptors();
        }
    });
    GridData gd21 = new GridData(GridData.VERTICAL_ALIGN_CENTER);
    gd21.widthHint = 60;
    btnDel.setLayoutData(gd21);

    //Wrap up section
    toolkit.paintBordersFor(client);
    descSection.setText("Avaliable descriptors");
    descSection.setDescription("Descriptors available for QSAR analysis");
    descSection.setClient(client);
    descSection.setExpanded(true);
    descSection.addExpansionListener(new ExpansionAdapter() {
        public void expansionStateChanged(ExpansionEvent e) {
            form.reflow(false);
        }
    });

    GridData gd122 = new GridData(GridData.FILL_BOTH);
    descSection.setLayoutData(gd122);

}

From source file:net.enilink.komma.edit.ui.properties.internal.parts.PropertyTreePart.java

License:Open Source License

private void createTree(Composite parent) {
    final Tree tree = getWidgetFactory().createTree(parent,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    tree.setHeaderVisible(true);//from w w w . j  a  v a 2 s.com
    tree.setLinesVisible(true);

    GridData treeGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    tree.setLayoutData(treeGridData);

    treeViewer = new TreeViewer(tree) {
        public boolean getExpandedState(Object elementOrTreePath) {
            if (cachedExpandedElements.contains(elementOrTreePath)) {
                return true;
            }
            return super.getExpandedState(elementOrTreePath);
        };
    };
    treeViewer.setUseHashlookup(true);
    enableToolTips(treeViewer);
    treeViewer.setContentProvider(contentProvider);

    TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT);
    column.getColumn().setText("Property");
    column.getColumn().setWidth(300);
    column.setLabelProvider(new TreeLabelProvider(ColumnType.PROPERTY));

    editingSupports = new ArrayList<>();
    ValueEditingSupport editingSupport = new ValueEditingSupport(treeViewer, EditingHelper.Type.PROPERTY);
    editingSupports.add(editingSupport);
    column.setEditingSupport(editingSupport);

    column = new TreeViewerColumn(treeViewer, SWT.LEFT);
    column.getColumn().setAlignment(SWT.LEFT);
    column.getColumn().setText("Value");
    column.getColumn().setWidth(200);
    column.setLabelProvider(new TreeLabelProvider(ColumnType.VALUE));

    editingSupport = new ValueEditingSupport(treeViewer);
    editingSupports.add(editingSupport);
    column.setEditingSupport(editingSupport);

    column = new TreeViewerColumn(treeViewer, SWT.CENTER);
    column.getColumn().setText("lang/type");
    column.setLabelProvider(new TreeLabelProvider(ColumnType.LITERAL_LANG_TYPE));
    column.getColumn().setWidth(80);

    editingSupport = new ValueEditingSupport(treeViewer, EditingHelper.Type.LITERAL_LANG_TYPE);
    editingSupports.add(editingSupport);
    column.setEditingSupport(editingSupport);

    column = new TreeViewerColumn(treeViewer, SWT.CENTER);
    column.getColumn().setText("Inferred");
    column.setLabelProvider(new TreeLabelProvider(ColumnType.INFERRED));
    column.getColumn().setWidth(50);

    treeViewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeCollapsed(final TreeExpansionEvent event) {
            getShell().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    treeViewer.update(event.getElement(), null);
                }
            });
        }

        @Override
        public void treeExpanded(final TreeExpansionEvent event) {
            getShell().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    treeViewer.update(event.getElement(), null);
                }
            });
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            asyncExec(new Runnable() {
                public void run() {
                    addPropertyValueAction.run();
                }
            });
        }
    });
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            getForm().fireSelectionChanged(PropertyTreePart.this, event.getSelection());
        }
    });

    final MenuManager menuManager = new MenuManager();
    menuManager.setRemoveAllWhenShown(true);
    menuManager.addMenuListener(new IMenuListener() {
        @Override
        public void menuAboutToShow(IMenuManager manager) {
            menuManager.add(addPropertyAction);
            if (((IStructuredSelection) treeViewer.getSelection()).getFirstElement() instanceof PropertyNode) {
                menuManager.add(addPropertyValueAction);
            }
        }
    });

    Menu menu = menuManager.createContextMenu(treeViewer.getTree());
    treeViewer.getTree().setMenu(menu);
}

From source file:net.enilink.komma.edit.ui.wizards.RefactorPreviewPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout());

    final Tree tree = new Tree(composite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    tree.setHeaderVisible(true);/* www.  ja  v  a2s . c om*/
    tree.setLinesVisible(true);

    GridData treeGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    tree.setLayoutData(treeGridData);

    treeViewer = new TreeViewer(tree);
    treeViewer.setContentProvider(new ITreeContentProvider() {
        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        @SuppressWarnings("unchecked")
        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof Collection) {
                return ((Collection<Change>) inputElement).toArray();
            }
            return getChildren(inputElement);
        }

        @Override
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof Change) {
                return ((Change) parentElement).getStatementChanges().toArray();
            }
            return null;
        }

        @Override
        public Object getParent(Object element) {
            return null;
        }

        @Override
        public boolean hasChildren(Object element) {
            if (element instanceof Change) {
                return true;
            }
            return false;
        }

        @Override
        public void dispose() {
        }
    });
    treeViewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeCollapsed(final TreeExpansionEvent event) {
            getShell().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    treeViewer.update(event.getElement(), null);
                }
            });
        }

        @Override
        public void treeExpanded(final TreeExpansionEvent event) {
            getShell().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    treeViewer.update(event.getElement(), null);
                }
            });
        }
    });

    treeViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            if (o1 instanceof Change && o2 instanceof Change) {
                return ((Change) o1).getModel().toString().compareTo(((Change) o2).getModel().toString());
            }
            if (o1 instanceof StatementChange && o2 instanceof StatementChange) {
                return compare(((StatementChange) o1).getStatement().getSubject(),
                        ((StatementChange) o2).getStatement().getSubject());
            }
            return o1.hashCode() - o2.hashCode();
        }

        private int compare(IReference s1, IReference s2) {
            // blank nodes at bottom
            if (s1.getURI() == null) {
                return (s2.getURI() == null ? s1.toString().compareTo(s2.toString()) : 1);
            }
            if (s2.getURI() == null) {
                return -1;
            }
            // compare the URIs
            return s1.toString().compareTo(s2.toString());
        }
    });

    TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT);
    column.getColumn().setText("Resource");
    column.getColumn().setWidth(350);
    column.setLabelProvider(new TreeLabelProvider(TreeLabelProvider.ColumnType.RESOURCE));

    column = new TreeViewerColumn(treeViewer, SWT.LEFT);
    column.getColumn().setText("Property");
    column.getColumn().setWidth(350);
    column.setLabelProvider(new TreeLabelProvider(TreeLabelProvider.ColumnType.PROPERTY));

    column = new TreeViewerColumn(treeViewer, SWT.LEFT);
    column.getColumn().setAlignment(SWT.LEFT);
    column.getColumn().setText("Value");
    column.getColumn().setWidth(350);
    column.setLabelProvider(new TreeLabelProvider(TreeLabelProvider.ColumnType.VALUE));

    setDescription("Preview and confirm the pending changes.");
    setControl(composite);
    setPageComplete(false);
}

From source file:net.java.dev.antutility.internal.ui.editor.BuildMetricsEditor.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
    viewer.setContentProvider(new BuildMetricsTreeContentProvider());

    getSite().setSelectionProvider(viewer); // ORDER DEPENDENCY

    final Tree tree = viewer.getTree();
    tree.setLinesVisible(true);/*from   w  w w.  java 2  s.c  om*/
    tree.setHeaderVisible(true);

    TreeViewerColumn column;

    column = new TreeViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Name");
    column.setLabelProvider(new NameColumnLabelProvider());
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);

    column = new TreeViewerColumn(viewer, SWT.RIGHT);
    column.getColumn().setText("Self Time (ms)");
    column.setLabelProvider(new LocalTimeColumnLabelProvider());
    column.getColumn().setWidth(100);
    column.getColumn().setMoveable(true);

    column = new TreeViewerColumn(viewer, SWT.RIGHT);
    column.getColumn().setText("Total Time (ms)");
    column.setLabelProvider(new TotalTimeColumnLabelProvider());
    column.getColumn().setWidth(100);
    column.getColumn().setMoveable(true);

    column = new TreeViewerColumn(viewer, SWT.RIGHT);
    column.getColumn().setText("Child Time (ms)");
    column.setLabelProvider(new ChildTimeColumnLabelProvider());
    column.getColumn().setWidth(100);
    column.getColumn().setMoveable(true);

    column = new TreeViewerColumn(viewer, SWT.RIGHT);
    column.getColumn().setText("Invocation Count");
    column.setLabelProvider(new InvocationCountColumnLabelProvider());
    column.getColumn().setWidth(100);
    column.getColumn().setMoveable(true);

    column = new TreeViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Location");
    column.setLabelProvider(new LocationColumnLabelProvider());
    column.getColumn().setWidth(500);
    column.getColumn().setMoveable(true);

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object element = ((IStructuredSelection) selection).getFirstElement();
                if (element instanceof MeasurementAccumulator) {
                    MeasurementAccumulator accumulator = (MeasurementAccumulator) element;
                    BuildMetricsEditor.this.open(accumulator.location);
                }
            }
        }

    });

    viewer.setInput(getBuildMetrics());
}