diff --git a/modele/Cellule.js b/modele/Cellule.js index b0295bc627a2bb7546b6764510e737efdbba5067..3cea68836eeaecfa1b97ba02ba72ee555f61d544 100644 --- a/modele/Cellule.js +++ b/modele/Cellule.js @@ -1,4 +1,5 @@ const Component = require("./Component"); +const Nombre = require("./Nombre"); class Cellule extends Component{ @@ -21,6 +22,11 @@ class Cellule extends Component{ expression: this.#expression.toJSON() //voir si on garde expression ou si on met le type d'expression (ex nombre: 12) } } + + readJSON(json){ + //TODO: gerer les autres expressions par la suite + this.#expression = new Nombre(json.expression); + } } module.exports = Cellule; \ No newline at end of file diff --git a/modele/Component.js b/modele/Component.js index b4bab166c26bdb8e47c31f7af647e8852248929d..790945a5e89131584ec056db711b66203b156d7a 100644 --- a/modele/Component.js +++ b/modele/Component.js @@ -8,6 +8,10 @@ class Component{ getNom(){ return this.#nom; } + + setNom(name){ + this.#nom = name; + } } module.exports = Component; \ No newline at end of file diff --git a/modele/Document.js b/modele/Document.js index 52f6a7f0b8621da564d7ec0e5f70fb61dea1ccd4..9505b2140873f9fdbba74d7ee819607d3490f690 100644 --- a/modele/Document.js +++ b/modele/Document.js @@ -67,6 +67,21 @@ class Document extends Component{ } } + readJSON(json){ + super.setNom(json.nom); + this.#auteur = json.auteur; + this.#id = json.id; + this.#dateCreation = json.dateCreation; + this.#dateModification = json.dateModification; + + this.clearFeuilles(); + json.feuilles.forEach(feuille => { + let f = new Feuille(this); + f.readJSON(feuille); + this.addFeuille(f); + }); + } + } module.exports = Document; \ No newline at end of file diff --git a/modele/Feuille.js b/modele/Feuille.js index 70de6da7a70624c6c970f701d09fa3f0dabc64b4..62a0ba0eed42ad800ee8772b50a194f61fbdc17e 100644 --- a/modele/Feuille.js +++ b/modele/Feuille.js @@ -1,4 +1,5 @@ const Component = require("./Component"); +const Cellule = require("./Cellule"); class Feuille extends Component{ @@ -37,6 +38,22 @@ class Feuille extends Component{ cells: cellsJSON } } + + readJSON(json){ + super.setNom(json.nom); + let tmp = []; + this.#cells = []; //reset du tableau + + for (let i = 0; i < json.cells.length; i++){ + json.cells[i].forEach(cell => { + let cellule = new Cellule(cell.numero); + cellule.readJSON(cell); + tmp.push(cellule); + }); + this.#cells.push(tmp); + tmp = []; + } + } } module.exports = Feuille; \ No newline at end of file