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

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

Introduction

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

Prototype

public TreeViewerColumn(TreeViewer viewer, TreeColumn column) 

Source Link

Document

Creates a new viewer column for the given TreeViewer on the given TreeColumn .

Usage

From source file:edu.washington.cs.cupid.views.BulletinBoardView.java

License:Open Source License

private TreeViewerColumn createColumn(final String title, final int bound, final int colNumber) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);/*  ww w.j ava 2 s.  c o  m*/
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(false);
    return viewerColumn;
}

From source file:eu.aniketos.wp1.ststool.analysis.dialog.internal.ConsoleForResultsTree.java

License:Open Source License

public Composite getComposite(final Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setBackground(ColorConstants.red);
    composite.setLayout(new FillLayout());
    treeViewer = new TreeViewer(composite,
            SWT.BORDER | SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS) {
    };/*from  w  w  w  . j  a  v a2s  .c o m*/

    treeViewer.getTree().addListener(SWT.EraseItem, new Listener() {

        public void handleEvent(Event event) {
            event.detail &= ~SWT.HOT;
            event.detail &= ~SWT.SELECTED;
            event.detail &= ~SWT.FOREGROUND;
        }
    });

    treeViewer.getTree().addListener(SWT.PaintItem, new Listener() {

        public void handleEvent(Event event) {

            TreeItem it = (TreeItem) event.item;

            ConsoleObject obj = (ConsoleObject) (((TreeNode) it.getData()).getValue());

            String text = null;
            Image img = null;
            Color c = null;
            if (event.index == 0) {
                text = obj.text;
                img = obj.image;
                c = obj.foreColor1;
            } else {
                text = obj.text2;
                c = obj.foreColor2;
            }
            if (c == null)
                c = ColorConstants.black;
            event.gc.setForeground(c);

            int xOffset = 3;
            if (img != null && event.index == 0) {
                int yOffset = Math.max(0, (event.height - img.getImageData().height) / 2);
                event.gc.drawImage(img, event.x + xOffset, event.y + yOffset);
                xOffset += img.getImageData().width;
            } else if (it.getParentItem() != null) {
                xOffset += 16;
            }

            int yOffset = 0;
            Point size = event.gc.textExtent(text);
            yOffset = Math.max(0, (event.height - size.y) / 2);
            event.gc.drawText(text, event.x + xOffset + 3, event.y + yOffset, true);
            /*if(event.index==0 && obj.isSubline){
               xOffset+= event.x+size.x;
               event.gc.setLineStyle(SWT.LINE_DOT);
               event.gc.drawLine(xOffset+5, event.y + yOffset+size.y-4, xOffset+1000, event.y + yOffset+size.y-4);
            }*/
        }
    });
    treeViewer.getTree().setCursor(new Cursor(Display.getCurrent(), SWT.CURSOR_ARROW));

    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer,
            SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS);
    TreeColumn trclmnNewColumn = treeViewerColumn.getColumn();
    trclmnNewColumn.setWidth(270);

    TreeViewerColumn treeViewerColumn_1 = new TreeViewerColumn(treeViewer,
            SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS);
    TreeColumn trclmnNewColumn_1 = treeViewerColumn_1.getColumn();
    trclmnNewColumn_1.setWidth(100);

    composite.addControlListener(new TableCompositeAdapter(composite, treeViewer.getTree(),
            treeViewerColumn.getColumn(), treeViewerColumn_1.getColumn()));

    CellLabelProvider lp = new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
        }
    };

    treeViewerColumn.setLabelProvider(lp);
    treeViewerColumn_1.setLabelProvider(lp);
    treeViewer.setContentProvider(new ContentProvider());
    return composite;
}

From source file:eu.aniketos.wp1.ststool.analysis.ui.ResultView.java

License:Open Source License

/**
 * Create contents of the view part.//from  www  .j av a 2s .c  o  m
 * 
 * @param parent
 */
