Skip to content
Snippets Groups Projects
Commit d2cfdf5f authored by mathias.chouet's avatar mathias.chouet
Browse files

L'UID d'un FormulaireDefinition est maintenat l'UID de son Nub courant

parent a2223451
No related branches found
No related tags found
1 merge request!36Resolve "Déplacer la (dé)dérialisation dans JalHyd"
......@@ -51,6 +51,16 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
this._paramService = ServiceFactory.instance.paramService;
}
// surcharge de FormulaireNode::get:uid()
// l'UID d'un formulaire est l'UID de son Nub !
public get uid() {
if (this._currentNub) {
return this._currentNub.uid;
} else {
throw new Error("Aucun Nub associé au formulaire !");
}
}
public get calculatorType(): CalculatorType {
const props = this._currentNub === undefined ? this.defaultProperties : (this._currentNub.properties as Props).props;
return props["calcType"];
......@@ -81,8 +91,8 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
return this._props;
}
public initNub(props?: {}) {
this._currentNub = this.createNub(props === undefined ? this.defaultProperties : props);
public initNub(props?: Props) {
this._currentNub = this.createNub(props === undefined ? new Props(this.defaultProperties) : props);
}
public get currentNub(): Nub {
......@@ -99,9 +109,9 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
this._currentNub = n;
}
protected createNub(params: Props | {}): Nub {
const props = params instanceof Props ? params : new Props(params);
return this._paramService.createNub(props);
protected createNub(p: Props): Nub {
console.log("FormDefinition - createNub", p);
return this._paramService.createNub(p);
}
protected replaceCurrentNub(params: Props) {
......@@ -164,6 +174,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
private parse_fieldset(json: {}) {
const fs = this.createFieldset(this, json);
fs.parseConfig(json);
console.log(".FormDefinition: parse_fieldset " + fs.id + " >> afterParseFieldset");
this.afterParseFieldset(fs);
}
......@@ -454,19 +465,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
return new TopFormulaireElementIterator(this);
}
/**
* sérialisation en JSON
*/
public JSONserialise(): {} {
const res = {};
res["id"] = this.calculatorName;
res["uid"] = this.uid;
res["props"] = (this._currentNub.properties as Props).props;
res["elements"] = this.serialiseKids();
return { "form": res };
}
private deserialiseFieldset(elements: {}): FieldSet {
/* private deserialiseFieldset(elements: {}): FieldSet {
const res: FieldSet = this.getFormulaireNodeById(elements["id"]) as FieldSet;
res.deserialiseJSON(elements);
return res;
......@@ -498,9 +497,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
}
}
/**
* désérialisation depuis JSON
*/
public deserialiseJSON(elements: {}) {
// tslint:disable-next-line:forin
for (const k in elements) {
......@@ -523,7 +519,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
throw new Error(`session file : invalid key '${k}' in form object`);
}
}
}
} */
/**
* MAJ des liens entre paramètres lors de la désérialisation JSON
......@@ -548,6 +544,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
* @param uidMap table de correspondance uid dans le fichier de conf <-> uid en mémoire
*/
public updateParamsLinks(json: {}, uidMap: {}[]) {
console.log("++ UPDATE PARAMS LINKS (form definition) ++");
for (const ks in json) {
switch (ks) {
case "elements":
......
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