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

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

Introduction

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

Prototype

public void setStyleRanges(StyleRange[] styleRanges) 

Source Link

Document

Set the style ranges to be applied on the text label Note: Requires StyledCellLabelProvider with owner draw enabled.

Usage

From source file:de.byteholder.geoclipse.mapprovider.DialogMPProfile.java

License:Open Source License

/**
 * create columns for the tree viewer/*w  ww .  j a  v a 2s  . c o m*/
 * 
 * @param pixelConverter
 */
private void createUI116ViewerColumns(final TreeColumnLayout treeLayout, final PixelConverter pixelConverter) {

    TreeViewerColumn tvc;
    TreeColumn tc;

    /*
     * column: map provider
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_MapProvider);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_MapProvider_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final StyledString styledString = new StyledString();
            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();
                final MP mapProvider = mpWrapper.getMP();

                styledString.append(mapProvider.getName());

                cell.setImage(mpWrapper.isDisplayedInMap() ? _imageMap : _imagePlaceholder);

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                styledString.append(mtLayer.getGeoLayer().getTitle());

                styledString.append("  (", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$
                styledString.append(mtLayer.getGeoLayer().getName(), StyledString.QUALIFIER_STYLER);
                styledString.append(")", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$

                cell.setImage(mtLayer.isDisplayedInMap() ? _imageLayer : _imagePlaceholder);

            } else {
                styledString.append(element.toString());
            }

            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    });
    treeLayout.setColumnData(tc, new ColumnWeightData(100, true));

    /*
     * column: is visible
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_IsVisible);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_IsVisible_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Boolean.toString(mpWrapper.isDisplayedInMap()));

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                cell.setText(Boolean.toString(mtLayer.isDisplayedInMap()));

            } else {
                cell.setText(UI.EMPTY_STRING);
            }
        }
    });

    tvc.setEditingSupport(new EditingSupport(_treeViewer) {

        private final CheckboxCellEditor fCellEditor = new CheckboxCellEditor(_treeViewer.getTree());

        @Override
        protected boolean canEdit(final Object element) {

            if (element instanceof TVIMapProvider) {

                final TVIMapProvider tvi = (TVIMapProvider) element;
                final MP mapProvider = tvi.getMapProviderWrapper().getMP();

                if (mapProvider instanceof MPWms) {

                    // wms can be toggled when at least one layer is displayed

                    return canWmsBeDisplayed((MPWms) mapProvider);
                }
            }

            return true;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return fCellEditor;
        }

        @Override
        protected Object getValue(final Object element) {

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                return mpWrapper.isDisplayedInMap();

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                return mtLayer.isDisplayedInMap();
            }

            return null;
        }

        @Override
        protected void setValue(final Object element, final Object value) {

            final boolean isChecked = ((Boolean) value);

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                mpWrapper.setIsDisplayedInMap(isChecked);

                if (isChecked) {

                    /*
                     * remove parent tiles from loading cache because they can have loading
                     * errors (from their children) which prevents them to be loaded again
                     */
                    _mpProfile.resetParentTiles();
                }

                enableProfileMapButton();

            } else if (element instanceof TVIWmsLayer) {

                final TVIWmsLayer tviLayer = (TVIWmsLayer) element;
                final MtLayer mtLayer = tviLayer.getMtLayer();

                mtLayer.setIsDisplayedInMap(isChecked);

                updateMVMapProvider(tviLayer);
            }

            // update viewer
            getViewer().update(element, null);

            updateLiveView();
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: alpha
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Alpha);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Alpha_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Integer.toString(mpWrapper.getAlpha()));

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: brightness
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Brightness);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Brightness_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(mpWrapper.isBrightnessForNextMp()
                        ? Integer.toString(mpWrapper.getBrightnessValueForNextMp())
                        : UI.EMPTY_STRING);

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: empty to prevent scrolling to the right when the right column is selected
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            /*
             * !!! label provider is necessary to prevent a NPE !!!
             */
        }
    });
    tc = tvc.getColumn();
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4)));

}

From source file:de.instanttouch.ui.scaffolding.swt.viewer.lazy.SnakeLazyTableViewer.java