@Override
public void createPartControl(Composite parent) {

    parent.addDisposeListener(this);
    Composite container = toolkit.createComposite(parent, SWT.NONE);
    toolkit.paintBordersFor(container);

    container.setLayout(new FormLayout());

    Composite compositeResults = new Composite(container, SWT.NONE);
    FormData fd_composite = new FormData();
    fd_composite.left = new FormAttachment(0);
    fd_composite.top = new FormAttachment(0);
    fd_composite.bottom = new FormAttachment(100, -30);
    fd_composite.right = new FormAttachment(100);
    compositeResults.setLayoutData(fd_composite);
    compositeResults.setLayout(new FillLayout());

    Composite compositeStatusBar = new Composite(container, SWT.BORDER);
    FormData fd_composite_1 = new FormData();
    fd_composite_1.right = new FormAttachment(100);
    fd_composite_1.left = new FormAttachment(0);
    fd_composite_1.bottom = new FormAttachment(100);
    fd_composite_1.top = new FormAttachment(compositeResults);
    compositeStatusBar.setLayoutData(fd_composite_1);
    compositeStatusBar.setLayout(new FormLayout());

    SashForm sashForm = new SashForm(compositeResults, SWT.SMOOTH | SWT.VERTICAL);
    sashForm.setSashWidth(2);
    toolkit.paintBordersFor(sashForm);

    TreeViewer treeViewer = new TreeViewer(sashForm, SWT.BORDER | SWT.FULL_SELECTION);
    treeViewer.addPostSelectionChangedListener(this);
    Tree tree = treeViewer.getTree();
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    tree.setSortDirection(SWT.UP);
    toolkit.paintBordersFor(tree);

    Composite composite_1 = new Composite(sashForm, SWT.NONE);
    composite_1.setLayout(new FormLayout());

    Label lblDescription = new Label(composite_1, SWT.NONE);
    FormData fd_lblDescription = new FormData();
    fd_lblDescription.right = new FormAttachment(100, -10);
    fd_lblDescription.top = new FormAttachment(0, 10);
    fd_lblDescription.left = new FormAttachment(0, 10);
    lblDescription.setLayoutData(fd_lblDescription);
    lblDescription.setText("Description:");

    Composite composite_2 = new Composite(composite_1, SWT.NONE);
    FormData fd_composite_2 = new FormData();
    fd_composite_2.bottom = new FormAttachment(100, -10);
    fd_composite_2.right = new FormAttachment(100, -10);
    fd_composite_2.top = new FormAttachment(lblDescription, 6);
    fd_composite_2.left = new FormAttachment(0, 10);
    composite_2.setLayoutData(fd_composite_2);

    composite_2.setLayout(new FormLayout());
    composite_2.addPaintListener(new BorderPainter());

    descriptionText = new Text(composite_2, SWT.NONE | SWT.WRAP | SWT.V_SCROLL);
    descriptionText.setBackground(descriptionText.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    FormData fd_text = new FormData();
    int x = 3;
    fd_text.bottom = new FormAttachment(100, -x);
    fd_text.right = new FormAttachment(100, -x);
    fd_text.top = new FormAttachment(0, x);
    fd_text.left = new FormAttachment(0, x);
    descriptionText.setLayoutData(fd_text);
    descriptionText.setEditable(false);

    sashForm.setWeights(new int[] { 55, 45 });

    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.CENTER);
    treeViewerColumn.getColumn().setText(getMessage(ResultView_Column_1_Titile));
    treeViewerColumn.getColumn().setWidth(700);

    TreeViewerColumn treeViewerColumn2 = new TreeViewerColumn(treeViewer, SWT.LEFT);
    treeViewerColumn2.getColumn().setText(getMessage(ResultView_Column_2_Titile));
    treeViewerColumn2.getColumn().setWidth(500);

    statusLabel = new Label(compositeStatusBar, SWT.HORIZONTAL | SWT.SHADOW_NONE);
    FormData fd_lblNewLabel = new FormData();
    fd_lblNewLabel.right = new FormAttachment(100, -3);
    fd_lblNewLabel.top = new FormAttachment(0, 6);
    fd_lblNewLabel.left = new FormAttachment(3);
    statusLabel.setLayoutData(fd_lblNewLabel);
    statusLabel.setForeground(ColorConstants.red);

    container.addControlListener(new TableCompositeAdapter(container, treeViewer.getTree(),
            treeViewerColumn.getColumn(), treeViewerColumn2.getColumn()));
    new ResultViewDataProvider(treeViewer, treeViewerColumn, treeViewerColumn2, statusLabel);

    createActions();
    initializeToolBar();
    initializeMenu();
}

