From 6a179b4fdda355212ee04595eb9d64c9d1e50318 Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Fri, 29 Sep 2023 17:32:12 +0200 Subject: [PATCH] Resolving bug on drawing request with arguments from TML textual spec --- src/main/java/ui/DrawerTMLModeling.java | 29 +++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/ui/DrawerTMLModeling.java b/src/main/java/ui/DrawerTMLModeling.java index fe46188887..31a5ec64d4 100644 --- a/src/main/java/ui/DrawerTMLModeling.java +++ b/src/main/java/ui/DrawerTMLModeling.java @@ -479,8 +479,10 @@ public class DrawerTMLModeling { TGComponent newOne = createGUIComponentFromTMLComponent(nextTML, firstGUI, comp, activityPanel); if (newOne != null) { // Add component to panel, and then connect it to the previous component if possible - activityPanel.addBuiltComponent(newOne); - connectComponents(firstGUI, newOne, activityPanel); + if (newOne != firstGUI) { + activityPanel.addBuiltComponent(newOne); + connectComponents(firstGUI, newOne, activityPanel); + } drawRecursiveBehaviour(t, activity, nextTML, comp, newOne, activityPanel); } } @@ -493,6 +495,29 @@ public class DrawerTMLModeling { //TraceManager.addDev("Current first elt:" + elt); if (elt instanceof TMLActionState) { + + String action = ((TMLActionState)elt).getAction(); + + if (action.contains("__req")) { + // Reading arguments? + int index = action.indexOf("="); + if (index > -1) { + String var = action.substring(0, index).trim(); + if (var.length() > 0) { + TMLADReadRequestArg readReq; + if (firstGUI instanceof TMLADReadRequestArg) { + readReq = ((TMLADReadRequestArg)firstGUI); + } else { + readReq = new TMLADReadRequestArg(firstGUI.getX(), firstGUI.getY()+getYDep(), activityPanel.getMinX(), + activityPanel.getMaxX(), activityPanel.getMinY(), activityPanel.getMaxY(), true, null, activityPanel); + } + readReq.setParam(readReq.realNbOfParams(), var); + readReq.makeValue(); + return readReq; + } + } + } + TMLADActionState actionState = new TMLADActionState(firstGUI.getX(), firstGUI.getY()+getYDep(), activityPanel.getMinX(), activityPanel.getMaxX(), activityPanel.getMinY(), activityPanel.getMaxY(), true, null, activityPanel); actionState.setValue( ((TMLActionState)elt).getAction()); -- GitLab