License:Open Source License

private void handleSelectMarker(ViewerCell cell, String converted, SnakeMarker marker) {
    List<StyleRange> ranges = new ArrayList<StyleRange>();

    SnakeHighlightMarker selector = (SnakeHighlightMarker) marker;
    String colorStr = selector.getForegroundColor();
    Color textColor = SnakeSwtUtils.createFromHexString(colorStr);

    String backColorStr = selector.getBackgroundColor();
    Color markerBackground = SnakeSwtUtils.createFromHexString(backColorStr);

    StringTokenizer tokenizer = new StringTokenizer(converted);
    while (tokenizer.hasMoreTokens()) {
        String token = tokenizer.nextToken();
        if (selector.match(token)) {
            int index = converted.indexOf(token);
            if (index >= 0) {
                int fontStyle = SWT.NORMAL;
                if (selector.getFontStyle() == eFontStyle.bold) {
                    fontStyle = SWT.BOLD;
                } else if (selector.getFontStyle() == eFontStyle.italic) {
                    fontStyle = SWT.ITALIC;
                }/*w w  w . ja  va 2 s  .  com*/

                FontData fontData = new FontData(selector.getFontFamily(), selector.getFontSize(), fontStyle);
                Font font = new Font(getControl().getDisplay(), fontData);

                StyleRange myStyledRange = new StyleRange(index, token.length(), textColor, markerBackground,
                        fontStyle);
                myStyledRange.font = font;

                ranges.add(myStyledRange);
            }
        }
    }

    if (ranges.size() > 0) {
        StyleRange[] collected = new StyleRange[ranges.size()];
        for (int i = 0; i < ranges.size(); i++) {
            StyleRange range = ranges.get(i);
            collected[i] = range;
        }
        cell.setStyleRanges(collected);
    }
}

From source file:de.walware.docmlet.tex.ui.TexLabelProvider.java

License:Open Source License

@Override
public void update(final ViewerCell cell) {
    final Object cellElement = cell.getElement();
    if (cellElement instanceof IModelElement) {
        final IModelElement element = (IModelElement) cellElement;
        cell.setImage(getImage(element));
        final StyledString styledText = getStyledText(element);
        cell.setText(styledText.getString());
        cell.setStyleRanges(styledText.getStyleRanges());
        super.update(cell);
    } else {// ww  w .  ja v a  2 s  .co  m
        cell.setImage(null);
        cell.setText(cellElement.toString());
        cell.setStyleRanges(null);
        super.update(cell);
    }
}

From source file:de.walware.statet.r.internal.ui.dataeditor.RDataLabelProvider.java

License:Open Source License

