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

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

Introduction

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

Prototype

public ViewerRow getViewerRow() 

Source Link

Usage

From source file:com.peergreen.eclipse.osgi.preferences.provider.column.ActionsColumnLabelProvider.java

License:Apache License

@Override
public void update(ViewerCell cell) {
    PeergreenServerEntry serverEntry = (PeergreenServerEntry) cell.getElement();

    TableItem item = (TableItem) cell.getItem();

    composite = new Composite((Composite) cell.getViewerRow().getControl(), SWT.BORDER_DASH);
    composite.setLayout(new FillLayout());

    // Download button if assembly not installed
    if (serverEntry.isDownloadable()) {
        Button downloadButton = new Button(composite, SWT.NONE);
        downloadButton.setText("Download...");
        downloadButton.setToolTipText("Download this version");
    }//from  www .  j  a  v  a  2  s  . co m

    // Remove button if assembly is installed
    if (!serverEntry.isDownloadable() && (serversConfiguration.getDefaultEntry() != null
            && !serversConfiguration.getDefaultEntry().equals(serverEntry))) {
        Button removeButton = new Button(composite, SWT.NONE);
        removeButton.setText("Remove");
        removeButton.setToolTipText("Remove this assembly");
        removeButton
                .addSelectionListener(new RemoveEntryListener(serversConfiguration, serverEntry, tableViewer));

    }

    // Update button if assembly has a new version available
    if (serverEntry.isUpdatable()) {
        Button updateButton = new Button(composite, SWT.NONE);
        updateButton.setText("Update...");
        updateButton.setToolTipText("Update this assembly to a newer version");
    }

    // Create editor
    TableEditor editor = new TableEditor(item.getParent());

    editor.grabHorizontal = true;
    editor.grabVertical = true;
    editor.setEditor(composite, item, cell.getColumnIndex());
    editor.layout();

}

From source file:com.peergreen.eclipse.osgi.preferences.provider.column.RadioButtonColumnLabelProvider.java

License:Apache License

@Override
public void update(ViewerCell cell) {
    final PeergreenServerEntry serverEntry = (PeergreenServerEntry) cell.getElement();

    TableItem item = (TableItem) cell.getItem();

    TableEditor editor = new TableEditor(item.getParent());
    Button radioButton = new Button((Composite) cell.getViewerRow().getControl(), SWT.RADIO);

    // It's the default selection
    if (serversConfiguration.getDefaultEntry() != null
            && serversConfiguration.getDefaultEntry().equals(serverEntry)) {
        radioButton.setSelection(true);//from   w  ww.  j  a  va2s .  c  o  m
    }

    // Downloadable so not ready, greyed
    radioButton.setEnabled(!serverEntry.isDownloadable());
    radioButton.addSelectionListener(
            new RadioButtonSelectionListener(serversConfiguration, serverEntry, tableViewer, radioButton));
    radioButton.pack();
    editor.minimumWidth = radioButton.getSize().x;
    editor.horizontalAlignment = SWT.CENTER;
    editor.setEditor(radioButton, item, cell.getColumnIndex());
    editor.layout();

}

From source file:com.rcpcompany.uibindings.extests.viewerBindings.ViewerItemMoveTest.java

License:Open Source License

/**
 * Checks the operation of the move command with focus on the resulting selection and focus
 *//* w w w.  j av a 2 s  .co  m*/
