From a7d5b5ed9ac0f09204332378cea1146294a7d2ed Mon Sep 17 00:00:00 2001
From: Alan Birchler De Allende <alan.birchler@telecom-paris.fr>
Date: Thu, 11 Apr 2024 11:41:22 +0200
Subject: [PATCH] Fixed AT drawing functionality from AT class so that the
 diagrams include what the root attack is, the descriptions of each attack
 node, and the type of AttackNode.

---
 src/main/java/attacktrees/AttackNode.java        |  2 ++
 src/main/java/ui/atd/ATDAttack.java              |  2 ++
 src/main/java/ui/atd/AttackTreeDiagramPanel.java | 13 ++++++++++++-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/main/java/attacktrees/AttackNode.java b/src/main/java/attacktrees/AttackNode.java
index ffcf9e0b1b..7ef3122672 100644
--- a/src/main/java/attacktrees/AttackNode.java
+++ b/src/main/java/attacktrees/AttackNode.java
@@ -91,6 +91,8 @@ public abstract class AttackNode extends AttackElement {
         return inputValues;
     }
 
+    public String getType() { return type; }
+
     public void addInputAttack(Attack _attack, Integer _val) {
         inputAttacks.add(_attack);
         inputValues.add(_val);
diff --git a/src/main/java/ui/atd/ATDAttack.java b/src/main/java/ui/atd/ATDAttack.java
index 4815e58ca9..4e2350d709 100644
--- a/src/main/java/ui/atd/ATDAttack.java
+++ b/src/main/java/ui/atd/ATDAttack.java
@@ -455,6 +455,8 @@ CanBeDisabled*/ {
         return isRootAttack;
     }
 
+    public void setIsRootAttack(boolean bool) { isRootAttack = bool; }
+
     public void wasUnswallowed() {
         setFather(null);
         TDiagramPanel tdp = getTDiagramPanel();
diff --git a/src/main/java/ui/atd/AttackTreeDiagramPanel.java b/src/main/java/ui/atd/AttackTreeDiagramPanel.java
index e7bdd1d97d..cbfe3ac9b6 100644
--- a/src/main/java/ui/atd/AttackTreeDiagramPanel.java
+++ b/src/main/java/ui/atd/AttackTreeDiagramPanel.java
@@ -203,6 +203,13 @@ public class AttackTreeDiagramPanel extends TDiagramPanel implements TDPWithAttr
         // We draw the attack
         ATDAttack attack = new ATDAttack(_x, _y, getMinX(), getMaxX(), getMinY(), getMaxY(), true, null, this);
         attack.setValue(_att.getName());
+        attack.setIsRootAttack(_att.isRoot());
+
+        String attackDesc = _att.getDescription();
+        if (!attackDesc.isEmpty()) {
+            attack.setDescription(attackDesc);
+        }
+
         addBuiltComponent(attack);
         _mapOfComponents.put(_att, attack);
 
@@ -246,7 +253,11 @@ public class AttackTreeDiagramPanel extends TDiagramPanel implements TDPWithAttr
         // We create the ATDConstraint
         _y = _y + 70;
         ATDConstraint constraint = new ATDConstraint(_x, _y, getMinX(), getMaxX(), getMinY(), getMaxY(), true, null, this);
-        constraint.setValue(nextNode.getName());
+
+        String contraintType = "<<" + nextNode.getType() + ">>";
+        constraint.setValue(contraintType);
+
+
         addBuiltComponent(constraint);
         _mapOfComponents.put(nextNode, constraint);
 
-- 
GitLab