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