@Test
public void testOp() {
    try {
        final ICommandService cs = (ICommandService) myView.getSite().getService(ICommandService.class);
        final IHandlerService hs = (IHandlerService) myView.getSite().getService(IHandlerService.class);

        final ParameterizedCommand command = cs.deserialize(myCommandId);
        assertTrue(what + " is defined", command.getCommand().isDefined());

        final Country country = myShop.getCountries().get(myRow);
        // LogUtils.debug(country, "" + country.getName());

        postMouse(myTableViewer.getTable(), myColumn + myViewerBinding.getFirstTableColumnOffset(), myRow);
        yield();

        assertTrue(what + " is not handled", command.getCommand().isHandled());
        assertTrue(what + " is not defined", command.getCommand().isDefined());

        ViewerCell viewerCell = myTableViewer.getColumnViewerEditor().getFocusCell();
        assertEquals(what + " index wrong", myColumn + myViewerBinding.getFirstTableColumnOffset(),
                viewerCell.getColumnIndex());
        assertEquals(what + " element wrong", country, viewerCell.getElement());
        assertEquals(what + " item wrong", myTableViewer.getTable().getItem(myRow),
                viewerCell.getViewerRow().getItem());
        assertEquals(what + " row element", country, viewerCell.getViewerRow().getElement());

        assertEquals(4, myShop.getCountries().size());
        hs.executeCommand(command, null);
        assertEquals(4, myShop.getCountries().size());

        // Seq of items
        final List<Country> myResultList = new ArrayList<Country>();
        for (int i = 0; i < mySeq.length(); i++) {
            final String s = mySeq.substring(i, i + 1);
            for (final Country c : myShop.getCountries()) {
                if (c.getName().equals(s)) {
                    myResultList.add(c);
                    break;
                }
            }
        }
        assertArrayEquals(myResultList.toArray(), myShop.getCountries().toArray());

        // Selection
        final TableItem[] tableItems = myTable.getSelection();
        assertEquals(1, tableItems.length);
        assertEquals(country, tableItems[0].getData());

        // ISelection
        final ISelection selection = myTableViewer.getSelection();
        assertTrue(selection instanceof IStructuredSelection);
        final IStructuredSelection ss = (IStructuredSelection) selection;
        assertEquals(1, ss.toArray().length);
        assertEquals(country, ss.getFirstElement());

        // Viewer cell

        // Focus cell
        viewerCell = myTableViewer.getColumnViewerEditor().getFocusCell();
        assertEquals(myColumn + myViewerBinding.getFirstTableColumnOffset(), viewerCell.getColumnIndex());
        assertEquals(country, viewerCell.getElement());
        assertEquals(myTableViewer.getTable().getItem(myNewRow), viewerCell.getViewerRow().getItem());
        assertEquals(country, viewerCell.getViewerRow().getElement());
    } catch (final Exception ex) {
        fail(ex.getMessage());
    }
}

From source file:com.rcpcompany.uibindings.extests.viewerBindings.ViewerSingleSelectionTest.java

License:Open Source License

/**
 * @param c the expected selected country
 * @param runnable a {@link Runnable} that will perform the selection
 *//*from w  ww .j av a 2 s .co  m*/
protected void checkSelection(Country c, Runnable runnable) {
    yield();
    if (runnable != null) {
        final boolean[] selectionChangedSeen = new boolean[] { false };
        final ISelectionChangedListener listener = new ISelectionChangedListener() {
            @Override
            public void selectionChanged(SelectionChangedEvent event) {
                // LogUtils.debug(this, "");
                selectionChangedSeen[0] = true;
            }
        };
        myTableViewer.addSelectionChangedListener(listener);
        assertNoLog(runnable);
        yield();
        myTableViewer.removeSelectionChangedListener(listener);
        assertTrue("no selection change seen", selectionChangedSeen[0]);
    }
    final int i = myShop.getCountries().indexOf(c);
    assertEquals(i, myTable.getSelectionIndex());
    assertArrayEquals(new Object[] { c }, ((IStructuredSelection) myTableViewer.getSelection()).toArray());

    assertEquals(c.getName(), myNameText.getText());

    final ColumnViewerEditor columnViewerEditor = myTableViewer.getColumnViewerEditor();
    assertNotNull(columnViewerEditor);
    final ViewerCell focusCell = columnViewerEditor.getFocusCell();
    assertNotNull(focusCell);
    final ViewerRow viewerRow = focusCell.getViewerRow();
    assertNotNull(viewerRow);
    assertEquals(c, viewerRow.getElement());
}

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.  j  a  v  a 2  s. co  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.views.data.internal.compare.DefinitionInstanceLabelProvider.java

License:Open Source License

/**
 * @see CellLabelProvider#update(ViewerCell)
 *//*w ww.  j  a v  a 2s  . c o m*/
