From b58209b30de8b2e0dc136bf712d71b224ccf0fdc Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 22 Jan 2019 11:58:39 +0100
Subject: [PATCH] =?UTF-8?q?Nouveaux=20UID=20de=20param=C3=A8tres:=20compat?=
 =?UTF-8?q?ibilit=C3=A9=20avec=20nghyd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/param/param-definition.ts | 12 ++++++++----
 src/value_ref/object_ref.ts   |  4 +++-
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/param/param-definition.ts b/src/param/param-definition.ts
index 3db288f4..07786d7b 100644
--- a/src/param/param-definition.ts
+++ b/src/param/param-definition.ts
@@ -64,6 +64,13 @@ export class ParamDefinition implements INubReference, INamedIterableValues, IOb
         this.checkValue(val);
     }
 
+    /**
+     * set parent a-posteriori; used by nghyd when populating forms
+     */
+    set parent(parent: ParamsEquation | JalhydObject) {
+        this._parent = parent;
+    }
+
     /**
      * identifiant unique de la forme
      *   (uid du JalhydObject (en général un Nub) + "_" + symbole du paramètre)
@@ -77,12 +84,9 @@ export class ParamDefinition implements INubReference, INamedIterableValues, IOb
             // uid du ComputeNode utilisant le ParamsEquation
             parentUid = String(this._parent.nubUid);
         } else {
-            // @TODO generate ?
-            // parentUid = "ORPHAN";
-            console.log("DIE", this._parent, this);
             throw new Error("ParamDefinition.uid : parameter has no parent !");
         }
-        return parentUid + "::" + this._symbol;
+        return parentUid + "_" + this._symbol;
     }
 
     get symbol(): string {
diff --git a/src/value_ref/object_ref.ts b/src/value_ref/object_ref.ts
index 678f48fb..baba13fb 100644
--- a/src/value_ref/object_ref.ts
+++ b/src/value_ref/object_ref.ts
@@ -154,7 +154,9 @@ export class NubReference implements INubReference {
             return undefined;
         }
         const rpv = this._referencedNub.getReferencedParamValues(this._refDefinition);
-        rpv._nubRef = this;
+        if (rpv) {
+            rpv._nubRef = this;
+        }
         return rpv;
     }
 
-- 
GitLab