Example usage for org.eclipse.jface.viewers ViewerCell getElement

List of usage examples for org.eclipse.jface.viewers ViewerCell getElement

Introduction

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

Prototype

public Object getElement() 

Source Link

Document

Get the element this row represents.

Usage

From source file:eu.esdihumboldt.hale.io.csv.ui.LookupTablePage.java

License:Open Source License

private void addPreview(Composite page) {

    tableContainer = new Composite(page, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);/*from   ww w. ja  v  a 2s  . c om*/

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(sourceColumn.getColumn(), new ColumnWeightData(1));
    sourceColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            return entry.getKey().getStringRepresentation();
        }
    });

    targetColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(targetColumn.getColumn(), new ColumnWeightData(1));
    targetColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
            if (entry.getValue() == null) {
                StyledString styledString = new StyledString("(unmapped)", StyledString.DECORATIONS_STYLER);
                cell.setText(styledString.getString());
                cell.setStyleRanges(styledString.getStyleRanges());
            } else {
                cell.setText(entry.getValue().getStringRepresentation());
                cell.setStyleRanges(null);
            }
            super.update(cell);
        }
    });
}

From source file:eu.esdihumboldt.hale.ui.codelist.inspire.internal.CodeListLabelProvider.java

License:Open Source License

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

    StyledString text;/*from  ww w  . j a  va  2  s. c  o  m*/

    if (element instanceof CodeListRef) {
        CodeListRef cl = (CodeListRef) element;

        text = new StyledString(cl.getName());

        String schema = cl.getSchemaName();
        if (schema != null) {
            text.append(" (" + schema + ")", StyledString.COUNTER_STYLER);
        }
        //
        //         String tag = cl.getTag();
        //         if (tag != null) {
        //            text.append(" (" + tag + ")", StyledString.DECORATIONS_STYLER);
        //         }
    } else {
        text = new StyledString(getText(element));
    }

    cell.setImage(getImage(element));
    cell.setText(text.toString());
    cell.setStyleRanges(text.getStyleRanges());

    super.update(cell);
}

From source file:eu.esdihumboldt.hale.ui.common.definition.viewer.StyledDefinitionLabelProvider.java

License:Open Source License

/**
 * @see StyledCellLabelProvider#update(ViewerCell)
 *///from   www . j  a  v  a  2s.c  om
@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();

    element = extractElement(element);

    StyledString text = new StyledString(defaultLabels.getText(element));

    cell.setImage(defaultLabels.getImage(element));

    String contextText = null;
    String countText = null;
    if (element instanceof EntityDefinition) {
        PopulationService ps = (PopulationService) PlatformUI.getWorkbench()
                .getService(PopulationService.class);
        if (ps != null) {
            Population pop = ps.getPopulation((EntityDefinition) element);
            int count = pop.getOverallCount();
            int parents = pop.getParentsCount();
            switch (count) {
            case Population.UNKNOWN:
                countText = "\u00d7?";
                break;
            case 0:
                break;
            default:
                countText = "\u00d7" + count;
                if (parents != count) {
                    countText += " (" + parents + ")";
                }
            }
        }

        contextText = AlignmentUtil.getContextText((EntityDefinition) element);
        element = ((EntityDefinition) element).getDefinition();
    }

    // append cardinality
    if (!suppressCardinality && element instanceof ChildDefinition<?>) {
        Cardinality cardinality = null;
        if (((ChildDefinition<?>) element).asGroup() != null) {
            cardinality = ((ChildDefinition<?>) element).asGroup().getConstraint(Cardinality.class);
        } else if (((ChildDefinition<?>) element).asProperty() != null) {
            cardinality = ((ChildDefinition<?>) element).asProperty().getConstraint(Cardinality.class);
        }

        if (cardinality != null) {
            // only append cardinality if it isn't 1/1
            if (cardinality.getMinOccurs() != 1 || cardinality.getMaxOccurs() != 1) {
                String card = " " + MessageFormat.format("({0}..{1})",
                        new Object[] { Long.valueOf(cardinality.getMinOccurs()),
                                (cardinality.getMaxOccurs() == Cardinality.UNBOUNDED) ? ("n")
                                        : (Long.valueOf(cardinality.getMaxOccurs())) });
                text.append(card, StyledString.COUNTER_STYLER);
            }
        }
    }

    if (contextText != null) {
        contextText = " " + contextText;
        text.append(contextText, StyledString.DECORATIONS_STYLER);
    }

    if (countText != null) {
        countText = " " + countText;
        text.append(countText, StyledString.QUALIFIER_STYLER);
    }

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

    Color foreground = getForeground(cell.getElement());
    cell.setForeground(foreground);

    Color background = getBackground(cell.getElement());
    cell.setBackground(background);

    super.update(cell);
}