@Override
public void update(final ViewerCell cell) {
    Image image;/* www .  j a va  2 s  . c om*/
    final StyledString text = new StyledString();
    final Object element = cell.getElement();
    if (element instanceof RDataTableContentDescription) {
        final RDataTableContentDescription description = (RDataTableContentDescription) element;
        if (description.getRElementStruct() instanceof ICombinedRElement) {
            fRLabelProvider.update(cell, (IModelElement) description.getRElementStruct());
            super.update(cell);
            return;
        }
        switch (description.getRElementStruct().getRObjectType()) {
        case RObject.TYPE_VECTOR:
            image = RUI.getImage(RUI.IMG_OBJ_VECTOR);
            break;
        case RObject.TYPE_ARRAY:
            image = RUI.getImage(RUI.IMG_OBJ_VECTOR);
            break;
        case RObject.TYPE_DATAFRAME:
            image = RUI.getImage(RUI.IMG_OBJ_VECTOR);
            break;
        default:
            image = null;
            break;
        }
        text.append(description.getElementName().toString());
    } else if (element instanceof IRDataTableVariable) {
        final IRDataTableVariable variable = (IRDataTableVariable) element;
        image = getImage(variable);
        text.append(variable.getName());

        if (element instanceof RDataTableColumn) {
            final RDataTableColumn column = (RDataTableColumn) variable;
            text.append(" : ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
            final List<String> classNames = column.getClassNames();
            text.append(classNames.get(0), StyledString.DECORATIONS_STYLER);
            for (int i = 1; i < classNames.size(); i++) {
                text.append(", ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
                text.append(classNames.get(i), StyledString.DECORATIONS_STYLER);
            }
            if (!classNames.contains(RDataUtil.getStoreClass(column.getDataStore()))) {
                text.append(" (", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
                text.append(RDataUtil.getStoreAbbr(column.getDataStore()), StyledString.DECORATIONS_STYLER);
                text.append(")", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
            }
        }
    } else if (element instanceof VariablePropertyItem) {
        final VariablePropertyItem item = (VariablePropertyItem) element;
        image = null;
        text.append(item.getName());
        final int count = item.getCount();
        if (count >= 0) {
            text.append(" (", StyledString.COUNTER_STYLER); //$NON-NLS-1$
            text.append(Integer.toString(count), StyledString.COUNTER_STYLER);
            text.append(")", StyledString.COUNTER_STYLER); //$NON-NLS-1$
        }
    } else {
        image = null;
        text.append(element.toString());
    }

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

    super.update(cell);
}

From source file:de.walware.statet.r.internal.ui.pkgmanager.PkgTab.java

License:Open Source License

private void createDetailRef(final Composite parent, final int type) {
    {//w  w  w .  j  ava  2 s. c  o  m
        final Label label = new Label(parent, SWT.NONE);
        label.setText((type == 0) ? "Dependencies:" : "Reverse:");
        label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    }

    final TreeViewer viewer = new TreeViewer(parent, (SWT.BORDER | SWT.SINGLE));
    if (type == 0) {
        fDetailDepTable = viewer;
    } else {
        fDetailRevTable = viewer;
    }
    {
        final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
        gd.heightHint = LayoutUtil.hintHeight(viewer.getTree(), 12);
        gd.widthHint = fDialog.hintWidthInChars(20);
        viewer.getControl().setLayoutData(gd);
    }

    viewer.setContentProvider(new DetailGroup.ContentProvider(5) {
        private static final int DEPENDS = 0;
        private static final int IMPORTS = 1;
        private static final int LINKINGTO = 2;
        private static final int SUGGESTS = 3;
        private static final int ENHANCES = 4;
        {
            fGroups[DEPENDS] = new DetailGroup(0, "Depends");
            fGroups[IMPORTS] = new DetailGroup(1, "Imports");
            fGroups[LINKINGTO] = new DetailGroup(2, "Linking To");
            fGroups[SUGGESTS] = new DetailGroup(3, "Suggests");
            fGroups[ENHANCES] = new DetailGroup(4, "Enhances");
        }

        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
            if (newInput instanceof IRPkgData) {
                final IRPkgData pkg = (IRPkgData) newInput;
                fGroups[DEPENDS].setList(pkg.getDepends());
                fGroups[IMPORTS].setList(pkg.getImports());
                fGroups[LINKINGTO].setList(pkg.getLinkingTo());
                fGroups[SUGGESTS].setList(pkg.getSuggests());
                fGroups[ENHANCES].setList(pkg.getEnhances());
            } else {
                fGroups[DEPENDS].clearList();
                fGroups[IMPORTS].clearList();
                fGroups[LINKINGTO].clearList();
                fGroups[SUGGESTS].clearList();
                fGroups[ENHANCES].clearList();
            }
        }
    });
    viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS);

    viewer.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            final Object element = cell.getElement();
            if (element instanceof DetailGroup) {
                cell.setText(((DetailGroup) element).getLabel());
                cell.setStyleRanges(null);
                return;
            } else if (element instanceof IRPkg) {
                final IRPkg pkg = (IRPkg) element;
                final StyledString text = new StyledString();
                text.append(pkg.getName());
                final String version = pkg.getVersion().toString();
                if (!version.isEmpty()) {
                    text.append(" (", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
                    text.append(version, StyledString.QUALIFIER_STYLER);
                    text.append(")", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
                }
                cell.setText(text.getString());
                cell.setStyleRanges(text.getStyleRanges());
                return;
            }
            throw new IllegalStateException();
        }
    });

    viewer.setInput(NO_INPUT);

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            final Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (element instanceof IRPkg) {
                showPkg(((IRPkg) element).getName());
            }
        }
    });
}

