package org.zend.php.zendserver.deployment.ui.editors;
import java.util.Arrays;
import java.util.Map;
import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;
import org.zend.php.zendserver.deployment.core.descriptor.DeploymentDescriptorFactory;
import org.zend.php.zendserver.deployment.core.descriptor.IDeploymentDescriptor;
import org.zend.php.zendserver.deployment.core.descriptor.IModelObject;
import org.zend.php.zendserver.deployment.core.internal.descriptor.Feature;
import org.zend.php.zendserver.deployment.ui.editors.DescriptorEditorPage.FormDecoration;
public class DeploymentDescriptorLabelDecorator implements ILabelDecorator {
private DeploymentDescriptorEditor editor;
public DeploymentDescriptorLabelDecorator(DeploymentDescriptorEditor editor) {
this.editor = editor;
}
public Image decorateImage(Image image, Object element) {
if (element instanceof IModelObject) {
IModelObject imo = (IModelObject) element;
IDeploymentDescriptor imc = editor.getModel();
int index = -1;
if (imc != null) {
Feature f = DeploymentDescriptorFactory.getFeature(imo);
index = imc.getChildren(f).indexOf(imo);
}
Map<Feature, FormDecoration> decorations = null;
if (index != -1) {
decorations = editor.getDecorationsForFeatures(Arrays.asList(imo.getPropertyNames()), index);
} else {
decorations = editor.getDecorationsForFeatures(Arrays.asList(imo.getPropertyNames()));
}
if (decorations.size() > 0) {
return new ErrorImageComposite(image).createImage(); // TODO leaks?
}
}
return null;
}
public String decorateText(String text, Object element) {
return null;
}
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
}