From source file:eu.esdihumboldt.hale.ui.functions.core.ClassificationMappingParameterPage.java

License:Open Source License

private Control createManualTabControl(Composite tabParent) {
    // TODO load occurring value sources
    Composite tabContent = new Composite(tabParent, SWT.NONE);
    tabContent.setLayout(new GridLayout(1, true));

    ToolBar toolBar = new ToolBar(tabContent, SWT.NONE);
    toolBar.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    Composite tableContainer = new Composite(tabContent, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);//  www . ja v a  2 s .co m

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerColumn sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    sourceColumn.getColumn().setText("Source value");
    layout.setColumnData(sourceColumn.getColumn(), new ColumnWeightData(1));
    sourceColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            return entry.getKey().getStringRepresentation();
        }
    });

    TableViewerColumn targetColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    targetColumn.getColumn().setText("Target value");
    layout.setColumnData(targetColumn.getColumn(), new ColumnWeightData(1));
    targetColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
            if (entry.getValue() == null) {
                StyledString styledString = new StyledString("(unmapped)", StyledString.DECORATIONS_STYLER);
                cell.setText(styledString.getString());
                cell.setStyleRanges(styledString.getStyleRanges());
            } else {
                cell.setText(entry.getValue().getStringRepresentation());
                cell.setStyleRanges(null);
            }
            super.update(cell);
        }
    });

    tableViewer.setInput(lookupTable.entrySet());

    tableViewer.getTable().addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ViewerCell cell = tableViewer.getCell(new Point(e.x, e.y));
            if (cell != null) {
                @SuppressWarnings("unchecked")
                Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
                Value oldValue;
                Value newValue;
                if (cell.getColumnIndex() == 0) {
                    oldValue = entry.getKey();
                    newValue = selectValue(sourceProperty, sourceEntity, "Edit source value",
                            "Enter a new source value", oldValue.getStringRepresentation());
                } else {
                    oldValue = entry.getValue();
                    String initialValue = oldValue == null ? null : oldValue.getStringRepresentation();
                    newValue = selectValue(targetProperty, targetEntity, "Edit target value",
                            "Enter a target value", initialValue);
                }
                if (newValue == null)
                    return;
                if (cell.getColumnIndex() == 0) {
                    if (!newValue.equals(oldValue) && lookupTable.containsKey(newValue)) {
                        showDuplicateSourceWarning(newValue.getStringRepresentation());
                    } else {
                        lookupTable.put(newValue, entry.getValue());
                        lookupTable.remove(oldValue);
                        tableViewer.refresh();
                    }
                } else {
                    entry.setValue(newValue);
                    tableViewer.update(entry, null);
                }
            }
        }
    });

    final ToolItem valueAdd = new ToolItem(toolBar, SWT.PUSH);
    final ToolItem fillValues = new ToolItem(toolBar, SWT.PUSH);
    new ToolItem(toolBar, SWT.SEPARATOR);
    final ToolItem loadButton = new ToolItem(toolBar, SWT.PUSH);
    saveButton = new ToolItem(toolBar, SWT.PUSH);
    new ToolItem(toolBar, SWT.SEPARATOR);
    final ToolItem valueRemove = new ToolItem(toolBar, SWT.PUSH);
    removeAllButton = new ToolItem(toolBar, SWT.PUSH);

    valueAdd.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_ADD));
    valueAdd.setToolTipText("Add source value");
    valueAdd.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            Value newSource = selectValue(sourceProperty, sourceEntity, "Add source value",
                    "Enter a new source value", null);
            if (newSource != null) {
                if (lookupTable.containsKey(newSource))
                    showDuplicateSourceWarning(newSource.getStringRepresentation());
                else {
                    lookupTable.put(newSource, null);
                    removeAllButton.setEnabled(true);
                    saveButton.setEnabled(true);
                    tableViewer.refresh();
                }
            }
        }
    });

    loadButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_OPEN));
    loadButton.setToolTipText("Load classification from file");
    loadButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            LookupTableLoadWizard wizard = new LookupTableLoadWizard();
            LookupLoadAdvisor advisor = new LookupLoadAdvisor();
            wizard.setAdvisor(advisor, null);
            Shell shell = Display.getCurrent().getActiveShell();
            HaleWizardDialog dialog = new HaleWizardDialog(shell, wizard);
            dialog.open();

            if (advisor.getLookupTable() != null) {
                lookupTable.putAll(advisor.getLookupTable().getTable().asMap());
                tableViewer.refresh();
                removeAllButton.setEnabled(!lookupTable.isEmpty());
                saveButton.setEnabled(!lookupTable.isEmpty());
            }
        }
    });

    fillValues.setImage(fillValuesIcon);
    fillValues.setToolTipText("Attempt to fill source values with enumerations and occurring values.");
    fillValues.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // first try enumeration
            Enumeration<?> enumeration = sourceProperty.getPropertyType().getConstraint(Enumeration.class);
            if (enumeration.getValues() != null) {
                addSourceValuesIfNew(enumeration.getValues());
            }

            // then try occurring values
            if (!ovs.updateOccurringValues(sourceEntity)) {
                // values already there or not possible
                addOccurringSourceValues(ovs.getOccurringValues(sourceEntity));
            } else {
                // job is running, listener will be notified
            }
            removeAllButton.setEnabled(!lookupTable.isEmpty());
            saveButton.setEnabled(!lookupTable.isEmpty());
        }
    });

    saveButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_SAVE));
    saveButton.setToolTipText("Save classification to file");
    saveButton.setEnabled(false);
    saveButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            LookupTableExportWizard wizard = new LookupTableExportWizard();
            LookupExportAdvisor advisor = new LookupExportAdvisor(
                    new LookupTableInfoImpl(new LookupTableImpl(lookupTable), "current", "not set"));
            wizard.setAdvisor(advisor, null);
            Shell shell = Display.getCurrent().getActiveShell();
            HaleWizardDialog dialog = new HaleWizardDialog(shell, wizard);
            dialog.open();
        }
    });

    valueRemove.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_REMOVE));
    valueRemove.setToolTipText("Remove classification entry");
    valueRemove.setEnabled(false);
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            valueRemove.setEnabled(!event.getSelection().isEmpty());
            saveButton.setEnabled(!event.getSelection().isEmpty());
        }
    });
    valueRemove.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (tableViewer.getSelection().isEmpty())
                return;

            Object element = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement();
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            lookupTable.remove(entry.getKey());
            tableViewer.refresh();
            removeAllButton.setEnabled(!lookupTable.isEmpty());
            saveButton.setEnabled(!lookupTable.isEmpty());
        }
    });

    removeAllButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_TRASH));
    removeAllButton.setEnabled(false);
    removeAllButton.setToolTipText("Remove complete classification");
    removeAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            lookupTable.clear();
            tableViewer.refresh();
            removeAllButton.setEnabled(false);
            saveButton.setEnabled(false);
        }
    });

    Label desc = new Label(tabContent, SWT.NONE);
    desc.setText("Double click on a table cell to change its value.");

    return tabContent;
}

