package org.zend.php.zendserver.deployment.ui.editors; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.zend.php.zendserver.deployment.core.descriptor.IDirectiveDependency; import org.zend.php.zendserver.deployment.core.descriptor.IExtensionDependency; import org.zend.php.zendserver.deployment.core.descriptor.IPHPDependency; import org.zend.php.zendserver.deployment.core.descriptor.IPHPLibraryDependency; import org.zend.php.zendserver.deployment.core.descriptor.IParameter; import org.zend.php.zendserver.deployment.core.descriptor.IVariable; import org.zend.php.zendserver.deployment.core.descriptor.IZendComponentDependency; import org.zend.php.zendserver.deployment.core.descriptor.IZendFramework2Dependency; import org.zend.php.zendserver.deployment.core.descriptor.IZendFrameworkDependency; import org.zend.php.zendserver.deployment.core.descriptor.IZendServerDependency; import org.zend.php.zendserver.deployment.ui.Activator; import org.zend.php.zendserver.deployment.ui.Messages; public class DeploymentDescriptorLabelProvider extends LabelProvider { public Image getParameterImage(Object element) { IParameter param = (IParameter) element; String type = param.getType(); if (IParameter.PASSWORD.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_PASSWORD); } else if (IParameter.STRING.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_STRING); } else if (IParameter.NUMBER.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_NUMBER); } else if (IParameter.CHOICE.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_CHOICE); } else if (IParameter.CHECKBOX.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_CHECKBOX); } else if (IParameter.HOSTNAME.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_HOSTNAME); } else if (IParameter.EMAIL.equals(type)) { return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_EMAIL); } return Activator.getDefault().getImage( Activator.IMAGE_PARAMTYPE_UNKNOWN); } public String getParameterText(Object element) { IParameter param = (IParameter) element; StringBuilder sb = new StringBuilder(); String label = param.getDisplay(); if (label == null || label.trim().equals("")) { //$NON-NLS-1$ sb.append(param.getId()); } else { sb.append(label); } if (param.isRequired()) { sb.append(Messages.DeploymentDescriptorLabelProvider_Required); } String defaultVal = param.getDefaultValue(); if (defaultVal != null && !defaultVal.trim().equals("")) { //$NON-NLS-1$ sb.append(Messages.DeploymentDescriptorLabelProvider_Equals + defaultVal); } String type = param.getType(); if (type != null) { sb.append(Messages.DeploymentDescriptorLabelProvider_From) .append(type) .append(Messages.DeploymentDescriptorLabelProvider_To); } return sb.toString(); } public Image getDependencyImage(Object element) { if (element instanceof IPHPDependency) { return Activator.getDefault().getImage(Activator.IMAGE_PHP); } else if (element instanceof IExtensionDependency) { return Activator.getDefault().getImage( Activator.IMAGE_PHP_EXTENSION); } else if (element instanceof IDirectiveDependency) { return Activator.getDefault().getImage( Activator.IMAGE_PHP_DIRECTIVE); } else if (element instanceof IZendServerDependency) { return Activator.getDefault().getImage(Activator.IMAGE_ZENDSERVER); } else if (element instanceof IZendFrameworkDependency) { return Activator.getDefault().getImage( Activator.IMAGE_ZENDFRAMEWORK); } else if (element instanceof IZendComponentDependency) { return Activator.getDefault().getImage( Activator.IMAGE_ZENDSERVERCOMPONENT); } else if (element instanceof IPHPLibraryDependency) { return Activator.getDefault().getImage(Activator.IMAGE_LIBRARY); } return super.getImage(element); } public String getDependencyText(Object element) { if (element instanceof IPHPDependency) { IPHPDependency dep = (IPHPDependency) element; if (dep.getEquals() == null && dep.getMax() == null && dep.getMin() == null) { return Messages.DeploymentDescriptorLabelProvider_PHPVersion; } return Messages.DeploymentDescriptorLabelProvider_PHP + format(dep.getEquals(), dep.getMin(), dep.getMax(), null); } else if (element instanceof IExtensionDependency) { IExtensionDependency dep = (IExtensionDependency) element; if (dep.getName() == null) { return Messages.DeploymentDescriptorLabelProvider_PHPExtension; } return dep.getName() + format(dep.getEquals(), dep.getMin(), dep.getMax(), dep.getConflicts()); } else if (element instanceof IDirectiveDependency) { IDirectiveDependency dep = (IDirectiveDependency) element; if (dep.getName() == null) { return Messages.DeploymentDescriptorLabelProvider_PHPDirective; } return dep.getName() + format(dep.getEquals(), dep.getMin(), dep.getMax(), null); } else if (element instanceof IZendServerDependency) { IZendServerDependency dep = (IZendServerDependency) element; if (dep.getEquals() == null && dep.getMax() == null && dep.getMin() == null) { return Messages.DeploymentDescriptorLabelProvider_ZendServerVersion; } return Messages.DeploymentDescriptorLabelProvider_ZendServer + format(dep.getEquals(), dep.getMin(), dep.getMax(), null); } else if (element instanceof IZendFramework2Dependency) { IZendFramework2Dependency dep = (IZendFramework2Dependency) element; if (dep.getEquals() == null && dep.getMax() == null && dep.getMin() == null) { return Messages.DeploymentDescriptorLabelProvider_ZendFramework2Version; } return Messages.DeploymentDescriptorLabelProvider_ZendFramework2 + format(dep.getEquals(), dep.getMin(), dep.getMax(), null); } else if (element instanceof IZendFrameworkDependency) { IZendFrameworkDependency dep = (IZendFrameworkDependency) element; if (dep.getEquals() == null && dep.getMax() == null && dep.getMin() == null) { return Messages.DeploymentDescriptorLabelProvider_ZendFrameworkVersion; } return Messages.DeploymentDescriptorLabelProvider_ZendFramework + format(dep.getEquals(), dep.getMin(), dep.getMax(), null); } else if (element instanceof IZendComponentDependency) { IZendComponentDependency dep = (IZendComponentDependency) element; if (dep.getName() == null) { return Messages.DeploymentDescriptorLabelProvider_ZendServerComponent; } return dep.getName() + format(dep.getEquals(), dep.getMin(), dep.getMax(), dep.getConflicts()); } else if (element instanceof IPHPLibraryDependency) { IPHPLibraryDependency dep = (IPHPLibraryDependency) element; if (dep.getName() == null) { return Messages.DeploymentDescriptorLabelProvider_PHPLibrary; } return dep.getName() + format(dep.getEquals(), dep.getMin(), dep.getMax(), null); } return super.getText(element); } private String format(String equals, String min, String max, String conflicts) { if (conflicts != null) { return Messages.DeploymentDescriptorLabelProvider_conflictsWith + conflicts; } if (equals != null) { return Messages.DeploymentDescriptorLabelProvider_Equals + equals; } if (min != null && max != null) { return Messages.bind( Messages.DeploymentDescriptorLabelProvider_range, min, max); } if (min != null) { return Messages.DeploymentDescriptorLabelProvider_greaterThan + min; } if (max != null) { return Messages.DeploymentDescriptorLabelProvider_lessThan + max; } return ""; //$NON-NLS-1$ } public Image getVariableImage(Object element) { return Activator.getDefault().getImage(Activator.IMAGE_VARIABLE); } public String getVariableText(Object element) { IVariable param = (IVariable) element; return param.getName(); } @Override public Image getImage(Object element) { if (element instanceof IParameter) { return getParameterImage(element); } if (element instanceof IVariable) { return getVariableImage(element); } return getDependencyImage(element); } @Override public String getText(Object element) { if (element instanceof IParameter) { return getParameterText(element); } if (element instanceof IVariable) { return getVariableText(element); } return getDependencyText(element); } }