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