From 9b429283ce1f089100f8d694ee15a2b6c1a8f98e Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Wed, 29 May 2024 17:24:54 +0200
Subject: [PATCH] Bug on avatardraw from cli: solved

---
 src/main/java/cli/Action.java      |  5 +++++
 src/main/java/cli/Interpreter.java | 15 +++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/src/main/java/cli/Action.java b/src/main/java/cli/Action.java
index ef740c7e2d..d37db6524f 100644
--- a/src/main/java/cli/Action.java
+++ b/src/main/java/cli/Action.java
@@ -1604,6 +1604,11 @@ public class Action extends Command implements ProVerifOutputListener {
                     return Interpreter.TTOOL_NOT_STARTED;
                 }
 
+                if (!interpreter.hasAModel()) {
+                    return Interpreter.TTOOL_NO_MODEL;
+                }
+
+                
                 AvatarSpecification spec = as;
                 if (spec == null) {
                     spec = interpreter.mgui.gtm.getAvatarSpecification();
diff --git a/src/main/java/cli/Interpreter.java b/src/main/java/cli/Interpreter.java
index 15dfe228df..d47aca788e 100644
--- a/src/main/java/cli/Interpreter.java
+++ b/src/main/java/cli/Interpreter.java
@@ -44,6 +44,7 @@ import myutil.Terminal;
 import myutil.TerminalProviderInterface;
 import myutil.TraceManager;
 import ui.MainGUI;
+import ui.TGUIAction;
 
 import java.util.HashMap;
 import java.util.Scanner;
@@ -70,6 +71,7 @@ public class Interpreter implements Runnable, TerminalProviderInterface {
     public final static String BAD_VAR_NAME = "Invalid variable name";
     public final static String UNKNOWN_NEXT_COMMAND = "Invalid action: ";
     public final static String TTOOL_NOT_STARTED = "TTool is not yet started. Cannot execute command.";
+    public final static String TTOOL_NO_MODEL = "TTool is started no model has been created. Execute new or load a model";
     public final static String TTOOL_ALREADY_STARTED = "TTool is already started. Cannot execute command.";
     public final static String BAD_COMMAND_NAME = "The provided command is invalid";
     public final static String ROBOT_EXCEPTION = "Robot could not be started";
@@ -317,6 +319,19 @@ public class Interpreter implements Runnable, TerminalProviderInterface {
         return ttoolStarted;
     }
 
+    public boolean hasAModel() {
+        if (!isTToolStarted()) {
+            return false;
+        }
+
+        if (mgui == null) {
+            return false;
+        }
+
+        return mgui.actions[TGUIAction.ACT_SAVE_AS_MODEL].isEnabled();
+
+    }
+
     public void setTToolStarted(boolean b) {
         ttoolStarted = b;
     }
-- 
GitLab