@Override
public void update(ViewerCell cell) {
    TreePath treePath = cell.getViewerRow().getTreePath();

    InstanceEntry entry = findInstanceEntry(treePath);
    Object value = entry.value;

    InstanceValidationReport report = null;
    // If childDef is null we are at the top element.
    if (entry.definition && entry.childDef == null) {
        report = InstanceValidator.validate(instance);
    }

    boolean hasValue = false;
    if (entry.definition && value instanceof Instance) {
        hasValue = ((Instance) value).getValue() != null;
    } else if (!entry.definition && treePath.getSegmentCount() == 1) {
        // metadata root
        if (instance.getMetaDataNames().isEmpty()) {
            hasValue = true;
            value = null;
        }
    }

    StyledString styledString;
    if (value == null) {
        styledString = new StyledString("no value", StyledString.DECORATIONS_STYLER);
    } else if (value instanceof Group && !hasValue) {
        styledString = new StyledString("+", StyledString.QUALIFIER_STYLER);
    } else {
        if (value instanceof Instance) {
            value = ((Instance) value).getValue();
        }
        // TODO some kind of conversion?
        String stringValue = value.toString();
        /*
         * Values that are very large, e.g. string representations of very
         * complex geometries lead to
         * StyledCellLabelProvider.updateTextLayout taking a very long time,
         * rendering the application unresponsive when the data views are
         * displayed. As such, we reduce the string to a maximum size.
         */
        if (stringValue.length() > MAX_STRING_LENGTH) {
            stringValue = stringValue.substring(0, MAX_STRING_LENGTH) + "...";
        }

        styledString = new StyledString(stringValue, null);
    }

    // mark cell if there are other values
    if (entry.valueCount > 1) {
        String decoration = " "
                + MessageFormat.format(MULTIPLE_VALUE_FORMAT, entry.choice + 1, entry.valueCount);
        styledString.append(decoration, StyledString.COUNTER_STYLER);
    }

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

    if (report != null && !report.getWarnings().isEmpty())
        cell.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK));

    super.update(cell);
}

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

