package org.eclipse.papyrus.uml.diagram.sequence.apex.part.tweaks;
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
public class TweakStyledLabelProvider extends LabelProvider implements
IStyledLabelProvider {
private ILabelProvider fDelagate;
protected TweakStyledLabelProvider() {
}
public TweakStyledLabelProvider(ILabelProvider delegate) {
fDelagate = delegate;
}
@Override
public Image getImage(Object element) {
return fDelagate.getImage(element);
}
@Override
public String getText(Object element) {
return fDelagate.getText(element);
}
public StyledString getStyledText(Object element) {
StyledString styledText = convertToStyledString(getText(element));
if (styledText != null) {
return styledText;
} else if (fDelagate != null) {
if (fDelagate instanceof IStyledLabelProvider) {
styledText = ((IStyledLabelProvider) fDelagate).getStyledText(element);
if (styledText != null) {
return styledText;
}
} else {
styledText = convertToStyledString(fDelagate.getText(element));
if (styledText != null) {
return styledText;
}
}
}
return getDefaultStyledText();
}
protected StyledString convertToStyledString(Object text) {
if (text instanceof StyledString) {
return (StyledString) text;
} else if (text instanceof String) {
return new StyledString((String) text);
}
return null;
}
protected StyledString getDefaultStyledText() {
return null;
}
}