From source file:eu.esdihumboldt.hale.ui.functions.core.SourceListParameterPage.java

License:Open Source License

/**
 * @see HaleWizardPage#createContent(Composite)
 *//*ww  w  .j  a v  a 2 s  .co m*/
@Override
protected void createContent(Composite page) {
    page.setLayout(GridLayoutFactory.swtDefaults().create());

    // input field
    textField = createAndLayoutTextField(page);

    // let subclasses for example add validation
    configure(textField);

    setText(textField, initialValue);

    // variables
    Label label = new Label(page, SWT.NONE);
    label.setText("Available variables (double click to insert)");
    label.setLayoutData(GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.CENTER).indent(4, 12).create());

    // variables table
    Composite tableComposite = new Composite(page, SWT.NONE);
    tableComposite
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 100).create());
    TableColumnLayout columnLayout = new TableColumnLayout();
    tableComposite.setLayout(columnLayout);
    varTable = new TableViewer(tableComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    varTable.getTable().setHeaderVisible(true);
    TableViewerColumn entityColumn = new TableViewerColumn(varTable, SWT.NONE);
    columnLayout.setColumnData(entityColumn.getColumn(), new ColumnWeightData(2, true));
    entityColumn.getColumn().setText("Entity");
    varTable.setContentProvider(ArrayContentProvider.getInstance());
    varTable.setLabelProvider(new StyledDefinitionLabelProvider() {

        @Override
        protected Object extractElement(Object element) {
            if (element instanceof Entry) {
                return ((Entry<?, ?>) element).getKey();
            }

            return super.extractElement(element);
        }

    });
    varTable.getTable().addMouseListener(new MouseAdapter() {

        /**
         * @see MouseAdapter#mouseDoubleClick(MouseEvent)
         */
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ISelection sel = varTable.getSelection();
            if (!sel.isEmpty() && sel instanceof IStructuredSelection) {
                Object selected = ((IStructuredSelection) sel).getFirstElement();
                if (selected instanceof Entry) {
                    selected = ((Entry<?, ?>) selected).getValue();
                }

                insertTextAtCurrentPos(textField, selected.toString());
            }
        }
    });

    // variable name column
    TableViewerColumn varColumn = new TableViewerColumn(varTable, SWT.NONE);
    columnLayout.setColumnData(varColumn.getColumn(), new ColumnWeightData(1, true));
    varColumn.getColumn().setText("Variable");
    varColumn.setLabelProvider(new CellLabelProvider() {

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

            if (element instanceof Entry) {
                element = ((Entry<?, ?>) element).getValue();
            }

            cell.setText(element.toString());
        }
    });
}

