From 26656c58c4083a26fef79b0e99e1141a3c907a50 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Fri, 13 Apr 2018 10:25:39 +0200
Subject: [PATCH] =?UTF-8?q?=20#46=20classe=20ParamValues=20:=20setter=20si?=
 =?UTF-8?q?ngleValue=20modifi=C3=A9=20pour=20avoir=20la=20possibilit=C3=A9?=
 =?UTF-8?q?=20de=20mettre=20=C3=A0=20jour=20de=20mani=C3=A8re=20optionnell?=
 =?UTF-8?q?e=20le=20mode=20de=20g=C3=A9n=C3=A9ration=20des=20valeurs=20(n?=
 =?UTF-8?q?=C3=A9cessaire=20pour=20CalcSerie())?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/dichotomie.ts                   |  2 +-
 src/nub.ts                          |  2 +-
 src/param/param-base.ts             |  6 +++---
 src/param/param-values.ts           | 23 ++++++++++++-----------
 src/structure/parallel_structure.ts |  2 +-
 5 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/dichotomie.ts b/src/dichotomie.ts
index 568fdc97..62876caf 100644
--- a/src/dichotomie.ts
+++ b/src/dichotomie.ts
@@ -147,7 +147,7 @@ export class Dichotomie extends Debug {
     }
 
     private set vX(vCalc: number) {
-        this._paramX.v = vCalc;
+        this._paramX.setValue(vCalc, false);
     }
 
     /**
diff --git a/src/nub.ts b/src/nub.ts
index 4decb596..67e8a9c3 100644
--- a/src/nub.ts
+++ b/src/nub.ts
@@ -55,7 +55,7 @@ export abstract class Nub extends ComputeNode {
             return this._result;
         }
         const sAnalyticalPrm: string = this.getFirstAnalyticalParameter().symbol;
-        computedVar.v = resSolve.vCalc;
+        computedVar.setValue(resSolve.vCalc, false);
         const res: Result = this.Equation(sAnalyticalPrm);
         res.vCalc = resSolve.vCalc;
         this._result = res;
diff --git a/src/param/param-base.ts b/src/param/param-base.ts
index b5ee3c26..ada74c3f 100644
--- a/src/param/param-base.ts
+++ b/src/param/param-base.ts
@@ -31,7 +31,7 @@ export class BaseParam extends JalhydObject {
         this._symbol = symb;
 
         this._paramValues = new ParamValues();
-        this._paramValues.singleValue = val;
+        this._paramValues.setSingleValue(val);
 
         if (d instanceof ParamDomain) {
             this._domain = d;
@@ -76,9 +76,9 @@ export class BaseParam extends JalhydObject {
         return this._paramValues.singleValue;
     }
 
-    public setValue(val: number) {
+    public setValue(val: number, updateValueMode = true) {
         this.checkValue(val);
-        this._paramValues.singleValue = val;
+        this._paramValues.setSingleValue(val, updateValueMode);
 
         //        console.log("setting param " + this._symbol + " id=" + this._id + " to " + val); // A VIRER
     }
diff --git a/src/param/param-values.ts b/src/param/param-values.ts
index 62d132ba..c8302327 100644
--- a/src/param/param-values.ts
+++ b/src/param/param-values.ts
@@ -211,23 +211,23 @@ export class ParamValues {
 
     constructor() {
         this._singleValue = new DefinedNumber();
-        this.valueMode = ParamValueMode.CALCUL;
+        this._valueMode = ParamValueMode.CALCUL;
     }
 
     public setValues(o: number | any, max?: number, step?: number) {
         if (typeof (o) === "number") {
             if (max == undefined) {
-                this.valueMode = ParamValueMode.SINGLE;
+                this._valueMode = ParamValueMode.SINGLE;
                 this._singleValue.value = o as number;
             } else {
-                this.valueMode = ParamValueMode.MINMAX;
+                this._valueMode = ParamValueMode.MINMAX;
                 this._minValue = o as number;
                 this._maxValue = max;
                 this._stepValue = step;
             }
         }
         else if (Array.isArray(o)) {
-            this.valueMode = ParamValueMode.LISTE;
+            this._valueMode = ParamValueMode.LISTE;
             this._valueList = o;
         }
         else
@@ -286,9 +286,10 @@ export class ParamValues {
         return this._singleValue.uncheckedValue;
     }
 
-    public set singleValue(v: number) {
+    public setSingleValue(v: number, updateValueMode = true) {
         this._singleValue.value = v;
-        this.valueMode = ParamValueMode.SINGLE;
+        if (updateValueMode)
+            this._valueMode = ParamValueMode.SINGLE;
     }
 
     public get isDefined() {
@@ -301,7 +302,7 @@ export class ParamValues {
 
     public set min(v: number) {
         this._minValue = v;
-        this.valueMode = ParamValueMode.MINMAX;
+        this._valueMode = ParamValueMode.MINMAX;
     }
 
     public get max() {
@@ -310,7 +311,7 @@ export class ParamValues {
 
     public set max(v: number) {
         this._maxValue = v;
-        this.valueMode = ParamValueMode.MINMAX;
+        this._valueMode = ParamValueMode.MINMAX;
     }
 
     public get stepRefValue(): Pair {
@@ -325,7 +326,7 @@ export class ParamValues {
 
     public set step(v: number) {
         this._stepValue = v;
-        this.valueMode = ParamValueMode.MINMAX;
+        this._valueMode = ParamValueMode.MINMAX;
     }
 
     public get valueList() {
@@ -335,7 +336,7 @@ export class ParamValues {
 
     public set valueList(l: number[]) {
         this._valueList = l;
-        this.valueMode = ParamValueMode.LISTE;
+        this._valueMode = ParamValueMode.LISTE;
     }
 
     /**
@@ -383,7 +384,7 @@ export class ParamValues {
      * copie des membres
      */
     public copyMembers(n: ParamValues) {
-        n._valueMode = this.valueMode;
+        n._valueMode = this._valueMode;
         n._singleValue = new DefinedNumber(this._singleValue.value);
         n._minValue = this._minValue;
         n._maxValue = this._maxValue;
diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts
index b9117695..b946c985 100644
--- a/src/structure/parallel_structure.ts
+++ b/src/structure/parallel_structure.ts
@@ -189,7 +189,7 @@ export class ParallelStructure extends Nub {
      */
     private CalcStructPrm(sVC: IStructureVarCalc, rInit?: number, rPrec: number = 0.001): Result {
         // Le débit restant sur la structure en calcul est :
-        this.structures[sVC.index].prms.Q.v = this.prms.Q.v - this.CalcQ(sVC.index).vCalc;
+        this.structures[sVC.index].prms.Q.setValue(this.prms.Q.v - this.CalcQ(sVC.index).vCalc, false);
 
         // Calcul du paramètre de la structure en calcul
         return this.structures[sVC.index].Calc(sVC.prm, rInit, rPrec);
-- 
GitLab