Map editor: Feature Label Mapping label name
Change-Id: Id74b010c7d79da44daffb2fc8db6d814c7a43ebd
diff --git a/plugins/org.eclipse.gmf.map.edit/src/org/eclipse/gmf/mappings/provider/FeatureLabelMappingItemProvider.java b/plugins/org.eclipse.gmf.map.edit/src/org/eclipse/gmf/mappings/provider/FeatureLabelMappingItemProvider.java
index 27b817e..fff93d2 100644
--- a/plugins/org.eclipse.gmf.map.edit/src/org/eclipse/gmf/mappings/provider/FeatureLabelMappingItemProvider.java
+++ b/plugins/org.eclipse.gmf.map.edit/src/org/eclipse/gmf/mappings/provider/FeatureLabelMappingItemProvider.java
@@ -12,6 +12,9 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
@@ -247,14 +250,40 @@
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public String getText(Object object) {
+ StringBuilder result = new StringBuilder(getString("_UI_FeatureLabelMapping_type"));
FeatureLabelMapping featureLabelMapping = (FeatureLabelMapping)object;
- return getString("_UI_FeatureLabelMapping_type") + " " + featureLabelMapping.isReadOnly();
+ EList<EAttribute> features = featureLabelMapping.getFeatures();
+ result.append(':');
+ result.append('[');
+ if (!features.isEmpty()) {
+ appendFeatureName(result, features.get(0));
+ }
+ for (int i = 1; i < features.size(); i++) {
+ result.append(',');
+ appendFeatureName(result, features.get(i));
+ }
+ result.append(']');
+ appendReadOnly(result, featureLabelMapping);
+ return result.toString();
}
+ private void appendReadOnly(StringBuilder labelText, FeatureLabelMapping feature) {
+ if (feature.isReadOnly()) {
+ labelText.append(" Read Only");
+ }
+ }
+
+ private void appendFeatureName(StringBuilder labelText, EAttribute attr) {
+ labelText.append(attr.getEContainingClass().getName());
+ labelText.append("." + attr.getName());
+ labelText.append(":" + attr.getEType().getName());
+ }
+
+
/**
* This handles model notifications by calling {@link #updateChildren} to update any cached
* children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.