From source file:de.walware.statet.r.internal.ui.pkgmanager.RRepoLabelProvider.java

License:Open Source License

protected void update(final ViewerCell cell, final RRepo repo) {
    final StyledString sb = new StyledString(repo.getName());
    sb.append(" - ", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
    sb.append(repo.getURL(), StyledString.QUALIFIER_STYLER);

    cell.setText(sb.getString());//from  ww w  . j av  a  2s.c  o  m
    cell.setStyleRanges(sb.getStyleRanges());
}

From source file:de.walware.statet.r.internal.ui.rhelp.RHelpLabelProvider.java

License:Open Source License

@Override
public void update(final ViewerCell cell) {
    final Object element = cell.getElement();
    final Image image = getImage(element);
    final StyledString text = getStyledText(element);

    cell.setImage(image);/*from  ww w .j  a v  a 2  s.  com*/
    cell.setText(text.getString());
    cell.setStyleRanges(text.getStyleRanges());

    super.update(cell);
}

From source file:de.walware.statet.r.ui.RLabelProvider.java

License:Open Source License

@Override
 public void update(final ViewerCell cell) {
     final Object element = cell.getElement();
     final IModelElement modelElement = LTKUtil.getModelElement(element);
     if (element instanceof IElementPartition) {
         update(cell, (IElementPartition) element, modelElement);
         super.update(cell);
     } else if (modelElement != null) {
         update(cell, modelElement);//from w  ww  .  j a  v  a  2s  .co  m
         super.update(cell);
     } else {
         cell.setImage(null);
         cell.setText(element.toString());
         cell.setStyleRanges(null);
         super.update(cell);
     }
 }

From source file:de.walware.statet.r.ui.RLabelProvider.java

License:Open Source License

public void update(final ViewerCell cell, final IModelElement element) {
     Image image = null;//  ww  w . j av a2  s. c  o m
     StyledString styledText = null;

     if (element instanceof ICombinedRElement) {
         final ICombinedRElement combined = (ICombinedRElement) element;
         if (combined.getRObjectType() == RObject.TYPE_REFERENCE) {
             final RObject realObject = ((RReference) element).getResolvedRObject();
             if (realObject instanceof ICombinedRElement) {
                 image = getImage((ICombinedRElement) realObject);
                 styledText = getStyledText((ICombinedRElement) realObject, combined.getElementName(), null);
             }
         }
     }

     if (image == null) {
         image = getImage(element);
     }
     cell.setImage(image);

     if (styledText == null) {
         styledText = getStyledText(element);
     }
     if (styledText != null) {
         cell.setText(styledText.getString());
         cell.setStyleRanges(styledText.getStyleRanges());
     } else {
         cell.setText(getText(element));
         cell.setStyleRanges(null);
     }
 }

From source file:de.walware.statet.r.ui.RLabelProvider.java

License:Open Source License

public void update(final ViewerCell cell, final IElementPartition partition, final IModelElement element) {
     cell.setImage(WaDebugImages.getImageRegistry().get(WaDebugImages.OBJ_VARIABLE_PARTITION));

     final StyledString text = new StyledString();
     text.append("["); //$NON-NLS-1$
     text.append(Long.toString((partition.getPartitionStart() + 1)));
     text.append(" ... "); //$NON-NLS-1$
     text.append(Long.toString(partition.getPartitionStart() + partition.getPartitionLength()));
     text.append("]"); //$NON-NLS-1$

     if (element instanceof RList) {
         final RList rList = (RList) element;
         String label = rList.getName(partition.getPartitionStart());
         if (label != null) {
             text.append("  "); //$NON-NLS-1$
             text.append(label, StyledString.QUALIFIER_STYLER);
             text.append(" ... ", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
             label = rList.getName(partition.getPartitionStart() + (partition.getPartitionLength() - 1));
             if (label != null) {
                 text.append(label, StyledString.QUALIFIER_STYLER);
             }/*ww  w .  ja  va  2  s .  c o  m*/
         }
     }

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