From source file:eu.artist.premigration.tft.tft.views.InventoryView.java

License:Open Source License

/**
 * Creates the TreeViewerColumn for the given index
 * //w  w w .  ja  v a  2s .co m
 * @param columnIndex The index number of the column
 * @return TreeViewerColumn
 */
private TreeViewerColumn createTreeViewerColumn(int columnIndex) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);

    final TreeColumn column = viewerColumn.getColumn();
    column.setText(COLUMN_TITLES[columnIndex]);
    column.setWidth(COLUMN_WIDTH[columnIndex]);
    column.setResizable(true);
    column.setMoveable(true);

    return viewerColumn;
}

From source file:eu.esdihumboldt.hale.ui.templates.webtemplates.WebTemplatesDialog.java

License:Open Source License

@Override
protected void setupViewer(final TreeViewer viewer, WebTemplate initialSelection) {
    // this label provider is used for filtering (I guess)
    viewer.setLabelProvider(new LabelProvider() {

        @Override//from  w  ww.ja v a2 s.  c o m
        public String getText(Object element) {
            if (element instanceof WebTemplate) {
                return ((WebTemplate) element).getName();
            }
            return super.getText(element);
        }

    });

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

    // main column
    TreeViewerColumn mainColumn = new TreeViewerColumn(viewer, SWT.NONE);
    mainColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof WebTemplate) {
                WebTemplate template = (WebTemplate) element;

                text.append(template.getName());
            } else {
                text.append(element.toString());
            }

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    mainColumn.getColumn().setText("Template");
    layout.setColumnData(mainColumn.getColumn(), new ColumnWeightData(7));

    // link column
    if (Desktop.isDesktopSupported()) {
        TreeViewerColumn linkColumn = new TreeViewerColumn(viewer, SWT.CENTER);
        linkColumn.setLabelProvider(new LinkLabels());

        // listener that reacts on link cell clicks
        viewer.getTree().addMouseListener(new MouseAdapter() {

            @Override
            public void mouseDown(MouseEvent e) {
                if (e.button == 1) {
                    ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
                    if (cell != null && cell.getColumnIndex() == 1 && cell.getTextBounds().contains(e.x, e.y)) {
                        Object element = cell.getElement();
                        if (element instanceof WebTemplate) {
                            try {
                                Desktop.getDesktop().browse(((WebTemplate) element).getSite());
                            } catch (IOException e1) {
                                log.error("Could not launch browser", e1);
                            }
                        }
                    }
                }
            }
        });

        layout.setColumnData(linkColumn.getColumn(), new ColumnWeightData(1));
    }

    viewer.setComparator(new ViewerComparator());

    viewer.setContentProvider(new WebTemplatesContentProvider());
    viewer.setInput(templates);
}

From source file:eu.esdihumboldt.hale.ui.util.groovy.ast.viewer.ASTViewer.java

License:Open Source License

/**
 * Constructor./*  ww w.java2 s .  c  o m*/
 * 
 * @param parent the parent composite
 * @param textViewer a text viewer where the code for an AST node should be
 *            selected on double click, or <code>null</code>
 */
