From 5ad6a3d3d0216cdfe08eb0602ed45e88f4f6cb76 Mon Sep 17 00:00:00 2001 From: Simon Barner <barner@fortiss.org> Date: Tue, 21 Sep 2021 11:08:45 +0200 Subject: [PATCH] Retrieve both specification and model element for the edited row entry * Fixes a bug for DerivedAnnotations that return different EENums depending on the edited model element Issue-Ref: 4092 Issue-Url: https://git.fortiss.org/af3/af3/-/issues/4092 Signed-off-by: Simon Barner <barner@fortiss.org> --- .../tooling/base/ui/annotation/view/fx/.ratings | 2 +- .../view/fx/AnnotationViewFXController.java | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/.ratings index be6692896..a0bc51a56 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/.ratings @@ -1,6 +1,6 @@ AnnotationFxViewPart.java ca1548c49aa3842a9436262531464ba345b83688 GREEN AnnotationTreeTableUIProvider.java 9efdeb7261cafe9dfe763daf20af186c906c3ec3 YELLOW -AnnotationViewFXController.java c2b3e6a1cbffae55b88bff93418fa5797585d75d YELLOW +AnnotationViewFXController.java 7017eb40e9511b6bdc40fcc5a95fd9f79247dfee YELLOW AnnotationsFXUtils.java e180d593b69b1e4b90adf83ba47753b29f9d6ff8 YELLOW ColumnHandle.java 7b0fe536d4eb9faa63c4d812f0c078cf83d0fd42 GREEN FXAnnotationFilterContentProvider.java ca4587ef5dce1288ee4d7bf3bea5bd544ce6b89e GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/AnnotationViewFXController.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/AnnotationViewFXController.java index c2b3e6a1c..7017eb40e 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/AnnotationViewFXController.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/fx/AnnotationViewFXController.java @@ -25,6 +25,7 @@ import static org.fortiss.tooling.base.ui.annotation.view.fx.FXAnnotationFilterC import static org.fortiss.tooling.kernel.ui.util.SelectionUtils.checkAndPickFirst; import static org.fortiss.tooling.kernel.utils.EcoreUtils.getChildrenWithType; import static org.fortiss.tooling.kernel.utils.EcoreUtils.getFirstParentWithType; +import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickFirstInstanceOf; import static org.fortiss.tooling.kernel.utils.LoggingUtils.showWarning; import java.util.ArrayList; @@ -425,10 +426,16 @@ public class AnnotationViewFXController extends CompositeFXControllerBase<SplitP if(valueType instanceof EEnum || valueType instanceof EClass) { // Add a combo column for enumerations and references column = annotationViewer.addComboColumn(columnName, 150, rowEntry -> { - Map<Object, String> comboValues = getComboValues(featureDescriptor, specification, - rowEntry.getModelElement()); + // We must retrieve the specification and model element for the edited row entry + IAnnotatedSpecification entrySpec = + pickFirstInstanceOf(annotationType, rowEntry.getSpecificationsList()); + IModelElement entryElement = rowEntry.getModelElement(); + + Map<Object, String> comboValues = + getComboValues(featureDescriptor, entrySpec, entryElement); return comboValues; }); + } else if(valueType.getInstanceClass().equals(Boolean.class)) { // Use a checkbox column for booleans column = annotationViewer.addCheckboxColumn(columnName, 100); -- GitLab