From b823e1a4a7ff5a728ec236f36be3c264ea52b5a6 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Fri, 20 Apr 2018 11:25:54 +0200
Subject: [PATCH] =?UTF-8?q?=20#77=20classes=20relatives=20au=20pattern=20o?=
 =?UTF-8?q?bservateur/observ=C3=A9=20d=C3=A9plac=C3=A9es=20dans=20la=20lib?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/app/app.component.ts                      |  3 +-
 .../app-setup/app-setup.component.ts          |  3 +-
 .../base-param-input.component.ts             |  3 +-
 .../calculator.component.ts                   |  3 +-
 .../ngparam-input/ngparam-input.component.ts  |  3 +-
 .../results-graph/graph-type.component.ts     |  3 +-
 .../results-graph/results-graph.component.ts  |  3 +-
 .../concrete/form-lechapt-calmon.ts           |  3 +-
 .../formulaire/definition/form-def-section.ts |  4 +-
 src/app/formulaire/fieldset.ts                |  3 +-
 src/app/formulaire/formulaire-node.ts         |  4 +-
 src/app/formulaire/select-field.ts            |  1 -
 src/app/services/error/error.service.ts       |  3 +-
 .../services/formulaire/formulaire.service.ts |  3 +-
 .../internationalisation.service.ts           |  3 +-
 src/app/services/observer.ts                  | 53 -------------------
 16 files changed, 20 insertions(+), 78 deletions(-)
 delete mode 100644 src/app/services/observer.ts

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 4df3529cb..938ba9907 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -2,9 +2,10 @@ import { Component, ApplicationRef, OnInit, OnDestroy } from '@angular/core';
 //import { MdDialog } from '@angular/material';
 import { Router } from '@angular/router';
 
+import { Observer } from "jalhyd";
+
 import { environment } from '../environments/environment';
 import { InternationalisationService, Language, LanguageCode } from './services/internationalisation/internationalisation.service';
-import { Observer } from './services/observer';
 import { ErrorService } from './services/error/error.service';
 // import { AlertDialog } from './components/alert-dialog/alert-dialog.component';
 import { FormulaireService } from './services/formulaire/formulaire.service';
diff --git a/src/app/components/app-setup/app-setup.component.ts b/src/app/components/app-setup/app-setup.component.ts
index 0c267b4ec..b8a07cf7c 100644
--- a/src/app/components/app-setup/app-setup.component.ts
+++ b/src/app/components/app-setup/app-setup.component.ts
@@ -1,11 +1,10 @@
 import { Component, ViewChild } from "@angular/core";
 
-import { BaseParam, ParamDomainValue } from "jalhyd";
+import { BaseParam, ParamDomainValue, Observer } from "jalhyd";
 
 import { ApplicationSetupService } from '../../services/app-setup/app-setup.service';
 import { InternationalisationService, Language, LanguageCode } from '../../services/internationalisation/internationalisation.service';
 import { NgBaseParam, BaseParamInputComponent } from "../base-param-input/base-param-input.component";