public ASTViewer(Composite parent, ITextViewer textViewer) {
    this.textViewer = textViewer;

    page = new Composite(parent, SWT.NONE);
    TreeColumnLayout layout = new TreeColumnLayout();
    page.setLayout(layout);

    treeViewer = new TreeViewer(page, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    //      new DrillDownAdapter(viewer);
    treeViewer.setContentProvider(new ViewContentProvider());
    treeViewer.setLabelProvider(new ViewLabelProvider());

    treeViewer.getTree().setHeaderVisible(true);

    TreeViewerColumn mainColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    mainColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            text.append(element.getClass().getSimpleName());

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    mainColumn.getColumn().setText("Node");
    layout.setColumnData(mainColumn.getColumn(), new ColumnPixelData(200));

    TreeViewerColumn infoColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    infoColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof Parameter) {
                // getText not implemented for Parameter
                Parameter param = (Parameter) element;
                text.append(param.getName());
            } else if (element instanceof ExpressionStatement) {
                // getText not properly implemented for ExpressionStatement
                text.append(((ExpressionStatement) element).getExpression().getText());
            } else if (element instanceof ASTNode) {
                ASTNode node = (ASTNode) element;
                text.append(node.getText());
            } else if (element instanceof Variable) {
                Variable var = (Variable) element;
                text.append(var.getName());
            } else {
                text.append(element.toString());
            }

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    infoColumn.getColumn().setText("Text");
    layout.setColumnData(infoColumn.getColumn(), new ColumnPixelData(300));

    TreeViewerColumn propertiesColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    propertiesColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof Variable || element instanceof ASTNode || element instanceof VariableScope) {
                ASTNodeUtil.addProperties(element, text);
            }

            cell.setText(text.getString());
            cell.setStyleRanges(text.getStyleRanges());

            super.update(cell);
        }
    });
    propertiesColumn.getColumn().setText("Properties");
    layout.setColumnData(propertiesColumn.getColumn(), new ColumnPixelData(1600));

    makeActions();
    if (textViewer != null) {
        addDoubleClickAction();
    }
}

From source file:eu.esdihumboldt.hale.ui.views.data.internal.compare.DefinitionInstanceTreeViewer.java

License:Open Source License

/**
 * @see InstanceViewer#setInput(TypeDefinition, Iterable)
 *//*from w  ww. j  a  v  a2  s.  c  o  m*/
