From f67b87896f6d809e9c2d2642acbbd8049de2a204 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Thu, 15 Feb 2018 09:57:27 +0100
Subject: [PATCH] classe Observable : suppression du setter sender()

---
 src/app/formulaire/ngparam.ts |  3 +--
 src/app/services/observer.ts  | 15 +++++----------
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/src/app/formulaire/ngparam.ts b/src/app/formulaire/ngparam.ts
index dd7fb6554..7556284a4 100644
--- a/src/app/formulaire/ngparam.ts
+++ b/src/app/formulaire/ngparam.ts
@@ -81,7 +81,6 @@ export class NgParameter extends InputField implements IObservable {
     constructor(private _paramDef: ParamDefinition, formId: number) {
         super(_paramDef.computeNodeType, _paramDef.symbol, formId);
         this._observable = new Observable();
-        this._observable.sender = this;
     }
 
     get symbol(): string {
@@ -305,6 +304,6 @@ export class NgParameter extends InputField implements IObservable {
      * notifie un événement aux observateurs
      */
     public notifyObservers(data: any) {
-        this._observable.notifyObservers(data);
+        this._observable.notifyObservers(data, this);
     }
 }
diff --git a/src/app/services/observer.ts b/src/app/services/observer.ts
index d80be8110..e33135c05 100644
--- a/src/app/services/observer.ts
+++ b/src/app/services/observer.ts
@@ -16,21 +16,14 @@ export interface IObservable {
     /**
      * notifie un événement aux observateurs
      */
-    notifyObservers(data: any);
+    notifyObservers(data: any, sender?: any);
 }
 
 export class Observable implements IObservable {
     private _observers: Observer[];
 
-    private _sender: IObservable;
-
     constructor() {
         this._observers = [];
-        this._sender = this;
-    }
-
-    public set sender(s: IObservable) {
-        this._sender = s;
     }
 
     /**
@@ -51,8 +44,10 @@ export class Observable implements IObservable {
     /**
      * notifie un événement aux observateurs
      */
-    public notifyObservers(data: any) {
+    public notifyObservers(data: any, sender?: any) {
+        if (sender == undefined)
+            sender = this;
         for (let o of this._observers)
-            o.update(this._sender, data);
+            o.update(sender, data);
     }
 }
-- 
GitLab