From 184cdc06ac14287f4c13019377348b2ace389748 Mon Sep 17 00:00:00 2001 From: Andreas Bayha <bayha@fortiss.org> Date: Mon, 19 Oct 2020 14:19:43 +0200 Subject: [PATCH] Annotations: Ordering of entries reflects hierarchy The AnnotationEntries in the annotations view are ordered according to hierarchy and after that alphabetically now. Issue-Ref: 4014 Issue-Url: https://af3-developer.fortiss.org/issues/4014 Signed-off-by: Andreas Bayha <bayha@fortiss.org> --- .../src/org/fortiss/tooling/base/annotation/.ratings | 2 +- .../tooling/base/annotation/AnnotationEntry.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/.ratings index abca4e511..f164c269a 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/.ratings +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/.ratings @@ -1,3 +1,3 @@ -AnnotationEntry.java 50d8790560ed60ba534b9d84a42f985e8f3e92a4 YELLOW +AnnotationEntry.java 967e6c0eeb47165fcd175c23aa372f0d8385d406 YELLOW AnnotationValueService.java 01fc46fb381854b16ce78779217ffc7c29036c14 GREEN IAnnotationValueService.java 81ff274a7b2d4c58e7b8485db857eb83f99710d0 GREEN diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/AnnotationEntry.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/AnnotationEntry.java index 50d879056..967e6c0ee 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/AnnotationEntry.java +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/AnnotationEntry.java @@ -15,6 +15,8 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.base.annotation; +import static org.fortiss.tooling.kernel.utils.EcoreUtils.getModelElementLevel; + import java.util.ArrayList; import java.util.List; @@ -236,6 +238,14 @@ public class AnnotationEntry implements Comparable<AnnotationEntry> { public int compareTo(AnnotationEntry otherEntry) { IModelElement otherModelElement = otherEntry.getModelElement(); IModelElement thisModelElement = this.getModelElement(); + + int thisLevel = getModelElementLevel(thisModelElement); + int otherLevel = getModelElementLevel(otherModelElement); + + if(thisLevel != otherLevel) { + return ((Integer)thisLevel).compareTo(otherLevel); + } + if(thisModelElement instanceof INamedElement && otherModelElement instanceof INamedElement) { INamedElement thisNamed = (INamedElement)thisModelElement; -- GitLab