Newer
Older
import { CalculatorResults } from "./calculator-results";
import { CalculatedParamResults } from "./param-calc-results";
import { NgParameter } from "../formulaire/ngparam";
import { ResultElement } from "jalhyd";
import { ServiceFactory } from "../services/service-factory";
/**
* type de graphe
*/
export enum GraphType {
/**
* histogramme
*/
Histogram,
/**
* points indépendants reliés par une courbe
*/
HistoLine,
/**
* graphe XY classique
*/
Scatter,
}
export class VarResults extends CalculatedParamResults {
/**
* paramètre varié
*/
private _variatedParam: NgParameter;
/**
* titre de la 1ère colonne des résultats variés
*/
private _variableParamHeader: string;
/**
* clés des résultats complémentaires
private _extraResultKeys: string[];
/**
* entête des colonnes des résultats supplémentaires
*/
private _extraResultHeaders: string[];
/**
* titre du graphe des résultats variés
*/
private _graphTitle: string;
/**
* type de graphe
*/
public graphType: GraphType = GraphType.Scatter;
/**
* tableau des ordonnées du graphe des résultats variés
*/
private _yValues: number[] = [];
constructor() {
super();
this.reset();
}
public reset() {
super.reset();
this._variableParamHeader = undefined;
this._extraResultHeaders = [];
this._extraResultKeys = [];
this._yValues = [];
this._graphTitle = undefined;
}
public get variatedParameter(): NgParameter {
return this._variatedParam;
}
public set variatedParameter(p: NgParameter) {
this._variatedParam = p;
this._variableParamHeader = CalculatorResults.paramLabel(this._variatedParam, true);
public get variableParamHeader() {
return this._variableParamHeader;
}
public get yValues() {
return this._yValues;
}
public get resultElements(): ResultElement[] {
return this._result.resultElements;
}
public get graphTitle() {
return this._graphTitle;
}
public set graphTitle(t: string) {
this._graphTitle = t;
}
public get extraResultHeaders() {
return this._extraResultHeaders;
}
public get extraResultKeys() {
return this._extraResultKeys;
}
public set extraResultKeys(k: string[]) {
this._extraResultKeys = k;
}
public update(displaySymbol: boolean) {
if (this._variableParamHeader === undefined)
this._variableParamHeader = CalculatorResults.paramLabel(this.variatedParameter, displaySymbol);
// valeurs du paramètre à calculer
for (const r of this._result.resultElements)
this._yValues.push(r.vCalc);
// clés des résultats supplémentaires
if (this._extraResultKeys.length === 0)
for (const re of this._result.resultElements) // re:ResultElement
for (const erk in re.extraResults)
if (!this._extraResultKeys.includes(erk))
this._extraResultKeys.push(erk);
// entêtes des résultats supplémentaires
const intlService = ServiceFactory.instance.internationalisationService;
for (const k of this._extraResultKeys)
this._extraResultHeaders.push(intlService.getExtraResLabel(k));