From db6c649f90aeee2876998a778c3466943ccf63db Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Thu, 16 Jul 2020 14:14:38 +0200 Subject: [PATCH] PreBarrage: enhance Cloison results --- .../fixed-results.component.ts | 34 ++++++++++++------- .../pb-cloison-results.component.ts | 7 ++++ src/app/results/prebarrage-results.ts | 2 +- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/app/components/fixedvar-results/fixed-results.component.ts b/src/app/components/fixedvar-results/fixed-results.component.ts index f369c26d6..d1cfd454e 100644 --- a/src/app/components/fixedvar-results/fixed-results.component.ts +++ b/src/app/components/fixedvar-results/fixed-results.component.ts @@ -7,7 +7,7 @@ import { ResultsComponentDirective } from "./results.component"; import { AppComponent } from "../../app.component"; import { NgParameter } from "../../formulaire/elements/ngparam"; -import { capitalize } from "jalhyd"; +import { capitalize, Result, ResultElement } from "jalhyd"; import { sprintf } from "sprintf-js"; @@ -114,17 +114,17 @@ export class FixedResultsComponent extends ResultsComponentDirective { if ( res && res.resultElements.length > 0 - && res.resultElement - && res.resultElement.count() > 0 + && this.getResultElement(res) + && this.getResultElement(res).count() > 0 ) { const sn = this._fixedResults.result.sourceNub; let found = false; // 2.1 all results - for (const k of res.resultElement.keys) { + for (const k of this.getResultElement(res).keys) { if (k === symbol) { found = true; - const er: number = res.resultElement.getValue(k); + const er: number = this.getResultElement(res).getValue(k); // calculator type for translation let ct = sn.calcType; if (sn.parent) { @@ -152,9 +152,9 @@ export class FixedResultsComponent extends ResultsComponentDirective { if (! found) { for (const c of sn.getChildren()) { if (c.result) { - for (const k of c.result.resultElement.keys) { + for (const k of this.getResultElement(c.result).keys) { if (k === symbol) { - const er: number = c.result.resultElement.getValue(k); + const er: number = this.getResultElement(c.result).getValue(k); // calculator type for translation let ct = sn.calcType; if (sn.parent) { @@ -209,14 +209,14 @@ export class FixedResultsComponent extends ResultsComponentDirective { if ( res && res.resultElements.length > 0 - && res.resultElement - && res.resultElement.count() > 0 + && this.getResultElement(res) + && this.getResultElement(res).count() > 0 ) { const sn = this._fixedResults.result.sourceNub; // 2.1 all results - for (const k of res.resultElement.keys) { - const er: number = res.resultElement.getValue(k); + for (const k of this.getResultElement(res).keys) { + const er: number = this.getResultElement(res).getValue(k); // calculator type for translation let ct = sn.calcType; if (sn.parent) { @@ -242,8 +242,8 @@ export class FixedResultsComponent extends ResultsComponentDirective { // 2.2. children results for (const c of sn.getChildren()) { if (c.result) { - for (const k of c.result.resultElement.keys) { - const er: number = c.result.resultElement.getValue(k); + for (const k of this.getResultElement(c.result).keys) { + const er: number = this.getResultElement(c.result).getValue(k); // calculator type for translation let ct = sn.calcType; if (sn.parent) { @@ -274,6 +274,14 @@ export class FixedResultsComponent extends ResultsComponentDirective { return this.formattedValue(fp); } + /** + * Retourne l'élément de résultat en cours pour le résultat donné; + * redéfini dans PbCloisonResultsComponent notamment + */ + protected getResultElement(r: Result): ResultElement { + return r.resultElement; + } + public exportAsSpreadsheet() { AppComponent.exportAsSpreadsheet(this.table.nativeElement, true); } diff --git a/src/app/components/pb-results/pb-cloison-results.component.ts b/src/app/components/pb-results/pb-cloison-results.component.ts index 404680865..0d2fe30cc 100644 --- a/src/app/components/pb-results/pb-cloison-results.component.ts +++ b/src/app/components/pb-results/pb-cloison-results.component.ts @@ -5,6 +5,8 @@ import { NgParameter } from "../../formulaire/elements/ngparam"; import { getIthValue } from "../../util"; import { PbCloisonResults } from "../../results/pb-cloison-results"; +import { Result, ResultElement } from "jalhyd"; + @Component({ selector: "pb-cloison-results", templateUrl: "../fixedvar-results/fixed-results.component.html", @@ -32,4 +34,9 @@ export class PbCloisonResultsComponent extends FixedResultsComponent { } return val; } + + /** Retourne l'élément de résultat en cours, en fonction de l'index variable */ + protected getResultElement(r: Result): ResultElement { + return r.resultElements[this.results.variableIndex]; + } } diff --git a/src/app/results/prebarrage-results.ts b/src/app/results/prebarrage-results.ts index 301b8248c..36ad3f189 100644 --- a/src/app/results/prebarrage-results.ts +++ b/src/app/results/prebarrage-results.ts @@ -19,7 +19,7 @@ export class PrebarrageResults extends MultiDimensionResults { public size: number; /** Stores appropriate number suffix for a given wall uid (copied from PbSchema) */ - public wallsSuffixes: { [key: string]: number }; + public wallsSuffixes: { [key: string]: number } = {}; public constructor() { super(); -- GitLab