@Override
public void setInput(TypeDefinition type, Iterable<Instance> instances) {
    // remove old columns
    TreeColumn[] columns = treeViewer.getTree().getColumns();
    if (columns != null) {
        for (TreeColumn column : columns) {
            column.dispose();
        }
        labelProviders.clear();
    }

    // create row defs for metadata
    //         if (features != null) {
    //            boolean displayLineage = false;
    //            int lineageLength = 0;
    //            int featuresSize = 0;
    //            for (Feature f : features) {
    //               featuresSize++;
    //               Lineage l = (Lineage) f.getUserData().get("METADATA_LINEAGE"); //$NON-NLS-1$
    //               if (l != null && l.getProcessSteps().size() > 0) {
    //                  displayLineage = true;
    //                  if (lineageLength < l.getProcessSteps().size()) {
    //                     lineageLength = l.getProcessSteps().size();
    //                  }
    //               }
    //            }
    //            
    //            if (displayLineage) {
    //               Object[][] processStepsText = new Object[lineageLength][featuresSize + 1];
    //               int featureIndex = 0;
    //               for (Feature f : features) {
    //                  Lineage l = (Lineage) f.getUserData().get("METADATA_LINEAGE"); //$NON-NLS-1$
    //                  if (l != null && l.getProcessSteps().size() > 0) {
    //                     int psIndex = 0;
    //                     for (ProcessStep ps : l.getProcessSteps()) {
    //                        processStepsText[psIndex][featureIndex + 1] = ps.getDescription().toString();
    //                        psIndex++;
    //                     }
    //                  }
    //                  featureIndex++;
    //               }
    //               
    //               DefaultTreeNode lineage = new DefaultTreeNode(Messages.DefinitionFeatureTreeViewer_5); //$NON-NLS-1$
    //               metadata.addChild(lineage);
    //               for (int i = 0; i < lineageLength; i++) {
    //                  processStepsText[i][0] = Messages.DefinitionFeatureTreeViewer_6 + (i + 1); //$NON-NLS-1$
    //                  DefaultTreeNode processStep = new DefaultTreeNode(processStepsText[i]);
    //                  lineage.addChild(processStep);
    //               }
    //            }
    // set input
    if (type != null) {
        // pass metadatas to the treeviewer, if instances contain metadatas
        Set<String> completeMetaNames = new HashSet<String>();
        for (Instance inst : instances) {
            for (String name : inst.getMetaDataNames()) {
                completeMetaNames.add(name);
            }
        }

        Pair<TypeDefinition, Set<String>> pair = new Pair<TypeDefinition, Set<String>>(type, completeMetaNames);

        treeViewer.setInput(pair);
    } else
        treeViewer.setInput(Collections.emptySet());

    Layout layout = treeViewer.getTree().getParent().getLayout();

    // add type column
    if (type != null) {
        TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT);
        column.getColumn().setText(type.getDisplayName());
        column.setLabelProvider(new TreeColumnViewerLabelProvider(new DefinitionMetaCompareLabelProvider()));
        if (layout instanceof TreeColumnLayout) {
            ((TreeColumnLayout) layout).setColumnData(column.getColumn(), new ColumnWeightData(1));
        }
    }

    // add columns for features
    int index = 1;
    if (instances != null) {
        //         // sort features
        //         List<Feature> sortedFeatures = new ArrayList<Feature>();
        //         for (Feature f : features) {
        //            sortedFeatures.add(f);
        //         }
        //         Collections.sort(sortedFeatures, new Comparator<Feature>() {
        //
        //            @Override
        //            public int compare(Feature o1, Feature o2) {
        //               FeatureId id1 = FeatureBuilder.getSourceID(o1);
        //               if (id1 == null) {
        //                  id1 = o1.getIdentifier();
        //               }
        //               
        //               FeatureId id2 = FeatureBuilder.getSourceID(o2);
        //               if (id2 == null) {
        //                  id2 = o2.getIdentifier();
        //               }
        //               
        //               return id1.getID().compareTo(id2.getID());
        //            }
        //            
        //         });
        List<Instance> insts = new ArrayList<Instance>();
        for (Instance instance : instances) { // sortedFeatures) {
            final TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT);
            //            FeatureId id = FeatureBuilder.getSourceID(feature);
            //            if (id == null) {
            //               id = feature.getIdentifier();
            //            }
            //            column.getColumn().setText(id.toString());
            column.getColumn().setText(String.valueOf(index)); // XXX
            // identifier?
            DefinitionInstanceLabelProvider labelProvider = new DefinitionInstanceLabelProvider(instance);
            labelProviders.put(index, labelProvider);
            column.setLabelProvider(labelProvider);
            if (layout instanceof TreeColumnLayout) {
                ((TreeColumnLayout) layout).setColumnData(column.getColumn(), new ColumnWeightData(1));
            }

            // add tool tip
            //            new ColumnBrowserTip(treeViewer, 400, 300, true, index, null);
            insts.add(instance);
            index++;
        }
        ((MetadataCompareActionProvider) maep).setInput(insts, labelProviders);
    }

    treeViewer.refresh();
    treeViewer.getTree().getParent().layout(true, true);

    selectionProvider.updateSelection(instances);

    // auto-expand attributes/metadata
    treeViewer.expandToLevel(2);
}

From source file:eu.esdihumboldt.hale.ui.views.data.internal.explore.InstanceExplorer.java

License:Open Source License

/**
 * @see InstanceViewer#createControls(Composite, SchemaSpaceID)
 *//*from ww  w . j  a v a  2 s  . c  o  m*/
