blob: 9740cb04c295012abcd846525834a28d2c1967ad [file] [log] [blame]
package org.eclipse.ui.tests.navigator;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.*;
import org.eclipse.ui.internal.misc.Assert;
import org.eclipse.ui.tests.TestPlugin;
public class TestLightweightDecoratorContributor
implements ILightweightLabelDecorator {
public static TestLightweightDecoratorContributor contributor;
private Set listeners = new HashSet();
public static String DECORATOR_SUFFIX = "_SUFFIX";
public static String DECORATOR_PREFIX = "PREFIX_";
private ImageDescriptor descriptor;
public TestLightweightDecoratorContributor() {
contributor = this;
}
/*
* @see IBaseLabelProvider#addListener(ILabelProviderListener)
*/
public void addListener(ILabelProviderListener listener) {
listeners.add(listener);
}
/*
* @see IBaseLabelProvider#dispose()
*/
public void dispose() {
contributor = null;
listeners = new HashSet();
}
/*
* @see IBaseLabelProvider#isLabelProperty(Object, String)
*/
public boolean isLabelProperty(Object element, String property) {
return false;
}
/*
* @see IBaseLabelProvider#removeListener(ILabelProviderListener)
*/
public void removeListener(ILabelProviderListener listener) {
listeners.remove(listener);
}
/**
* Refresh the listeners to update the decorators for
* element.
*/
public void refreshListeners(Object element) {
Iterator iterator = listeners.iterator();
while (iterator.hasNext()) {
LabelProviderChangedEvent event =
new LabelProviderChangedEvent(this, element);
((ILabelProviderListener) iterator.next()).labelProviderChanged(
event);
}
}
/**
* @see org.eclipse.jface.viewers.ILightweightLabelDecorator#getOverlay(java.lang.Object)
*/
public ImageDescriptor getOverlay(Object element) {
Assert.isTrue(element instanceof IResource);
if (descriptor == null) {
URL source =
TestPlugin.getDefault().getDescriptor().getInstallURL();
try {
descriptor =
ImageDescriptor.createFromURL(
new URL(source, "icons/binary_co.gif"));
} catch (MalformedURLException exception) {
return null;
}
}
return descriptor;
}
/**
* @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
*/
public void decorate(Object element, IDecoration decoration) {
decoration.addOverlay(getOverlay(element));
decoration.addPrefix(DECORATOR_PREFIX);
decoration.addSuffix(DECORATOR_SUFFIX);
}
}