/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.extension.ui.model; import java.util.Collection; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.graphics.Image; import org.teiid.core.designer.util.CoreStringUtil; import org.teiid.designer.extension.properties.ModelExtensionPropertyDefinition; import org.teiid.designer.extension.ui.Activator; import org.teiid.designer.extension.ui.Messages; import org.teiid.designer.extension.ui.UiConstants; /** * */ public class MedLabelProvider extends ColumnLabelProvider { /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object) */ @Override public Image getImage( Object element ) { if (element instanceof MedModelNode) { MedModelNode node = (MedModelNode)element; if (node.isDescription() || node.isMetamodelUri() || node.isModelTypes() || node.isNamespacePrefix() || node.isNamespaceUri() || node.isVersion()) { return Activator.getDefault().getImage(UiConstants.ImageIds.ATTRIBUTE); } if (node.isMed()) { return Activator.getDefault().getImage(UiConstants.ImageIds.MED); } if (node.isMetaclass()) { return Activator.getDefault().getImage(UiConstants.ImageIds.METACLASS); } if (node.isPropertyDefinition()) { return Activator.getDefault().getImage(UiConstants.ImageIds.PROPERTY_DEFINITION); } } return null; } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object) */ @Override public String getText( Object element ) { if (element instanceof MedModelNode) { MedModelNode node = (MedModelNode)element; if (node.isNamespacePrefix()) { return Messages.namespacePrefixNodeLabel; } if (node.isNamespaceUri()) { return Messages.namespaceUriNodeLabel; } if (node.isMetamodelUri()) { return Messages.metamodelUriNodeLabel; } if (node.isModelTypes()) { return Messages.modelTypesNodeLabel; } if (node.isDescription()) { return Messages.descriptionNodeLabel; } if (node.isVersion()) { return Messages.versionNodeLabel; } if (node.isMed()) { return Messages.medNodeLabel; } if (node.isPropertyDefinition()) { ModelExtensionPropertyDefinition propDefn = (ModelExtensionPropertyDefinition)node.getData(); String id = propDefn.getSimpleId(); return (CoreStringUtil.isEmpty(id) ? Messages.missingPropertyIdNodeLabel : id); } if (node.isMetaclass()) { return node.getData().toString(); } } return null; } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipImage(java.lang.Object) */ @Override public Image getToolTipImage( Object object ) { if (CoreStringUtil.isEmpty(getToolTipText(object))) { return null; } return getImage(object); } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object) */ @Override public String getToolTipText( Object element ) { if (element instanceof MedModelNode) { MedModelNode node = (MedModelNode)element; Object data = node.getData(); if (node.isDescription()) { return CoreStringUtil.isEmpty((String)data) ? Messages.descriptionNodeNoValueToolTip : NLS.bind(Messages.descriptionNodeToolTip, data); } if (node.isMetamodelUri()) { return CoreStringUtil.isEmpty((String)data) ? Messages.metamodelUriNodeNoValueToolTip : NLS.bind(Messages.metamodelUriNodeToolTip, data); } if (node.isModelTypes()) { Collection<String> modelTypes = (Collection<String>)data; if (modelTypes.isEmpty()) { return Messages.modelTypesNodeNoValueToolTip; } StringBuilder text = new StringBuilder(); boolean firstTime = true; for (String modelType : modelTypes) { if (firstTime) { firstTime = false; } else { text.append(", "); //$NON-NLS-1$ } text.append(Activator.getDefault().getModelTypeName(modelType)); } return NLS.bind(Messages.modelTypesNodeToolTip, data); } if (node.isNamespacePrefix()) { return CoreStringUtil.isEmpty((String)data) ? Messages.namespacePrefixNodeNoValueToolTip : NLS.bind(Messages.namespacePrefixNodeToolTip, data); } if (node.isNamespaceUri()) { return CoreStringUtil.isEmpty((String)data) ? Messages.namespaceUriNodeNoValueToolTip : NLS.bind(Messages.namespaceUriNodeToolTip, data); } if (node.isVersion()) { return NLS.bind(Messages.versionNodeToolTip, data); } if (node.isMetaclass()) { String metaclass = node.getMetaclass(); int index = metaclass.lastIndexOf('.'); return NLS.bind(Messages.metaclassNodeToolTip, metaclass.substring(index + 1)); } if (node.isPropertyDefinition()) { String metaclass = node.getMetaclass(); int index = metaclass.lastIndexOf('.'); ModelExtensionPropertyDefinition propDefn = node.getPropertyDefinition(); return NLS.bind(Messages.propertyNodeToolTip, metaclass.substring(index + 1), propDefn.getSimpleId()); } } return null; } /** * {@inheritDoc} * * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipTimeDisplayed(java.lang.Object) */ @Override public int getToolTipTimeDisplayed( Object object ) { return 2000; } }