@Override
public void createControls(Composite parent, SchemaSpaceID schemaSpace) {
    main = new Composite(parent, SWT.NONE);
    main.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).create());

    // selector composite
    selectorComposite = new Composite(main, SWT.NONE);
    selectorComposite.setLayoutData(GridDataFactory.swtDefaults().create());
    selectorComposite.setLayout(GridLayoutFactory.fillDefaults().create());

    // viewer composite
    Composite viewerComposite = new Composite(main, SWT.NONE);
    viewerComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    TreeColumnLayout layout = new TreeColumnLayout();
    viewerComposite.setLayout(layout);
    viewer = new TreeViewer(viewerComposite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    viewer.getTree().setLinesVisible(true);

    // set content provider
    viewer.setContentProvider(new InstanceContentProvider());
    viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS);
    // TODO set label provider?

    // add definition columns
    TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Definition");
    column.setLabelProvider(new TreeColumnViewerLabelProvider(
            new PairLabelProvider(true, new DefinitionMetaLabelProvider(false, true))));
    layout.setColumnData(column.getColumn(), new ColumnWeightData(1));

    // add value column
    column = new TreeViewerColumn(viewer, SWT.LEFT);
    column.getColumn().setText("Value");
    final InstanceValueLabelProvider instanceLabelProvider = new InstanceValueLabelProvider();
    column.setLabelProvider(instanceLabelProvider);
    // new PairLabelProvider(false, new LabelProvider())));

    ColumnViewerToolTipSupport.enableFor(viewer);

    layout.setColumnData(column.getColumn(), new ColumnWeightData(1));

    MetadataActionProvider maep = new MetadataExploreActionProvider(viewer);
    maep.setup();

    // Add an editor for copying instance values
    editor = new TreeEditor(viewer.getTree());
    editor.horizontalAlignment = SWT.RIGHT;
    viewer.getTree().addMouseMoveListener(new MouseMoveListener() {

        @Override
        public void mouseMove(MouseEvent e) {
            final ViewerCell cell = viewer.getCell(new Point(e.x, e.y));

            // Selected cell changed?
            if (cell == null || editor.getItem() != cell.getItem()
                    || editor.getColumn() != cell.getColumnIndex()) {
                // Clean up any previous editor control
                Control oldEditor = editor.getEditor();
                if (oldEditor != null) {
                    oldEditor.dispose();
                    editor.setEditor(null, null, 0);
                }
            }

            // No valid selected cell
            if (cell == null || cell.getColumnIndex() == 0) {
                return;
            }

            // cell didn't change
            if ((editor.getItem() == cell.getItem() && editor.getColumn() == cell.getColumnIndex())) {
                return;
            }

            // determine instance value
            Object value = ((Pair<?, ?>) cell.getViewerRow().getTreePath().getLastSegment()).getSecond();
            if (value instanceof Instance) {
                value = ((Instance) value).getValue();
            }

            // copy button
            if (value != null) {
                final String textValue = value.toString();

                if (!textValue.isEmpty()) { // empty string invalid for
                    // clipboard
                    Button button = new Button(viewer.getTree(), SWT.PUSH | SWT.FLAT);
                    button.setImage(
                            PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_COPY));
                    button.setToolTipText("Copy string value");
                    button.addSelectionListener(new SelectionAdapter() {

                        @Override
                        public void widgetSelected(SelectionEvent e) {
                            // copy content to clipboard
                            Clipboard clipBoard = new Clipboard(Display.getCurrent());
                            clipBoard.setContents(new Object[] { textValue },
                                    new Transfer[] { TextTransfer.getInstance() });
                            clipBoard.dispose();
                        }
                    });

                    // calculate editor size
                    Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);
                    editor.minimumHeight = size.y;
                    editor.minimumWidth = size.x;

                    editor.setEditor(button, (TreeItem) cell.getItem(), cell.getColumnIndex());
                }
            }
        }
    });

    update();
}

From source file:eu.esdihumboldt.hale.ui.views.report.ReportList.java

License:Open Source License

/**
 * Create contents of the view part./*from  w  w w . java  2 s.  co m*/
 * 
 * @param parent parent element
 */