License:Open Source License

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

    treeViewer = new TreeViewer(main, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);

    treeViewer.setContentProvider(new TypeMetaPairContentProvider(treeViewer, schemaSpace));

    treeViewer.setLabelProvider(new DefinitionMetaCompareLabelProvider());

    // Add an editor for selecting specific paths.
    editor = new TreeEditor(treeViewer.getTree());
    editor.horizontalAlignment = SWT.RIGHT;
    treeViewer.getTree().addMouseMoveListener(new MouseMoveListener() {

        @Override
        public void mouseMove(MouseEvent e) {
            final ViewerCell cell = treeViewer.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;
            }

            Composite editorControl = new Composite(treeViewer.getTree(), SWT.NONE);
            GridLayoutFactory.fillDefaults().margins(0, 0).spacing(0, 0).numColumns(2).applyTo(editorControl);

            boolean hideCopy = false;

            // multi value selector

            // Quote the format first. Pattern.quote does the same, except,
            // that it checks the input for \Es.
            // Since we know that there will be no \Es in this case
            // do it ourselves to be safe from changes to Pattern.quote.

            String pattern = "\\Q" + DefinitionInstanceLabelProvider.MULTIPLE_VALUE_FORMAT + "\\E$";
            pattern = pattern.replace("{0}", "\\E(\\d+)\\Q").replace("{1}", "\\E(\\d+)\\Q");

            Matcher m = Pattern.compile(pattern).matcher(cell.getText());
            if (m.find()) {
                // multi value element

                int current = Integer.parseInt(m.group(1));
                int total = Integer.parseInt(m.group(2));

                // Create the selection control.
                ComboViewer combo = new ComboViewer(editorControl);
                Integer[] values = new Integer[total];
                for (int i = 1; i <= total; i++)
                    values[i - 1] = i;
                combo.setContentProvider(ArrayContentProvider.getInstance());
                combo.setInput(values);
                combo.setSelection(new StructuredSelection(current));
                combo.addSelectionChangedListener(new ISelectionChangedListener() {

                    @Override
                    public void selectionChanged(SelectionChangedEvent event) {
                        if (event.getSelection() instanceof IStructuredSelection) {
                            // Update label provider and refresh viewer.

                            labelProviders.get(cell.getColumnIndex()).selectPath(
                                    cell.getViewerRow().getTreePath(),
                                    (Integer) (((IStructuredSelection) event.getSelection())
                                            .getFirstElement()));

                            treeViewer.refresh(cell.getElement(), true);
                        }
                    }
                });
            } else {
                /*
                 * only one value - so we can safely determine if the copy
                 * button should be shown
                 */
                Object value = labelProviders.get(cell.getColumnIndex())
                        .findInstanceEntry(cell.getViewerRow().getTreePath()).getValue();
                if (value instanceof Instance) {
                    value = ((Instance) value).getValue();
                }

                hideCopy = value == null || value.toString().isEmpty();
            }

            // copy button
            if (!hideCopy) {
                Button button = new Button(editorControl, 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) {
                        // determine text value
                        Object value = labelProviders.get(cell.getColumnIndex())
                                .findInstanceEntry(cell.getViewerRow().getTreePath()).getValue();
                        if (value instanceof Instance) {
                            value = ((Instance) value).getValue();
                        }

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

                            if (!textValue.isEmpty()) { // empty string is
                                // invalid
                                // 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 = editorControl.computeSize(SWT.DEFAULT, SWT.DEFAULT);
            editor.minimumHeight = size.y;
            editor.minimumWidth = size.x;

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

    maep = new MetadataCompareActionProvider(treeViewer);
    maep.setup();

    treeViewer.setComparator(new DefinitionComparator());

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

    ColumnViewerToolTipSupport.enableFor(treeViewer);

    setInput(null, null);
}

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

License:Open Source License

/**
 * @see eu.esdihumboldt.hale.ui.views.data.internal.MetadataActionProvider#retrieveMetadata(org.eclipse.jface.viewers.ViewerCell)
 *///from   ww w  .  ja v  a  2s .  c om
@Override
protected Pair<Object, Object> retrieveMetadata(ViewerCell cell) {
    if (cell.getViewerRow().getTreePath().getFirstSegment() instanceof Set<?>) {
        if (cell.getElement() instanceof Set<?>) {
            return null;
        }

        String key = cell.getElement().toString();

        List<Object> values = instances.get(cell.getColumnIndex() - 1).getMetaData(key);
        Object value = values.get(labelProviders.get(cell.getColumnIndex()).getMetaDataChoice(key));
        return new Pair<Object, Object>(key, value);
    } else
        return null;
}

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

License:Open Source License

/**
 * @see InstanceViewer#createControls(Composite, SchemaSpaceID)
 *//*from w w 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.data.internal.explore.InstanceValueLabelProvider.java

License:Open Source License

/**
 * @see CellLabelProvider#update(ViewerCell)
 *//*  w  ww . j av a  2s  .c  o m*/
@Override
public void update(ViewerCell cell) {
    TreePath treePath = cell.getViewerRow().getTreePath();
    Object element = treePath.getLastSegment();
    Definition<?> definition = null;

    Object value = ((Pair<?, ?>) element).getSecond();
    if (((Pair<?, ?>) element).getFirst() instanceof Definition)
        definition = (Definition<?>) ((Pair<?, ?>) element).getFirst();

    InstanceValidationReport report = null;
    if (definition instanceof ChildDefinition<?>)
        report = InstanceValidator.validate(value, (ChildDefinition<?>) ((Pair<?, ?>) element).getFirst());
    else if (definition instanceof TypeDefinition)
        report = InstanceValidator.validate((Instance) value);

    boolean hasValue = false;
    if (value instanceof Instance) {
        hasValue = ((Instance) value).getValue() != null;
    }

    StyledString styledString;
    if (value == null) {
        styledString = new StyledString("no value", StyledString.DECORATIONS_STYLER);
    } else if (value instanceof Group && !hasValue) {
        styledString = new StyledString("+", StyledString.QUALIFIER_STYLER);
    } else {
        if (value instanceof Instance) {
            value = ((Instance) value).getValue();
        }
        // TODO some kind of conversion?
        String stringValue = value.toString();
        /*
         * Values that are very large, e.g. string representations of very
         * complex geometries lead to
         * StyledCellLabelProvider.updateTextLayout taking a very long time,
         * rendering the application unresponsive when the data views are
         * displayed. As such, we reduce the string to a maximum size.
         */
        if (stringValue.length() > MAX_STRING_LENGTH) {
            stringValue = stringValue.substring(0, MAX_STRING_LENGTH) + "...";
        }

        styledString = new StyledString(stringValue, null);
    }

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

    if (report != null && !report.getWarnings().isEmpty())
        cell.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK));

    super.update(cell);
}