From ccd82ce7b349d0fddcdd2e81b0f1d34bc39d646a Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Wed, 4 Apr 2018 17:52:35 +0200 Subject: [PATCH] =?UTF-8?q?=20#77=20sections=20param=C3=A9tr=C3=A9es=20:?= =?UTF-8?q?=20utilisation=20de=20SectionParametree.CalcSerie()=20(de=20jal?= =?UTF-8?q?hyd)=20pour=20le=20cas=20"aucun=20param=C3=A8tre=20=C3=A0=20var?= =?UTF-8?q?ier"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../section-results.component.html | 9 +- .../section-results.component.ts | 42 +++++++--- .../form-compute-section-parametree.ts | 83 ++----------------- .../definition/form-result-section.ts | 4 - src/app/results/section-results.ts | 18 ++-- 5 files changed, 48 insertions(+), 108 deletions(-) diff --git a/src/app/components/section-results/section-results.component.html b/src/app/components/section-results/section-results.component.html index 77d384f65..e9a103d4e 100644 --- a/src/app/components/section-results/section-results.component.html +++ b/src/app/components/section-results/section-results.component.html @@ -9,13 +9,10 @@ <!-- tableau de valeurs --> <div class="row"> <div class="col mx-auto"> - <table style="width: 100%"> - <tr *ngFor="let r of sectionResults; let i=index" [class]="getResultClass(i)"> - <td class="result_label">{{r.label}}</td> - <td horizontal-result-element [result-element]=r.value class="result_value"> - </td> + <table style="width: 100%" cellpadding="15"> + <tr vertical-result-element [result-element]=resultElement> </tr> </table> </div> </div> -</div> \ No newline at end of file +</div> diff --git a/src/app/components/section-results/section-results.component.ts b/src/app/components/section-results/section-results.component.ts index ea6daaae4..0656b917a 100644 --- a/src/app/components/section-results/section-results.component.ts +++ b/src/app/components/section-results/section-results.component.ts @@ -1,11 +1,12 @@ import { Component, ViewChild, DoCheck } from '@angular/core'; -import { acSection, Result } from 'jalhyd'; +import { acSection, Result, ResultElement } from 'jalhyd'; import { SectionCanvasComponent } from '../section-canvas/section-canvas.component'; import { SectionResults } from '../../results/section-results'; import { ApplicationSetupService } from '../../services/app-setup/app-setup.service'; import { CalculatorResults } from '../../results/calculator-results'; +import { InternationalisationService } from '../../services/internationalisation/internationalisation.service'; @Component({ selector: 'section-results', @@ -37,7 +38,12 @@ export class SectionResultsComponent implements DoCheck { */ private _results: SectionResults; - constructor(private appSetupService: ApplicationSetupService) { } + /** + * ResultElement mis en forme (symboles des variables traduits) + */ + private _resultElement: ResultElement; + + constructor(private appSetupService: ApplicationSetupService, private intlService: InternationalisationService) { } private static labelColors: { [key: string]: any; } = { "Hs": { r: 255, g: 0, b: 0 }, @@ -55,6 +61,8 @@ export class SectionResultsComponent implements DoCheck { private _sectionCanvas: SectionCanvasComponent; public set results(rs: CalculatorResults[]) { + this._resultElement = undefined; + this._results = undefined; if (rs != undefined) for (const r of rs) { @@ -82,18 +90,30 @@ export class SectionResultsComponent implements DoCheck { this._doUpdate = !this.updateResults(); } + private isSectionLevel(s: string) { + for (const k in SectionResultsComponent.labelColors) + if (k === s) + return true; + return false; + } + private updateResults() { - if (this._results != undefined && this._sectionCanvas != undefined) { + if (this._results && this._sectionCanvas) { const nDigits = this.appSetupService.displayDigits; - for (let r of this._results.results) { - const v: Result = r["value"]; - const l = r["label"]; + this._resultElement = new ResultElement(); - const drawLabel = r["drawLabel"]; - if (drawLabel != undefined && v.vCalc != undefined) - this._sectionCanvas.addLevel(v.vCalc, drawLabel + " = " + v.vCalc.toFixed(nDigits), SectionResultsComponent.labelColors[drawLabel]); + // traduction des symboles des variables calculées + for (const k in this._results.result.extraResults) { + const k2 = "INFO_GRANDEUR_" + k.toUpperCase(); + const lbl = this.intlService.localizeText(k2); + const er = this._results.result.getExtraResult(k); + this._resultElement.addExtraResult(lbl, er); + + if (this.isSectionLevel(k)) + this._sectionCanvas.addLevel(er, k + " = " + er.toFixed(nDigits), SectionResultsComponent.labelColors[k]); } + this._sectionCanvas.section = this._results.section; return true; } @@ -104,8 +124,8 @@ export class SectionResultsComponent implements DoCheck { return this._results != undefined && this._results.hasResults; } - private get sectionResults() { - return this._results.results; + private get resultElement() { + return this._resultElement; } private getResultClass(i: number) { diff --git a/src/app/formulaire/definition/form-compute-section-parametree.ts b/src/app/formulaire/definition/form-compute-section-parametree.ts index 3a05fe434..864d8b6e4 100644 --- a/src/app/formulaire/definition/form-compute-section-parametree.ts +++ b/src/app/formulaire/definition/form-compute-section-parametree.ts @@ -96,84 +96,15 @@ export class FormComputeSectionParametree extends FormCompute { return; } - var np: [ComputeNode, ParamsEquation] = this.getNubAndParameters(); - - let sect: acSection = np[0] as acSection; - let prms: ParamsEquation = np[1]; + const sectNub: SectionParametree = this.getCurrentNub() as SectionParametree; + const sect: acSection = sectNub.section; this._sectionResults.section = sect; - let computePrec: number = this._formBase.getParameterValue("Pr"); // précision de calcul - let nDigits = -Math.log10(computePrec); - - let Y = prms.map.Y.v; // tirant d'eau original (doit être fourni à acSection.Calc() sous peine d'être modifié par les appels successifs car c'est en même temps un paramètre et une variable temporaire) - - // charge spécifique - let Hs = sect.Calc("Hs", Y); - this._formSectionResult.addSectionFixedResult(Hs.resultElement, this.intlService.localizeText("INFO_GRANDEUR_HS"), "Hs"); - - // charge critique - let Hsc = sect.Calc("Hsc", Y); - this._formSectionResult.addSectionFixedResult(Hsc.resultElement, this.intlService.localizeText("INFO_GRANDEUR_HSC"), "Hsc"); - - // largeur au miroir - let B = sect.Calc("B", Y); - this._formSectionResult.addSectionFixedResult(B.resultElement, this.intlService.localizeText("INFO_GRANDEUR_B")); - - // périmètre hydraulique - let P = sect.Calc("P", Y); - this._formSectionResult.addSectionFixedResult(P.resultElement, this.intlService.localizeText("INFO_GRANDEUR_P")); - - // surface hydraulique - let S = sect.Calc("S", Y); - this._formSectionResult.addSectionFixedResult(S.resultElement, this.intlService.localizeText("INFO_GRANDEUR_S")); - - // rayon hydraulique - let R = sect.Calc("R", Y); - this._formSectionResult.addSectionFixedResult(R.resultElement, this.intlService.localizeText("INFO_GRANDEUR_R")); - - // vitesse moyenne - let V = sect.Calc("V", Y); - this._formSectionResult.addSectionFixedResult(V.resultElement, this.intlService.localizeText("INFO_GRANDEUR_V")); - - // nombre de Froude - let Fr = sect.Calc("Fr", Y); - this._formSectionResult.addSectionFixedResult(Fr.resultElement, this.intlService.localizeText("INFO_GRANDEUR_FR"), ); - - // tirant d'eau critique - let Yc = sect.Calc("Yc", Y); - this._formSectionResult.addSectionFixedResult(Yc.resultElement, this.intlService.localizeText("INFO_GRANDEUR_YC"), "Yc"); - - // tirant d'eau normal - let Yn = sect.Calc("Yn", Y); - this._formSectionResult.addSectionFixedResult(Yn.resultElement, this.intlService.localizeText("INFO_GRANDEUR_YN"), "Yn"); - - // tirant d'eau fluvial - let Yf = sect.Calc("Yf", Y); - this._formSectionResult.addSectionFixedResult(Yf.resultElement, this.intlService.localizeText("INFO_GRANDEUR_YF"), "Yf"); - - // tirant d'eau torrentiel - let Yt = sect.Calc("Yt", Y); - this._formSectionResult.addSectionFixedResult(Yt.resultElement, this.intlService.localizeText("INFO_GRANDEUR_YT"), "Yt"); - - // tirant d'eau conjugué - let Yco = sect.Calc("Yco", Y); - this._formSectionResult.addSectionFixedResult(Yco.resultElement, this.intlService.localizeText("INFO_GRANDEUR_YCO"), "Yco"); - - // perte de charge - let J = sect.Calc("J", Y); - this._formSectionResult.addSectionFixedResult(J.resultElement, this.intlService.localizeText("INFO_GRANDEUR_J")); - - // Variation linéaire de l'énergie spécifique - let IJ = sect.Calc("I-J", Y); - this._formSectionResult.addSectionFixedResult(IJ.resultElement, this.intlService.localizeText("INFO_GRANDEUR_I-J")); - - // impulsion hydraulique - let Imp = sect.Calc("Imp", Y); - this._formSectionResult.addSectionFixedResult(Imp.resultElement, this.intlService.localizeText("INFO_GRANDEUR_IMP")); - - // contrainte de cisaillement - let Tau0 = sect.Calc("Tau0", Y); - this._formSectionResult.addSectionFixedResult(Tau0.resultElement, this.intlService.localizeText("INFO_GRANDEUR_TAU0")); + const computePrec: number = this._formBase.getParameterValue("Pr"); // précision de calcul + this._sectionResults.result = sectNub.CalcSerie(computePrec, + undefined, // valeur initiale, non utilisée dans ce cas + undefined // variable à calculer, non utilisée + ); } } diff --git a/src/app/formulaire/definition/form-result-section.ts b/src/app/formulaire/definition/form-result-section.ts index 674299437..14f07562c 100644 --- a/src/app/formulaire/definition/form-result-section.ts +++ b/src/app/formulaire/definition/form-result-section.ts @@ -51,10 +51,6 @@ export class FormResultSection extends FormResult { this._sectionResults.reset(); } - public addSectionFixedResult(val: ResultElement, label: string, drawLabel: string = undefined) { - this._sectionResults.addResult(val, label, drawLabel); - } - public addSectionFixedParameters(displaySymbol: boolean) { for (let p of this._formBase.getDisplayedParamListFromState(ParamRadioConfig.FIX)) if (p.symbol !== "Pr") diff --git a/src/app/results/section-results.ts b/src/app/results/section-results.ts index 680b5b40c..8e3d3b88d 100644 --- a/src/app/results/section-results.ts +++ b/src/app/results/section-results.ts @@ -4,7 +4,7 @@ import { CalculatorResults } from "./calculator-results"; import { NgParameter } from "../formulaire/ngparam"; export class SectionResults extends CalculatorResults { - private _results: Object[]; + private _result: Result; private _section: acSection; @@ -15,19 +15,15 @@ export class SectionResults extends CalculatorResults { public reset() { this._section = undefined; - this._results = []; + this._result = undefined; } - public addResult(v: ResultElement, l: string, drawLabel: string) { - this._results.push({ - "label": l, - "value": v, - "drawLabel": drawLabel - }); + public get result(): Result { + return this._result; } - public get results() { - return this._results; + public set result(r: Result) { + this._result = r; } public get section() { @@ -39,6 +35,6 @@ export class SectionResults extends CalculatorResults { } public get hasResults(): boolean { - return this._section != undefined && this._results.length > 0; + return this._section != undefined && this._result != undefined; } } -- GitLab