@Override
public void createViewControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    TreeColumnLayout layout = new TreeColumnLayout();
    composite.setLayout(layout);
    {
        _treeViewer = new TreeViewer(composite, SWT.BORDER);
        final Tree tree = _treeViewer.getTree();
        tree.setHeaderVisible(false);
        tree.setLinesVisible(false);

        // create column for reports
        TreeViewerColumn col1 = new TreeViewerColumn(_treeViewer, SWT.NONE);

        // add the label provider
        col1.setLabelProvider(new TreeColumnViewerLabelProvider(new ReportListLabelProvider()));

        // and layout
        layout.setColumnData(col1.getColumn(), new ColumnWeightData(3));

        // create column for reports
        TreeViewerColumn col2 = new TreeViewerColumn(_treeViewer, SWT.NONE);

        // add the label provider
        col2.setLabelProvider(new TreeColumnViewerLabelProvider(new ReportListLabelDateProvider()));

        // create column for reports
        layout.setColumnData(col2.getColumn(), new ColumnWeightData(1));

        new ReportListMenu(getSite(), _treeViewer);
    }

    createActions();
    initializeToolBar();
    initializeMenu();

    // set label provider
    // _treeViewer.setLabelProvider(new ReportListLabelProvider());

    // set content provider
    _treeViewer.setContentProvider(new ReportListContentProvider());

    // disable this if it uses too much memory
    // but should maintain the list much faster
    _treeViewer.setUseHashlookup(true);

    // order the sessions from latest to oldest
    _treeViewer.setComparator(new ViewerComparator() {

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 instanceof ReportSession && e2 instanceof ReportSession) {
                long first = ((ReportSession) e1).getId();
                long second = ((ReportSession) e2).getId();
                if (first > second) {
                    return -1;
                } else if (first < second) {
                    return 1;
                } else {
                    return 0;
                }
            } else if (e1 instanceof Report<?> && e2 instanceof Report<?>) {
                Report<?> first = (Report<?>) e1;
                Report<?> second = (Report<?>) e2;
                if (first.getStartTime().getTime() > second.getStartTime().getTime()) {
                    return -1;
                } else if (first.getStartTime().getTime() < second.getStartTime().getTime()) {
                    return 1;
                } else {
                    return 0;
                }
            }

            return 0;
        }
    });

    // set selection provider
    getSite().setSelectionProvider(_treeViewer);

    _treeViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            OpenPropertiesHandler
                    .unpinAndOpenPropertiesView(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
        }
    });

    // load all added reports
    this.loadReports();
}

From source file:eu.esdihumboldt.hale.ui.views.tasks.TaskTreeView.java

License:Open Source License

/**
 * @see WorkbenchPart#createPartControl(Composite)
 *//*from  w w w  .j a  v  a2  s.  c  o m*/
