package org.teiid.designer.ui.viewsupport;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.teiid.designer.core.translators.TranslatorOverrideProperty;
import org.teiid.designer.ui.PluginConstants;
import org.teiid.designer.ui.UiPlugin;
public class TranslatorPropertyLabelProvider extends ColumnLabelProvider {
private final boolean nameColumn;
public TranslatorPropertyLabelProvider( boolean nameColumn ) {
this.nameColumn = nameColumn;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
*/
@Override
public Image getImage( Object element ) {
TranslatorOverrideProperty property = (TranslatorOverrideProperty)element;
String overridenValue = property.getOverriddenValue();
Image image = null;
if (!this.nameColumn) {
if (property.getDefinition().isValidValue(overridenValue) == null) {
if (property.hasOverridenValue()) {
if (!property.isCustom() || !property.getDefinition().getDefaultValue().equals(overridenValue)) {
image = UiPlugin.getDefault().getImage(PluginConstants.Images.RESTORE_DEFAULT_VALUE);
}
}
} else {
image = UiPlugin.getDefault().getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
}
}
return image;
}
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
*/
@Override
public String getText( Object element ) {
TranslatorOverrideProperty property = (TranslatorOverrideProperty)element;
if (this.nameColumn) {
return property.getDefinition().getDisplayName();
}
boolean masked = property.getDefinition().isMasked();
final String maskedValue = "*****"; //$NON-NLS-1$
// return override value if it exists
if (property.hasOverridenValue()) {
return (masked ? maskedValue : property.getOverriddenValue());
}
// return default value
return (masked ? maskedValue : property.getDefinition().getDefaultValue());
}
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object)
*/
@Override
public String getToolTipText( Object element ) {
TranslatorOverrideProperty property = (TranslatorOverrideProperty)element;
if (this.nameColumn) {
return property.getDefinition().getDescription();
}
if (property.hasOverridenValue()) {
if (!property.isCustom() || !property.getDefinition().getDefaultValue().equals(property.getOverriddenValue())) {
return property.getDefinition().isValidValue(property.getOverriddenValue());
}
}
// default value is being used
return "Using default value"; //$NON-NLS-1$
}
}