From a772ae3eba87a271b24f1e344f957d266915ebcb Mon Sep 17 00:00:00 2001 From: hneemann Date: Wed, 24 Jul 2019 13:06:53 +0200 Subject: [PATCH] When a new fsm transition is created, the last condition is preset. --- src/main/java/de/neemann/digital/fsm/gui/FSMComponent.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/neemann/digital/fsm/gui/FSMComponent.java b/src/main/java/de/neemann/digital/fsm/gui/FSMComponent.java index 138c67029..a48bbcf1f 100644 --- a/src/main/java/de/neemann/digital/fsm/gui/FSMComponent.java +++ b/src/main/java/de/neemann/digital/fsm/gui/FSMComponent.java @@ -50,6 +50,7 @@ public class FSMComponent extends JComponent { private Vector lastMousePos; private State newTransitionFromState; private Vector newTransitionStartPos; + private String lastCondition = ""; /** * Creates a new component @@ -102,7 +103,7 @@ public class FSMComponent extends JComponent { if (newTransitionStartPos.sub(posVector).len() > MIN_NEW_TRANS_DIST) { Movable target = fsm.getMovable(posVector); if (target instanceof State) - fsm.add(new Transition(newTransitionFromState, (State) target, "")); + fsm.add(new Transition(newTransitionFromState, (State) target, lastCondition)); } newTransitionFromState = null; repaint(); @@ -235,7 +236,8 @@ public class FSMComponent extends JComponent { point, attr, KEY_CONDITION, KEY_VALUES); ElementAttributes newAttr = ad.showDialog(); if (newAttr != null) { - transition.setCondition(newAttr.get(KEY_CONDITION)); + lastCondition = newAttr.get(KEY_CONDITION); + transition.setCondition(lastCondition); transition.setValues(newAttr.get(KEY_VALUES)); repaint(); }