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