package com.redhat.ceylon.eclipse.code.outline;
import static com.redhat.ceylon.eclipse.code.outline.CeylonLabelProvider.DECORATIONS;
import static com.redhat.ceylon.eclipse.code.outline.CeylonLabelProvider.getDecorationAttributes;
import static com.redhat.ceylon.eclipse.ui.CeylonPlugin.imageRegistry;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ILightweightLabelDecorator;
/**
* This class works, but we don't use it because it decorates the
* images asynchronously, which looks just horrible in the UI.
* However, we're still using its static utility methods directly
* from CeylonLabelProvider.
*
*/
class CeylonLabelDecorator implements ILightweightLabelDecorator {
private CeylonLabelDecorator() {}
@Override
public void addListener(ILabelProviderListener listener) {}
@Override
public void dispose() {}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void removeListener(ILabelProviderListener listener) {}
@Override
public void decorate(Object element, IDecoration decoration) {
int adornmentFlags = getDecorationAttributes(element);
for (DecorationDescriptor d: DECORATIONS) {
if (d.hasDecoration(adornmentFlags)) {
ImageDescriptor id =
imageRegistry()
.getDescriptor(d.getImageKey());
decoration.addOverlay(id,
d.getQuadrant());
}
}
}
}