Example usage for org.eclipse.jface.viewers ILabelDecorator decorateImage

List of usage examples for org.eclipse.jface.viewers ILabelDecorator decorateImage

Introduction

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

Prototype

public Image decorateImage(Image image, Object element);

Source Link

Document

Returns an image that is based on the given image, but decorated with additional information relating to the state of the provided element.

Usage

From source file:org.eclipse.equinox.jmx.internal.client.ui.contributionsview.ContributionLabelProvider.java

License:Open Source License

protected Image decorateImage(Image image, Object element) {
    if (labelDecorators != null && image != null) {
        Iterator iter = labelDecorators.iterator();
        while (iter.hasNext()) {
            ILabelDecorator decorator = (ILabelDecorator) iter.next();
            image = decorator.decorateImage(image, element);
        }//w w  w  . j  a va  2s  .  c  o  m
    }
    return image;
}

From source file:org.eclipse.handly.ui.viewer.CompositeLabelDecorator.java

License:Open Source License

@Override
public Image decorateImage(Image image, Object element) {
    for (ILabelDecorator decorator : decorators) {
        Image newImage = decorator.decorateImage(image, element);
        if (newImage != null)
            image = newImage;/*  w w  w  .  j a  v  a2 s  . co  m*/
    }
    return image;
}

From source file:org.eclipse.oomph.internal.ui.FindAndReplaceTarget.java

License:Open Source License

/**
 * This sets up a special label provider in the viewer to be able to highlight the scope and show the selected match.
 *//*  www. j av  a 2  s .c o  m*/
protected void hookLabelProvider() {
    final StructuredViewer viewer = getViewer();

    // We use this special class so we can detect if the label provider is already hooked up.
    class DecoratingLabelProvider extends DelegatingStyledCellLabelProvider.FontAndColorProvider
            implements IStyledLabelProvider {
        public DecoratingLabelProvider(IStyledLabelProvider styledLabelProvider) {
            super(styledLabelProvider);
        }

        @Override
        public StyledString getStyledText(Object element) {
            return super.getStyledText(element);
        }
    }

    // If the label provider is already hooked up...
    final ILabelProvider labelProvider = (ILabelProvider) viewer.getLabelProvider();
    if (labelProvider instanceof DecoratingLabelProvider) {
        // Update the selection scope objects.
        if (selectionScopeObjects != null) {
            viewer.update(selectionScopeObjects.toArray(), null);
        }

        // Update the selected object if it's for a label.
        if (selectedItem != null && selectedItem.itemPropertyDescriptor == null) {
            viewer.update(selectedItem.data.object, null);
        }
    } else {
        // Create a styled label provider that can decorate the text.
        IStyledLabelProvider styledProvider = new DecoratingColumLabelProvider.StyledLabelProvider(
                labelProvider, new IStyledLabelDecorator() {
                    // Use the color from the theme that the editor uses to highlight the scope.
                    final Color color = workbenchPart.getSite().getWorkbenchWindow().getWorkbench()
                            .getThemeManager().getCurrentTheme().getColorRegistry()
                            .get("org.eclipse.ui.editors.findScope");

                    final Styler scopeStyler = new Styler() {
                        @Override
                        public void applyStyles(TextStyle textStyle) {
                            textStyle.background = color;
                        }
                    };

                    public void removeListener(ILabelProviderListener listener) {
                        labelProvider.removeListener(listener);
                    }

                    public boolean isLabelProperty(Object element, String property) {
                        return labelProvider.isLabelProperty(element, property);
                    }

                    public void dispose() {
                        labelProvider.dispose();
                    }

                    public void addListener(ILabelProviderListener listener) {
                        labelProvider.addListener(listener);
                    }

                    public String decorateText(String text, Object element) {
                        if (labelProvider instanceof ILabelDecorator) {
                            ILabelDecorator labelDecorator = (ILabelDecorator) labelProvider;
                            return labelDecorator.decorateText(text, element);
                        }

                        return text;
                    }

                    public Image decorateImage(Image image, Object element) {
                        if (labelProvider instanceof ILabelDecorator) {
                            ILabelDecorator labelDecorator = (ILabelDecorator) labelProvider;
                            return labelDecorator.decorateImage(image, element);
                        }

                        return image;
                    }

                    public StyledString decorateStyledText(StyledString styledString, Object element) {
                        if (labelProvider instanceof IStyledLabelDecorator) {
                            IStyledLabelDecorator styledLabelDecorator = (IStyledLabelDecorator) labelProvider;
                            styledString = styledLabelDecorator.decorateStyledText(styledString, element);
                        }

                        // If we have a selected item, it's the item for the label, and this element is that selected element's object...
                        if (selectedItem != null && selectedItem.itemPropertyDescriptor == null
                                && element == selectedItem.data.object) {
                            // Convert the styled string to just a string.
                            String string = styledString.getString();

                            // Find the pattern match within that string.
                            Matcher matcher = selectedItemPattern.matcher(string);
                            if (matcher.find(selectedItemStart)) {
                                // Create a new styles string.
                                StyledString result = new StyledString();

                                // Recompose the string with the match styled to show a selection bod.
                                String group = matcher.group();
                                int start = matcher.start();
                                int end = matcher.end();
                                result.append(string.substring(0, start));
                                result.append(group, MATCH_STYLER);
                                result.append(string.substring(end));
                                return result;
                            }
                        }

                        // If we have scope objects and the element is one of those...
                        if (selectionScopeObjects != null && selectionScopeObjects.contains(element)) {
                            // Mark the entire string with the scope styling.
                            StyledString result = new StyledString();
                            result.append(styledString.getString(), scopeStyler);
                            return result;
                        }

                        // Otherwise just pass through the string.
                        return styledString;
                    }
                });

        // Hook up the label provider to be the one used by the view.
        ILabelProvider delegatingLabelProvider = new DecoratingLabelProvider(styledProvider);
        viewer.setLabelProvider(delegatingLabelProvider);
    }
}

