Skip to content
Snippets Groups Projects
Commit 16b7c633 authored by francois.grand's avatar francois.grand
Browse files

#77 fichier de config des calculettes : ajout d'un champ "enum" ou "value" aux entrées des selects

- classe SelectEntry : le rôle tenu avant par le membre _value est tenu par _id
parent dabdf5d1
No related branches found
No related tags found
1 merge request!15Resolve "faire les modifications nécessaires prendre en compte le ticket cassiopee/jalhyd#46 (Gestion de la session dans la lib)"
......@@ -35,10 +35,12 @@
"type": "select",
"select": [
{
"id": "select_ouvrage_vanne_rect"
"id": "select_ouvrage_vanne_rect",
"enum": "StructureType.VanneRectangulaire"
},
{
"id": "select_ouvrage_seuil_rect"
"id": "select_ouvrage_seuil_rect",
"enum": "StructureType.SeuilRectangulaire"
}
]
},
......@@ -47,19 +49,24 @@
"type": "select",
"select": [
{
"id": "select_loidebit1_cem88d"
"id": "select_loidebit1_cem88d",
"enum": "LoiDebit.Cem88d"
},
{
"id": "select_loidebit1_cem88v"
"id": "select_loidebit1_cem88v",
"enum": "LoiDebit.Cem88v"
},
{
"id": "select_loidebit1_seuildenoye"
"id": "select_loidebit1_seuildenoye",
"enum": "LoiDebit.WeirFree"
},
{
"id": "select_loidebit1_cunge80"
"id": "select_loidebit1_cunge80",
"enum": "LoiDebit.Cunge80"
},
{
"id": "select_loidebit1_kivi"
"id": "select_loidebit1_kivi",
"enum": "LoiDebit.KIVI"
}
],
"dep_exist": [
......@@ -74,19 +81,24 @@
"type": "select",
"select": [
{
"id": "select_loidebit2_cem88v"
"id": "select_loidebit2_cem88v",
"enum": "LoiDebit.Cem88v"
},
{
"id": "select_loidebit2_cem88d"
"id": "select_loidebit2_cem88d",
"enum": "LoiDebit.Cem88d"
},
{
"id": "select_loidebit2_vannedenoye"
"id": "select_loidebit2_vannedenoye",
"enum": "LoiDebit.OrificeFree"
},
{
"id": "select_loidebit2_vannenoye"
"id": "select_loidebit2_vannenoye",
"enum": "LoiDebit.OrificeSubmerged"
},
{
"id": "select_loidebit2_cunge80"
"id": "select_loidebit2_cunge80",
"enum": "LoiDebit.Cunge80"
}
],
"dep_exist": [
......
......@@ -8,16 +8,20 @@
"type": "select",
"select": [
{
"id": "select_section_trapez"
"id": "select_section_trapez",
"enum": "ComputeNodeType.SectionTrapeze"
},
{
"id": "select_section_rect"
"id": "select_section_rect",
"enum": "ComputeNodeType.SectionRectangle"
},
{
"id": "select_section_circ"
"id": "select_section_circ",
"enum": "ComputeNodeType.SectionCercle"
},
{
"id": "select_section_puiss"
"id": "select_section_puiss",
"enum": "ComputeNodeType.SectionPuissance"
}
]
}
......@@ -212,55 +216,72 @@
"type": "select",
"select": [
{
"id": "select_target_Hs"
"id": "select_target_Hs",
"value": "Hs"
},
{
"id": "select_target_Hsc"
"id": "select_target_Hsc",
"value": "Hsc"
},
{
"id": "select_target_B"
"id": "select_target_B",
"value": "B"
},
{
"id": "select_target_P"
"id": "select_target_P",
"value": "P"
},
{
"id": "select_target_S"
"id": "select_target_S",
"value": "S"
},
{
"id": "select_target_R"
"id": "select_target_R",
"value": "R"
},
{
"id": "select_target_V"
"id": "select_target_V",
"value": "V"
},
{
"id": "select_target_Fr"
"id": "select_target_Fr",
"value": "Fr"
},
{
"id": "select_target_Yc"
"id": "select_target_Yc",
"value": "Yc"
},
{
"id": "select_target_Yn"
"id": "select_target_Yn",
"value": "Yn"
},
{
"id": "select_target_Yf"
"id": "select_target_Yf",
"value": "Yf"
},
{
"id": "select_target_Yt"
"id": "select_target_Yt",
"value": "Yt"
},
{
"id": "select_target_Yco"
"id": "select_target_Yco",
"value": "Yco"
},
{
"id": "select_target_J"
"id": "select_target_J",
"value": "J"
},
{
"id": "select_target_I-J"
"id": "select_target_I-J",
"value": "I-J"
},
{
"id": "select_target_Imp"
"id": "select_target_Imp",
"value": "Imp"
},
{
"id": "select_target_Tau0"
"id": "select_target_Tau0",
"value": "Tau0"
}
]
}
......
......@@ -54,23 +54,7 @@ export class FormDefSection implements Observer {
}
private getNodeTypeFromSelectField(): ComputeNodeType {
const sect = this._formBase.getSelectedValue(this._sectionSelectFieldId);
switch (sect) {
case "trapez":
return ComputeNodeType.SectionTrapeze;
case "rect":
return ComputeNodeType.SectionRectangle;
case "circ":
return ComputeNodeType.SectionCercle;
case "puiss":
return ComputeNodeType.SectionPuissance;
default:
throw new Error(`getComputeNodeTypeFromSection() : section ${sect} non pris en charge`);
}
return this._formBase.getSelectedValue(this._sectionSelectFieldId);
}
public initParse() {
......
......@@ -265,10 +265,9 @@ export abstract class FormulaireDefinition extends FormulaireNode {
* @param selectFieldId id du SelectField
* @returns valeur courante du select sans le préfixe
*/
public getSelectedValue(selectFieldId: string): string {
public getSelectedValue(selectFieldId: string): any {
let select: SelectField = <SelectField>this.getFieldById(selectFieldId);
let value: string = select.getValue().value;
return FormulaireElement.removePrefix(value, selectFieldId + "_");
return select.getValue().value;
}
/**
......
export class SelectEntry {
private _value: string;
/**
* id dans le fichier de config
*/
private _id: string;
/**
* valeur associée à l'entrée
*/
private _value: any;
/**
* texte affiché pour cette entrée
*/
public label: string;
constructor(v: string, l: string) {
this._value = v;
this.label = l;
constructor(id: string, val: any, lbl?: string) {
this._id = id;
this._value = val;
this.label = lbl;
}
get id(): string {
return this._id;
}
get value(): string {
get value(): any {
return this._value;
}
}
import { StructureType, LoiDebit, ComputeNodeType } from "jalhyd";
import { Field } from "./field";
import { SelectEntry } from "./select-entry";
import { Dependency } from "./dependency/dependency";
......@@ -26,6 +28,13 @@ export class SelectField extends Field {
this._selectedEntry = e;
}
public getSelectedEntryFromValue(val: any): SelectEntry {
for (const se of this._entries)
if (se.value === val)
return se;
return undefined;
}
public getValue() {
return this._selectedEntry;
}
......@@ -54,7 +63,7 @@ export class SelectField extends Field {
switch (d.masterCondition.type) {
case DependencyConditionType.HasValue:
let mc: ValueDependencyCondition = <ValueDependencyCondition>d.masterCondition;
return this._selectedEntry.value === mc.value;
return this._selectedEntry.id === mc.value;
default:
throw "SelectField.verifyDependency() : type de condition '" + DependencyConditionType[d.masterCondition.type] + "' non pris en charge";
......@@ -65,7 +74,7 @@ export class SelectField extends Field {
super.updateLocalisation(loc);
for (let e of this._entries) {
e.label = loc[e.value];
e.label = loc[e.id];
}
}
......@@ -89,7 +98,28 @@ export class SelectField extends Field {
this._confId = field["id"];
const values = field["select"];
for (const v of values) {
const e: SelectEntry = new SelectEntry(v["id"], undefined);
let val;
if (v.enum) {
const tmp = v.enum.split(".");
switch (tmp[0]) {
case "ComputeNodeType":
val = ComputeNodeType[tmp[1]];
break;
case "StructureType":
val = StructureType[tmp[1]];
break;
case "LoiDebit":
val = LoiDebit[tmp[1]];
break;
}
}
else if (v.value)
val = v.value;
const id = v["id"];
const e: SelectEntry = new SelectEntry(id, val);
this.addEntry(e);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment