diff options
Diffstat (limited to 'bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java')
-rw-r--r-- | bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java index 1ce122b01fd..088933692ac 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java @@ -34,10 +34,12 @@ import org.eclipse.swt.graphics.Image; * optionally implement {@link IColorProvider} and {@link IFontProvider} to * provide foreground and background color and a default font. * </p> + * @param <E> Type of an element of the model + * @param <I> Type of the input * * @since 3.4 */ -public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { +public class DelegatingStyledCellLabelProvider<E,I> extends StyledCellLabelProvider<E,I> { /** * Interface marking a label provider that provides styled text labels and @@ -47,8 +49,9 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * optionally implement {@link IColorProvider} and {@link IFontProvider} to * provide foreground and background color and a default font. * </p> + * @param <E> Type of an element of the model */ - public static interface IStyledLabelProvider extends IBaseLabelProvider { + public static interface IStyledLabelProvider<E> extends IBaseLabelProvider<E> { /** * Returns the styled text label for the given element @@ -58,7 +61,7 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * * @return the styled string. */ - public StyledString getStyledText(Object element); + public StyledString getStyledText(E element); /** * Returns the image for the label of the given element. The image is @@ -70,10 +73,10 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * @return the image used to label the element, or <code>null</code> * if there is no image for the given object */ - public Image getImage(Object element); + public Image getImage(E element); } - private IStyledLabelProvider styledLabelProvider; + private IStyledLabelProvider<E> styledLabelProvider; /** * Creates a {@link DelegatingStyledCellLabelProvider} that delegates the @@ -84,7 +87,7 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * the label provider that provides the styled labels and the * images */ - public DelegatingStyledCellLabelProvider(IStyledLabelProvider labelProvider) { + public DelegatingStyledCellLabelProvider(IStyledLabelProvider<E> labelProvider) { if (labelProvider == null) throw new IllegalArgumentException( "Label provider must not be null"); //$NON-NLS-1$ @@ -98,8 +101,8 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) */ @Override - public void update(ViewerCell cell) { - Object element = cell.getElement(); + public void update(ViewerCell<E> cell) { + E element = cell.getElement(); StyledString styledString = getStyledText(element); String newText= styledString.toString(); @@ -132,10 +135,11 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * @return the foreground color for the element, or <code>null</code> to * use the default foreground color */ - public Color getForeground(Object element) { + public Color getForeground(E element) { if (this.styledLabelProvider instanceof IColorProvider) { - return ((IColorProvider) this.styledLabelProvider) - .getForeground(element); + @SuppressWarnings("unchecked") + IColorProvider<E> colorProvider = (IColorProvider<E>) this.styledLabelProvider; + return colorProvider.getForeground(element); } return null; } @@ -148,10 +152,11 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * @return the background color for the element, or <code>null</code> to * use the default background color */ - public Color getBackground(Object element) { + public Color getBackground(E element) { if (this.styledLabelProvider instanceof IColorProvider) { - return ((IColorProvider) this.styledLabelProvider) - .getBackground(element); + @SuppressWarnings("unchecked") + IColorProvider<E> colorProvider = (IColorProvider<E>) this.styledLabelProvider; + return colorProvider.getBackground(element); } return null; } @@ -164,9 +169,11 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * @return the font for the element, or <code>null</code> to use the * default font */ - public Font getFont(Object element) { + public Font getFont(E element) { if (this.styledLabelProvider instanceof IFontProvider) { - return ((IFontProvider) this.styledLabelProvider).getFont(element); + @SuppressWarnings("unchecked") + IFontProvider<E> fontProvider = (IFontProvider<E>) this.styledLabelProvider; + return fontProvider.getFont(element); } return null; } @@ -181,7 +188,7 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * @return the image used to label the element, or <code>null</code> if * there is no image for the given object */ - public Image getImage(Object element) { + public Image getImage(E element) { return this.styledLabelProvider.getImage(element); } @@ -192,7 +199,7 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * the element for which to provide the styled label text * @return the styled text string used to label the element */ - protected StyledString getStyledText(Object element) { + protected StyledString getStyledText(E element) { return this.styledLabelProvider.getStyledText(element); } @@ -201,24 +208,24 @@ public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider { * * @return the wrapped label provider */ - public IStyledLabelProvider getStyledStringProvider() { + public IStyledLabelProvider<E> getStyledStringProvider() { return this.styledLabelProvider; } @Override - public void addListener(ILabelProviderListener listener) { + public void addListener(ILabelProviderListener<E> listener) { super.addListener(listener); this.styledLabelProvider.addListener(listener); } @Override - public void removeListener(ILabelProviderListener listener) { + public void removeListener(ILabelProviderListener<E> listener) { super.removeListener(listener); this.styledLabelProvider.removeListener(listener); } @Override - public boolean isLabelProperty(Object element, String property) { + public boolean isLabelProperty(E element, String property) { return this.styledLabelProvider.isLabelProperty(element, property); } |