From source file:org.eclipse.tcf.te.ui.views.editor.pages.AbstractTreeViewerExplorerEditorPage.java

License:Open Source License

/**
 * Update the page's ui including its toolbar and title text and image.
 *//*from w  ww. j  a v  a 2s  . com*/
protected void updateUI() {
    toolbarMgr.update(true);
    IManagedForm managedForm = getManagedForm();
    Form form = managedForm.getForm().getForm();
    Object element = getTreeViewerInput();
    boolean filterEnabled = false;
    IFilterable filterDecorator = adaptFilterable();
    if (filterDecorator != null) {
        TreeViewer viewer = (TreeViewer) treeControl.getViewer();
        filterEnabled = TreeViewerUtil.isFiltering(viewer, TreePath.EMPTY);
    }
    ILabelDecorator titleDecorator = getTitleBarDecorator();
    String text = getFormTitle();
    if (text != null) {
        if (titleDecorator != null) {
            text = titleDecorator.decorateText(text, element);
        }
        if (filterEnabled) {
            TreeViewer viewer = (TreeViewer) treeControl.getViewer();
            text = TreeViewerUtil.getDecoratedText(text, viewer, TreePath.EMPTY);
        }
    }
    Image image = getFormImage();
    if (image != null) {
        if (titleDecorator != null) {
            image = titleDecorator.decorateImage(image, element);
        }
        if (filterEnabled) {
            TreeViewer viewer = (TreeViewer) treeControl.getViewer();
            image = TreeViewerUtil.getDecoratedImage(image, viewer, TreePath.EMPTY);
        }
    }
    if (text != null) {
        try {
            form.setText(text);
        } catch (Exception e) {
            // Ignore any disposed exception
        }
    }
    if (image != null) {
        try {
            form.setImage(image);
        } catch (Exception e) {
            // Ignore any disposed exception
        }
    }
}

From source file:org.eclipse.ui.internal.decorators.FullDecoratorDefinition.java

License:Open Source License

/**
 * Decorate the image provided for the element type.
 * This method should not be called unless a check for
 * isEnabled() has been done first.//from  www .  j av  a 2 s  . c o  m
 * Return null if there is no image or if an error occurs.
 */
Image decorateImage(Image image, Object element) {
    try {
        //Internal decorator might be null so be prepared
        ILabelDecorator currentDecorator = internalGetDecorator();
        if (currentDecorator != null) {
            return currentDecorator.decorateImage(image, element);
        }

    } catch (CoreException exception) {
        handleCoreException(exception);
    }
    return null;
}

From source file:org.eclipse.wst.jsdt.internal.ui.browsing.PackagesView.java

License:Open Source License

/**
 * Override the getText and getImage methods for the DecoratingLabelProvider
 * to handel the decoration of logical packages.
 *
 * @see org.eclipse.wst.jsdt.internal.ui.browsing.JavaBrowsingPart#createDecoratingLabelProvider(JavaUILabelProvider)
 *///from  ww w .java2  s . com
protected DecoratingJavaLabelProvider createDecoratingLabelProvider(JavaUILabelProvider provider) {
    return new DecoratingJavaLabelProvider(provider, false, isInListState()) {

        public String getText(Object element) {
            if (element instanceof LogicalPackage) {
                LogicalPackage el = (LogicalPackage) element;
                return super.getText(el.getFragments()[0]);
            } else
                return super.getText(element);
        }

        public Image getImage(Object element) {
            if (element instanceof LogicalPackage) {
                LogicalPackage el = (LogicalPackage) element;
                ILabelDecorator decorator = getLabelDecorator();
                IPackageFragment[] fragments = el.getFragments();

                Image image = super.getImage(el);
                for (int i = 0; i < fragments.length; i++) {
                    IPackageFragment fragment = fragments[i];
                    Image decoratedImage = decorator.decorateImage(image, fragment);
                    if (decoratedImage != null)
                        image = decoratedImage;
                }
                return image;
            } else
                return super.getImage(element);
        }

    };
}

From source file:org.erlide.ui.editors.erl.outline.ErlangLabelProvider.java

License:Open Source License

protected Image decorateImage(Image image, final Object element) {
    if (fLabelDecorators != null && image != null) {
        for (int i = 0; i < fLabelDecorators.size(); i++) {
            final ILabelDecorator decorator = fLabelDecorators.get(i);
            image = decorator.decorateImage(image, element);
        }//from  w  w  w. j  av a2s . c  o  m
    }
    return image;
}