-import { Observer } from "../../services/observer";
 import { BaseComponent } from "../base/base.component";
 
 @Component({
diff --git a/src/app/components/base-param-input/base-param-input.component.ts b/src/app/components/base-param-input/base-param-input.component.ts
index f37d01bbb..bb60d971a 100644
--- a/src/app/components/base-param-input/base-param-input.component.ts
+++ b/src/app/components/base-param-input/base-param-input.component.ts
@@ -3,10 +3,9 @@
 import { Component, Input, forwardRef, OnInit, DoCheck, ChangeDetectorRef } from "@angular/core";
 import { ControlValueAccessor, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormControl } from "@angular/forms";
 
-import { BaseParam, NumericalString, Message, ParamDomain, ParamDomainValue } from "jalhyd";
+import { BaseParam, NumericalString, Message, ParamDomain, ParamDomainValue, Observable } from "jalhyd";
 
 import { InternationalisationService, LanguageCode } from "../../services/internationalisation/internationalisation.service";
-import { Observable } from "../../services/observer";
 import { GenericInputComponent } from "../generic-input/generic-input.component";
 
 export class NgBaseParam extends Observable {
diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts
index 340afd5ae..60d4ea1b4 100644
--- a/src/app/components/generic-calculator/calculator.component.ts
+++ b/src/app/components/generic-calculator/calculator.component.ts
@@ -1,12 +1,13 @@
 import { Component, OnInit, DoCheck, OnDestroy, ViewChild, ViewChildren, QueryList } from "@angular/core";
 import { ActivatedRoute } from '@angular/router';
 
+import { Observer } from "jalhyd";
+
 import { FormulaireService } from "../../services/formulaire/formulaire.service";
 import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
 import { FieldSet } from "../../formulaire/fieldset";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { CalculatorResultsComponent } from "../../components/calculator-results/calculator-results.component";
-import { Observer } from "../../services/observer";
 import { Subscription } from "rxjs/Subscription";
 import { FieldSetComponent } from "../field-set/field-set.component";
 import { BaseComponent } from "../base/base.component";
diff --git a/src/app/components/ngparam-input/ngparam-input.component.ts b/src/app/components/ngparam-input/ngparam-input.component.ts
index 10e33c675..abce24cdf 100644
--- a/src/app/components/ngparam-input/ngparam-input.component.ts
+++ b/src/app/components/ngparam-input/ngparam-input.component.ts
@@ -3,12 +3,11 @@
 import { Component, Input, forwardRef, OnInit, DoCheck, ChangeDetectorRef } from "@angular/core";
 import { ControlValueAccessor, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormControl } from "@angular/forms";
 
-import { NumericalString, Message } from "jalhyd";
+import { NumericalString, Message, Observer } from "jalhyd";
 
 import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
 import { NgParameter } from "../../formulaire/ngparam";
 import { GenericInputComponent } from "../generic-input/generic-input.component";
-import { Observer } from "../../services/observer";
 
 @Component({
     selector: "ngparam-input",
diff --git a/src/app/components/results-graph/graph-type.component.ts b/src/app/components/results-graph/graph-type.component.ts
index e3b3c0333..1dcece55e 100644
--- a/src/app/components/results-graph/graph-type.component.ts
+++ b/src/app/components/results-graph/graph-type.component.ts
@@ -1,8 +1,9 @@
 import { Component } from '@angular/core';
 
+import { Observable, IObservable, Observer } from "jalhyd";
+
 import { GenericSelectComponent } from '../generic-select/generic-select.component';
 import { GraphType } from "../../results/var-results";
-import { Observable, IObservable, Observer } from '../../services/observer';
 
 @Component({
     selector: "graph-type",
diff --git a/src/app/components/results-graph/results-graph.component.ts b/src/app/components/results-graph/results-graph.component.ts
index 1d47ecfbc..9744b769f 100644
--- a/src/app/components/results-graph/results-graph.component.ts
+++ b/src/app/components/results-graph/results-graph.component.ts
@@ -1,8 +1,9 @@
 import { Component, ViewChild, AfterContentInit } from '@angular/core';
 
+import { Observer } from "jalhyd";
+
 import { VarResults, GraphType } from "../../results/var-results";
 import { GraphTypeSelectComponent } from './graph-type.component';
-import { Observer } from '../../services/observer';
 
 @Component({
     selector: 'results-graph',
diff --git a/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts b/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts
index 692684181..3e2af2552 100644
--- a/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts
+++ b/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts
@@ -1,4 +1,4 @@
-import { CalculatorType, ComputeNodeType } from "jalhyd";
+import { CalculatorType, ComputeNodeType, Observer } from "jalhyd";
 
 import { FormResultFixedVar } from "../form-result-fixedvar";
 import { FormDefFixedVar } from "../form-def-fixedvar";
@@ -6,7 +6,6 @@ import { FormComputeLechaptCalmon } from "../form-compute-lechapt-calmon";
 import { FormulaireDefinition } from "../form-definition";
 import { CalculatorResults } from "../../../results/calculator-results";
 import { FormDefParamToCalculate } from "../form-def-paramcalc";
-import { Observer } from "../../../services/observer";
 import { SelectField } from "../../select-field";
 
 export class FormulaireLechaptCalmon extends FormulaireDefinition implements Observer {
diff --git a/src/app/formulaire/definition/form-def-section.ts b/src/app/formulaire/definition/form-def-section.ts
index b5a845f0e..519e1f482 100644
--- a/src/app/formulaire/definition/form-def-section.ts
+++ b/src/app/formulaire/definition/form-def-section.ts
@@ -1,11 +1,11 @@
 import {
     ComputeNodeType, ParamsSectionTrapez, cSnTrapez, ParamsSectionRectang, cSnRectang,
-    ParamsSectionCirc, cSnCirc, ParamsSectionPuiss, cSnPuiss, acSection, ParamsEquation
+    ParamsSectionCirc, cSnCirc, ParamsSectionPuiss, cSnPuiss, acSection, ParamsEquation,
+    Observer
 } from "jalhyd";
 
 import { SelectField } from "../select-field";
 import { Field } from "../field";
-import { IObservable, Observer } from "../../services/observer";
 import { NgParameter, ParamRadioConfig } from "../ngparam";
 import { FormulaireDefinition } from "./form-definition";
 import { FieldSet } from "../fieldset";
diff --git a/src/app/formulaire/fieldset.ts b/src/app/formulaire/fieldset.ts
index 60885ad86..76a23bd47 100644
--- a/src/app/formulaire/fieldset.ts
+++ b/src/app/formulaire/fieldset.ts
@@ -1,4 +1,4 @@
-import { CalculatorType, ComputeNodeType, ParamDefinition, LoiDebit, StructureType, Props, SessionNub, StructureProperties } from "jalhyd";
+import { CalculatorType, ComputeNodeType, ParamDefinition, LoiDebit, StructureType, Props, SessionNub, StructureProperties, Observer } from "jalhyd";
 
 import { FormulaireElement } from "./formulaire-element";
 import { Dependency } from "./dependency/dependency";
@@ -10,7 +10,6 @@ import { NgParameter, ParamRadioConfig } from "./ngparam";
 import { ServiceFactory } from "../services/service-factory";
 import { ParamService } from "../services/param/param.service";
 import { FormulaireDefinition } from "./definition/form-definition";
-import { Observer } from "../services/observer";
 import { StringMap } from "../stringmap";
 import { FieldsetContainer } from "./fieldset-container";
 import { FormulaireNode } from "./formulaire-node";
diff --git a/src/app/formulaire/formulaire-node.ts b/src/app/formulaire/formulaire-node.ts
index 7957b5e04..b323f214b 100644
--- a/src/app/formulaire/formulaire-node.ts
+++ b/src/app/formulaire/formulaire-node.ts
@@ -1,6 +1,4 @@
-import { JalhydObject } from "jalhyd"
-
-import { IObservable, Observer, Observable } from "../services/observer";
+import { JalhydObject, IObservable, Observer, Observable } from "jalhyd"
 
 /**
  * représentation sous forme d'arbre du formulaire et de ses éléments
diff --git a/src/app/formulaire/select-field.ts b/src/app/formulaire/select-field.ts
index cf136910a..f6e4bfb7d 100644
--- a/src/app/formulaire/select-field.ts
+++ b/src/app/formulaire/select-field.ts
@@ -6,7 +6,6 @@ import { Dependency } from "./dependency/dependency";
 import { DependencyConditionType } from "./dependency/dependency-condition";
 import { ValueDependencyCondition } from "./dependency/value-dependency-condition";
 import { StringMap } from "../stringmap";
-import { IObservable, Observable, Observer } from "../services/observer";
 import { FormulaireNode } from "./formulaire-node";
 
 export class SelectField extends Field {
diff --git a/src/app/services/error/error.service.ts b/src/app/services/error/error.service.ts
index 2625cc74f..128ce234f 100644
--- a/src/app/services/error/error.service.ts
+++ b/src/app/services/error/error.service.ts
@@ -1,5 +1,6 @@
 import { Injectable } from '@angular/core';
-import { Observable } from '../observer';
+
+import { Observable } from "jalhyd";
 
 @Injectable()
 export class ErrorService extends Observable {
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire/formulaire.service.ts
index 2aac9462e..3283971c4 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire/formulaire.service.ts
@@ -4,7 +4,7 @@ import { Observable as rxObservable } from "rxjs/Observable";
 import "rxjs/add/operator/toPromise";
 import { decode } from "he";
 
-import { CalculatorType, EnumEx } from "jalhyd";
+import { CalculatorType, EnumEx, Observable } from "jalhyd";
 
 import { ServiceFactory } from "../service-factory";
 import { HttpService } from "../../services/http/http.service";
@@ -15,7 +15,6 @@ import { InputField } from "../../formulaire/input-field";
 import { SelectField } from "../../formulaire/select-field";
 import { CheckField } from "../../formulaire/check-field";
 import { StringMap } from "../../stringmap";
-import { Observable } from "../observer";
 import { FormulaireConduiteDistributrice } from "../../formulaire/definition/concrete/form-cond-distri";
 import { FormulaireLechaptCalmon } from "../../formulaire/definition/concrete/form-lechapt-calmon";
 import { FormulaireSectionParametree } from "../../formulaire/definition/concrete/form-section-parametree";
diff --git a/src/app/services/internationalisation/internationalisation.service.ts b/src/app/services/internationalisation/internationalisation.service.ts
index 28edb2f14..4b91abba1 100644
--- a/src/app/services/internationalisation/internationalisation.service.ts
+++ b/src/app/services/internationalisation/internationalisation.service.ts
@@ -1,10 +1,9 @@
 import { Injectable } from '@angular/core';
 import { Response } from '@angular/http';
 
-import { Message, MessageCode } from "jalhyd";
+import { Message, MessageCode, Observable } from "jalhyd";
 
 import { HttpService } from "../http/http.service";
-import { Observable } from "../observer";
 import { StringMap } from "../../stringmap";
 
 /*
diff --git a/src/app/services/observer.ts b/src/app/services/observer.ts
deleted file mode 100644
index b7ecdb17c..000000000
--- a/src/app/services/observer.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-export interface Observer {
-    update(sender: any, data: any): void;
-}
-
-export interface IObservable {
-    /**
-     * ajoute un observateur à la liste
-     */
-    addObserver(o: Observer);
-
-    /**
-     * supprime un observateur de la liste
-     */
-    removeObserver(o: Observer);
-
-    /**
-     * notifie un événement aux observateurs
-     */
-    notifyObservers(data: any, sender?: any);
-}
-
-export class Observable implements IObservable {
-    private _observers: Observer[];
-
-    constructor() {
-        this._observers = [];
-    }
-
-    /**
-     * ajoute un observateur à la liste
-     */
-    public addObserver(o: Observer) {
-        if (this._observers.indexOf(o) == -1)
-            this._observers.push(o);
-    }
-
-    /**
-     * supprime un observateur de la liste
-     */
-    public removeObserver(o: Observer) {
-        this._observers = this._observers.filter(a => a !== o);
-    }
-
-    /**
-     * notifie un événement aux observateurs
-     */
-    public notifyObservers(data: any, sender?: any) {
-        if (sender == undefined)
-            sender = this;
-        for (let o of this._observers)
-            o.update(sender, data);
-    }
-}
-- 
GitLab