From edaa63bc121ae7e7f70a804e6548741b56ca1231 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 1 Mar 2019 09:39:12 +0100
Subject: [PATCH] =?UTF-8?q?D=C3=A9s=C3=A9rialisation=20:=20emp=C3=AAche=20?=
 =?UTF-8?q?le=20param=C3=A8tre=20calcul=C3=A9=20par=20d=C3=A9faut=20de=20s?=
 =?UTF-8?q?e=20remettre=20en=20mode=20calcul?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../definition/concrete/form-base.ts          |  6 -----
 .../concrete/form-parallel-structures.ts      |  4 ----
 .../concrete/form-regime-uniforme.ts          |  4 ----
 .../definition/form-def-paramcalc.ts          | 24 ++++++++++++-------
 .../formulaire/definition/form-definition.ts  |  5 ----
 5 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/src/app/formulaire/definition/concrete/form-base.ts b/src/app/formulaire/definition/concrete/form-base.ts
index ca294f0b2..6b28a0a2f 100644
--- a/src/app/formulaire/definition/concrete/form-base.ts
+++ b/src/app/formulaire/definition/concrete/form-base.ts
@@ -7,8 +7,6 @@ import { FormComputeFixedVar } from "../form-compute-fixedvar";
 
 export class FormulaireBase extends FormulaireDefinition {
 
-    private _formFixedVar: FormDefFixedVar;
-
     private _formParamCalc: FormDefParamToCalculate;
 
     private _formCompute: FormComputeFixedVar;
@@ -23,10 +21,6 @@ export class FormulaireBase extends FormulaireDefinition {
         this._formCompute = new FormComputeFixedVar(this, this._formResult);
     }
 
-    protected initParse() {
-        this._formParamCalc.initParse();
-    }
-
     protected completeParse(json: {}) {
         this._formParamCalc.parseOptions(json);
     }
diff --git a/src/app/formulaire/definition/concrete/form-parallel-structures.ts b/src/app/formulaire/definition/concrete/form-parallel-structures.ts
index c4a773fce..1e5703f50 100644
--- a/src/app/formulaire/definition/concrete/form-parallel-structures.ts
+++ b/src/app/formulaire/definition/concrete/form-parallel-structures.ts
@@ -125,10 +125,6 @@ export class FormulaireParallelStructure extends FormulaireDefinition {
         }
     }
 
-    protected initParse() {
-        this._formParamCalc.initParse();
-    }
-
     protected parseOptions(json: {}) {
         super.parseOptions(json);
 
diff --git a/src/app/formulaire/definition/concrete/form-regime-uniforme.ts b/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
index 63ed5d5a8..dd4de57d4 100644
--- a/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
+++ b/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
@@ -28,10 +28,6 @@ export class FormulaireRegimeUniforme extends FormulaireDefinition implements Ob
         this._formCompute = new FormComputeFixedVar(this, this._formResult);
     }
 
-    protected initParse() {
-        this._formParamCalc.initParse();
-    }
-
     protected parseOptions(json: {}) {
         super.parseOptions(json);
         this._formSection.parseOptions(json);
diff --git a/src/app/formulaire/definition/form-def-paramcalc.ts b/src/app/formulaire/definition/form-def-paramcalc.ts
index b31c93a14..c78cbc8e7 100644
--- a/src/app/formulaire/definition/form-def-paramcalc.ts
+++ b/src/app/formulaire/definition/form-def-paramcalc.ts
@@ -1,9 +1,8 @@
 import { ParamValueMode } from "jalhyd";
 
-import { ParamRadioConfig, NgParameter } from "../ngparam";
+import { NgParameter } from "../ngparam";
 import { FormulaireDefinition } from "./form-definition";
 import { FormDefFixedVar } from "./form-def-fixedvar";
-import { NgParamInputComponent } from "../../components/ngparam-input/ngparam-input.component";
 
 /**
  * gestion des formulaires avec "paramètre à calculer" (conduite distributrice, Lechapt-Calmon, régime uniforme, passes à bassin)
@@ -18,18 +17,16 @@ export class FormDefParamToCalculate extends FormDefFixedVar {
         super(base);
     }
 
-    public initParse() {
-        this._defaultCalculatedParam = undefined;
-    }
-
     public parseOptions(json: {}) {
+        this._defaultCalculatedParam = undefined;
+        // browse config file to find "options" chapter
         for (const k in json) {
             const o = json[k];
             if (o.type === "options") {
                 // id du paramètre à calculer par défaut
-
                 this._defaultCalculatedParam = o["idCal"];
-                if (this._defaultCalculatedParam !== undefined) {
+                // this._formBase
+                if (this._defaultCalculatedParam && ! this.findCalculatedParam()) {
                     const p = this.setDefault();
                     p.isDefault = true;
                 }
@@ -37,6 +34,17 @@ export class FormDefParamToCalculate extends FormDefFixedVar {
         }
     }
 
+    /**
+     * Find the parameter that is set to CALC mode
+     */
+    private findCalculatedParam() {
+        for (const p of this._formBase.currentNub.parameterIterator) {
+            if (p.valueMode === ParamValueMode.CALCUL) {
+                return p;
+            }
+        }
+    }
+
     /**
      * met le paramètre par défaut à CAL sauf si c'est "except"
      * @param except paramètre à ne pas remettre à CAL
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index c683185d7..c78215b08 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -122,9 +122,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
         Session.getInstance().deleteNub(sn);
     }
 
-    protected initParse() {
-    }
-
     protected parseOptions(json: {}) {
         const dnt = json["defaultNodeType"];
         this._props["nodeType"] = dnt === undefined ? ComputeNodeType.None : ComputeNodeType[dnt];
@@ -214,8 +211,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
     public preparseConfig(json: {}) {
         this._jsonConfig = json;
 
-        this.initParse();
-
         // analyse des options globales
         // il est utile de le faire avant le reste pour les modules de calcul utilisant
         // des sections (id des selects type de section/variable à calculer)
-- 
GitLab