From source file:eu.esdihumboldt.hale.ui.functions.groovy.internal.HelperFunctionLabelProvider.java

License:Open Source License

/**
 * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
 *//*from  w w  w .  j a v a  2s.c  o  m*/
@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    String elementName = null;

    if (element instanceof Category) {
        cell.setText(((Category) element).getName());
        cell.setImage(
                CommonSharedImages.getImageRegistry().get(CommonSharedImagesConstants.IMG_DEFINITION_GROUP));
    } else if (element instanceof HelperFunctionOrCategory) {

        HelperFunctionSpecification hfs = null;
        elementName = ((HelperFunctionOrCategory) element).getName();
        StyledString text = new StyledString(elementName);
        try {
            HelperFunction<?> helper = ((HelperFunctionOrCategory) element).asFunction();
            hfs = (HelperFunctionSpecification) helper.getSpec(elementName);
            text.append(PageFunctions.getStyledParameters(hfs));
        } catch (Exception e) {
            //
        }

        cell.setText(text.getString());
        cell.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImagesConstants.IMG_FUNCTION));
        cell.setStyleRanges(text.getStyleRanges());

    }

    super.update(cell);
}

From source file:eu.esdihumboldt.hale.ui.instancevalidation.report.InstanceValidationReportDetailsLabelProvider.java

License:Open Source License

/**
 * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
 *///from w w  w . jav a2  s  .c  o  m
@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();

    String label = getText(element);
    int newLine = label.indexOf('\n');
    if (newLine > -1)
        label = label.substring(0, newLine) + " ...";

    StyledString text = new StyledString(label);

    if (!(element instanceof InstanceValidationMessage)) {
        TreePath treePath = cell.getViewerRow().getTreePath();
        boolean isLimited = contentProvider.isLimited(treePath);
        text.append(' ');
        if (!isLimited)
            text.append(MessageFormat.format("({0} warnings)", contentProvider.getMessageCount(treePath)),
                    StyledString.COUNTER_STYLER);
        else
            text.append(MessageFormat.format("(showing {0} of {1})",
                    InstanceValidationReportDetailsContentProvider.LIMIT,
                    contentProvider.getMessageCount(treePath)), StyledString.COUNTER_STYLER);
    }

    cell.setText(text.getString());
    cell.setStyleRanges(text.getStyleRanges());
    cell.setImage(getImage(element));

    super.update(cell);
}

From source file:eu.esdihumboldt.hale.ui.schema.presets.internal.SchemaPresetLabelProvider.java

License:Open Source License

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

    StyledString text = new StyledString();

    if (element instanceof SchemaPreset) {
        SchemaPreset schema = (SchemaPreset) element;
        text.append(schema.getName());/*  w  ww  .  j  a  v a2  s  .co m*/
    }
    if (element instanceof SchemaCategory) {
        text.append(((SchemaCategory) element).getName());
    }

    if (element instanceof SchemaPreset) {
        SchemaPreset preset = (SchemaPreset) element;

        String version = preset.getVersion();
        if (version != null) {
            text.append(" " + version, StyledString.COUNTER_STYLER);
        }

        String tag = preset.getTag();
        if (tag != null) {
            text.append(" (" + tag + ")", StyledString.DECORATIONS_STYLER);
        }
    }

    cell.setImage(getImage(element));
    cell.setText(text.toString());
    cell.setStyleRanges(text.getStyleRanges());

    super.update(cell);
}

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//w w w .  j a  v  a  2 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./*  w  w w .  j a  v  a 2 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();
    }
}