diff --git a/src/main/java/avatartranslator/AvatarRandom.java b/src/main/java/avatartranslator/AvatarRandom.java index 581ccc0ffed668b8fb9640661fba3b76509da8f8..fdd3f463e64f7d3ca776226bdf703b3147b2a637 100644 --- a/src/main/java/avatartranslator/AvatarRandom.java +++ b/src/main/java/avatartranslator/AvatarRandom.java @@ -52,6 +52,9 @@ public class AvatarRandom extends AvatarStateMachineElement { protected String minValue; protected String maxValue; + protected String originalMinValue; + protected String originalMaxValue; + public final static int RANDOM_UNIFORM_LAW = 0; public final static int RANDOM_TRIANGULAR_LAW = 1; @@ -85,6 +88,19 @@ public class AvatarRandom extends AvatarStateMachineElement { return maxValue; } + public String getOriginalMinValue() { + return originalMinValue; + } + + public String getOriginalMaxValue() { + return originalMaxValue; + } + + public void setOriginalValues(String _min, String _max) { + originalMinValue = _min; + originalMaxValue = _max; + } + public int getFunctionId() { return functionId; } diff --git a/src/main/java/avatartranslator/AvatarSetTimer.java b/src/main/java/avatartranslator/AvatarSetTimer.java index 4b59f161600e9c6252bdb343fa10abb95649aa9d..d940b0f586c24874355d60148ef203529e1b2613 100644 --- a/src/main/java/avatartranslator/AvatarSetTimer.java +++ b/src/main/java/avatartranslator/AvatarSetTimer.java @@ -49,7 +49,8 @@ package avatartranslator; */ public class AvatarSetTimer extends AvatarTimerOperator { protected String setValue; - + protected String originalSetValue; + public AvatarSetTimer(String _name, Object _referenceObject, AvatarStateMachineOwner _block) { super(_name, _referenceObject, _block); @@ -62,6 +63,14 @@ public class AvatarSetTimer extends AvatarTimerOperator { public String getTimerValue() { return setValue; } + + public void setTimerOriginalValue(String _setValue) { + originalSetValue = _setValue; + } + + public String getTimerOriginalValue() { + return originalSetValue; + } public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) { AvatarSetTimer ast = new AvatarSetTimer(getName(), getReferenceObject(), _block); diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index 0976871065bdb09f50f6ef9532b4df9fbda4eec4..7fce6e230811dd8a8e24f46fcfb59430815c18cb 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -2093,6 +2093,8 @@ public class AvatarDesignPanelTranslator { final AvatarRandom arandom = (AvatarRandom) element; + arandom.setOriginalValues(asmdrand.getMinValue(), asmdrand.getMaxValue()); + String tmp1 = modifyString(asmdrand.getMinValue()); int error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp1); @@ -2158,6 +2160,7 @@ public class AvatarDesignPanelTranslator { final AvatarSetTimer asettimer = (AvatarSetTimer) element; asettimer.setTimer(aa); asettimer.setTimerValue(tmp); + asettimer.setTimerOriginalValue(asmdst.getTimerValue()); } else { element = new AvatarDummyState(name, asmdst, _ab); } diff --git a/src/main/java/ui/AvatarPanelDrawer.java b/src/main/java/ui/AvatarPanelDrawer.java index e282249bd2780e04a3c762abd7e1895e194eab63..176e17608ae15e2f23c5fc272de97d495c44c4fa 100644 --- a/src/main/java/ui/AvatarPanelDrawer.java +++ b/src/main/java/ui/AvatarPanelDrawer.java @@ -174,15 +174,22 @@ public class AvatarPanelDrawer { //} abd.addComponent(bl, father.getX() + blockIncMap.get(ab.getFather()), father.getY() + 10, false, true); int size = 100; - if (blockSizeMap.containsKey(ab)) { - size = 100 * blockSizeMap.get(ab) + 50; + if ((ab.getReferenceObject() != null) && (ab.getReferenceObject() instanceof CDElement)) { + CDElement cd = (CDElement) ab.getReferenceObject(); + bl.setUserResize(cd.getX(), cd.getY(), cd.getWidth(), cd.getHeight()); + } else { + + if (blockSizeMap.containsKey(ab)) { + size = 100 * blockSizeMap.get(ab) + 50; + } + bl.resize(size, 100 + (maxLevel - level) * 50); } - bl.resize(size, 100 + (maxLevel - level) * 50); drawBlockProperties(avspec, ab, bl, useOriginalValuesFirst); abd.attach(bl); AvatarSMDPanel smp = adp.getAvatarSMDPanel(bl.getValue()); buildStateMachine(ab, bl, smp, useOriginalValuesFirst); blockMap.put(bl.getValue().split("__")[bl.getValue().split("__").length - 1], bl); + size = bl.getWidth(); blockIncMap.put(ab.getFather(), blockIncMap.get(ab.getFather()) + size + 10); } } @@ -586,7 +593,7 @@ public class AvatarPanelDrawer { for (int i = 0; i < t.getOtherReferenceObjects().size(); i++) { Object o = t.getOtherReferenceObjects().get(i); if (o instanceof AvatarSMDTransitionInfo) { - TraceManager.addDev(" ----- Position transition x y width height"); + //TraceManager.addDev(" ----- Position transition x y width height"); AvatarSMDTransitionInfo tInfo = (AvatarSMDTransitionInfo) o; SMDCon.getAvatarSMDTransitionInfo().setMoveCd(tInfo.getX(), tInfo.getY(), true); SMDCon.getAvatarSMDTransitionInfo().resize(tInfo.getWidth(), tInfo.getHeight()); @@ -648,9 +655,18 @@ public class AvatarPanelDrawer { } if (asme instanceof AvatarRandom) { AvatarSMDRandom smdr = new AvatarSMDRandom(newX, newY, smp.getMinX(), smp.getMaxX(), smp.getMinY(), smp.getMaxY(), false, null, smp); - smdr.setVariable(((AvatarRandom) asme).getVariable()); - smdr.setMinValue(((AvatarRandom) asme).getMinValue()); - smdr.setMaxValue(((AvatarRandom) asme).getMaxValue()); + AvatarRandom ar = (AvatarRandom) asme; + smdr.setVariable(ar.getVariable()); + if (useOriginalValuesFirst && (ar.getOriginalMinValue() != null) && (ar.getOriginalMinValue().length() > 0)) { + smdr.setMinValue(ar.getOriginalMinValue()); + } else { + smdr.setMinValue(ar.getMinValue()); + } + if (useOriginalValuesFirst && (ar.getOriginalMaxValue() != null) && (ar.getOriginalMaxValue().length() > 0)) { + smdr.setMaxValue(ar.getOriginalMaxValue()); + } else { + smdr.setMaxValue(ar.getMaxValue()); + } smp.addComponent(smdr, newX, newY, false, true); if (tgc != null) smdr.resize(width, height); tgcomp = smdr; @@ -778,7 +794,13 @@ public class AvatarPanelDrawer { AvatarSMDSetTimer timerSet = new AvatarSMDSetTimer(newX, newY, smp.getMinX(), smp.getMaxX(), smp.getMinY(), smp.getMaxY(), false, null, smp); AvatarSetTimer ast = (AvatarSetTimer) asme; - timerSet.setComplexValue(ast.getTimer().getName(), ast.getTimerValue()); + String timerValue = ast.getTimerValue(); + if (useOriginalValuesFirst) { + if ((ast.getTimerOriginalValue() != null) && (ast.getTimerOriginalValue().length() > 0)) { + timerValue = ast.getTimerOriginalValue(); + } + } + timerSet.setComplexValue(ast.getTimer().getName(), timerValue); tgcomp = timerSet; SMDMap.put(asme, timerSet); smp.addComponent(timerSet, newX, newY, false, true);