From ceeae4836634e84807770e76f383c4da01b41817 Mon Sep 17 00:00:00 2001
From: stephane <stephane.dervaux@inrae.fr>
Date: Wed, 3 Apr 2024 15:45:08 +0200
Subject: [PATCH] =?UTF-8?q?si=20on=20compare=20une=20=C3=A9tape=20m=C3=A8r?=
 =?UTF-8?q?e,=20alors=20on=20prends=20sa=20premiere=20=C3=A9tape=20fille?=
 =?UTF-8?q?=20pour=20la=20comparaison?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../fr/inra/po2vocabmanager/model/DataNode.java    | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java b/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java
index 93989b87..24f6f344 100644
--- a/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java
+++ b/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java
@@ -257,11 +257,19 @@ public class DataNode implements Comparable<DataNode> {
         if(o == null) return 0;
         if(this.getType().equals(DataNodeType.STEP) && o.getType().equals(DataNodeType.STEP)) {
             // order by temporality
-            if(this.getItineraryFile() != null) {
-                if(getItineraryFile().isLinked((StepFile)this.getFile(),(StepFile)o.getFile())) {
+            StepFile current = (StepFile)this.getFile();
+            StepFile otherStep = (StepFile)o.getFile();
+            if(!current.isLeaf()) {
+                current = current.getSubStep().stream().findFirst().orElse(null);
+            }
+            if(!otherStep.isLeaf()) {
+                otherStep = otherStep.getSubStep().stream().findFirst().orElse(null);
+            }
+            if( current != null && otherStep != null && this.getItineraryFile() != null) {
+                if(getItineraryFile().isLinked(current,otherStep)) {
                     return -1;
                 } else {
-                    if(getItineraryFile().isLinked((StepFile)o.getFile(), (StepFile)this.getFile())) {
+                    if(getItineraryFile().isLinked(otherStep, current)) {
                         return 1;
                     }
                 }
-- 
GitLab