@Override
public void createPartControl(Composite parent) {
    Composite page = new Composite(parent, SWT.NONE);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    page.setLayoutData(data);

    // tree column layout
    TreeColumnLayout layout = new TreeColumnLayout();
    page.setLayout(layout);

    // tree viewer
    tree = new TreeViewer(page, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tree.setContentProvider(new CollectionTreeNodeContentProvider());
    tree.setUseHashlookup(true);

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

    tree.setComparator(new TaskTreeComparator());

    schemaService = (SchemaService) PlatformUI.getWorkbench().getService(SchemaService.class);
    taskService = (TaskService) PlatformUI.getWorkbench().getService(TaskService.class);

    // columns
    IColorProvider colorProvider = new TaskColorProvider(Display.getCurrent());

    // title/description
    TreeViewerColumn description = new TreeViewerColumn(tree, SWT.LEFT);
    description.getColumn().setText(Messages.TaskTreeView_TitleDescriptionText);
    description.getColumn().setToolTipText(Messages.TaskTreeView_description_tooltip);
    TreeColumnViewerLabelProvider descriptionLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskDescriptionLabelProvider(0));
    descriptionLabelProvider.setProviders(colorProvider);
    description.setLabelProvider(descriptionLabelProvider);
    layout.setColumnData(description.getColumn(), new ColumnWeightData(4));

    // value
    TreeViewerColumn value = new TreeViewerColumn(tree, SWT.CENTER);
    value.getColumn().setText("!"); //$NON-NLS-1$
    value.getColumn().setToolTipText(Messages.TaskTreeView_value_tooltip);
    TreeColumnViewerLabelProvider valueLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskValueLabelProvider(0));
    valueLabelProvider.setProviders(colorProvider);
    value.setLabelProvider(valueLabelProvider);
    layout.setColumnData(value.getColumn(), new ColumnWeightData(0, 20));

    // number of tasks
    TreeViewerColumn number = new TreeViewerColumn(tree, SWT.RIGHT);
    number.getColumn().setText("#"); //$NON-NLS-1$
    number.getColumn().setToolTipText(Messages.TaskTreeView_NumberText);
    TreeColumnViewerLabelProvider numberLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskCountLabelProvider(0));
    numberLabelProvider.setProviders(colorProvider);
    number.setLabelProvider(numberLabelProvider);
    layout.setColumnData(number.getColumn(), new ColumnWeightData(0, 48));

    // user data: status
    TreeViewerColumn status = new TreeViewerColumn(tree, SWT.LEFT);
    status.getColumn().setText(Messages.TaskTreeView_StatusText);
    TreeColumnViewerLabelProvider statusLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskStatusLabelProvider(0));
    statusLabelProvider.setProviders(colorProvider);
    status.setLabelProvider(statusLabelProvider);
    layout.setColumnData(status.getColumn(), new ColumnWeightData(1));
    status.setEditingSupport(new TaskStatusEditingSupport(tree, taskService));

    // user data: comment
    TreeViewerColumn comment = new TreeViewerColumn(tree, SWT.LEFT);
    comment.getColumn().setText(Messages.TaskTreeView_CommentText);
    TreeColumnViewerLabelProvider commentLabelProvider = new TreeColumnViewerLabelProvider(
            new TaskCommentLabelProvider(0));
    commentLabelProvider.setProviders(colorProvider);
    comment.setLabelProvider(commentLabelProvider);
    layout.setColumnData(comment.getColumn(), new ColumnWeightData(4));
    comment.setEditingSupport(new TaskCommentEditingSupport(tree, taskService));

    // listeners
    taskService.addListener(taskListener = new TaskServiceAdapter() {

        @Override
        public void tasksRemoved(final Iterable<Task> tasks) {
            if (Display.getCurrent() != null) {
                removeTasks(tasks);
            } else {
                final Display display = PlatformUI.getWorkbench().getDisplay();
                display.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        removeTasks(tasks);
                    }

                });
            }
        }

        @Override
        public void tasksAdded(final Iterable<Task> tasks) {
            if (Display.getCurrent() != null) {
                addTasks(tasks);
            } else {
                final Display display = PlatformUI.getWorkbench().getDisplay();
                display.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        addTasks(tasks);
                    }

                });
            }
        }

        @Override
        public void taskUserDataChanged(final ResolvedTask task) {
            if (Display.getCurrent() != null) {
                updateNode(task);
            } else {
                final Display display = PlatformUI.getWorkbench().getDisplay();
                display.syncExec(new Runnable() {

                    @Override
                    public void run() {
                        updateNode(task);
                    }

                });
            }
        }

    });

    createInput();

    configureActions();

    // interaction
    tree.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                Object selected = ((IStructuredSelection) selection).getFirstElement();
                if (selected instanceof TreeNode) {
                    // determine value
                    Object tmp = ((TreeNode) selected).getValue();
                    Object value;
                    if (tmp.getClass().isArray()) {
                        value = ((Object[]) tmp)[0];
                    } else {
                        value = tmp;
                    }
                    if (value instanceof Task) {
                        // node is task node
                        Task task = (Task) value;
                        onDoubleClick(task.getMainContext().getIdentifier());
                    } else if (value instanceof SchemaElement) {
                        SchemaElement type = (SchemaElement) value;
                        onDoubleClick(type.getIdentifier());
                    }
                }
            }
        }
    });
}