Bug 540155 - [Model Fragment Editor] Labels for all Model Fragments are
set using the last one

Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=540155

don't use cached container for labels

Change-Id: I6ca8ed1db4a6ceac2a7d71ed92c5975ee01c51ec
Signed-off-by: Benedikt Kuntz <benedikt.kuntz@airbus.com>
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/StringModelFragment.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/StringModelFragment.java
index 5129805..6b44c88 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/StringModelFragment.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/StringModelFragment.java
@@ -130,10 +130,22 @@
 	@Override
 	public String getLabel(Object element) {
 
-		if (selectedContainer == null) {
-			return Messages.StringModelFragment_Label;
+		MStringModelFragment modelFragment;
+		if (element instanceof MStringModelFragment) {
+			modelFragment = (MStringModelFragment) element;
+		} else {
+			modelFragment = getStringModelFragment();
 		}
-		return Messages.StringModelFragment_LabelFor + selectedContainer.getName();
+
+		EClass container = findContainerType(modelFragment);
+		String result;
+		if (container == null) {
+			result = Messages.StringModelFragment_Label;
+		} else {
+			result = Messages.StringModelFragment_LabelFor + container.getName();
+		}
+
+		return result;
 	}
 
 	@Override