Commit 35ea4f14 authored by Grand Francois's avatar Grand Francois
Browse files

#43 MAJ de la procédure d'ajout d'une calculette

parent a051e33c
...@@ -129,51 +129,48 @@ and then : ...@@ -129,51 +129,48 @@ and then :
* Créer les tests unitaires correspondants * Créer les tests unitaires correspondants
* Ajouter une valeur à l'enum _ComputeNodeType_ pour identifier le type de noeud de calcul (par ex _MaCalculette_). * Ajouter une valeur à l'enum _CalculatorType_ pour identifier le type de calculette (par ex _MaCalculette_).
* Compléter la méthode _ComputeNodeParameters.getComputeNodeParameters()_. * Compléter la méthode _NubFactory.createNub()_.
Si plusieurs valeurs de _ComputeNodeType_ font référence à la même calculette, n'ajouter les _case_ que pour les valeurs "concrètes". Par exemple, pour les sections paramétrées, il n'y a pas de _case_ pour la valeur _SectionParametree_ qui est générique.
## ngHyd ## ngHyd
* Créer les fichier de configuration de la calculette * Créer les fichiers de configuration de la calculette
- dans _src/app/calculators_ : créer un répertoire (par ex _ma-calculette_) - dans _src/app/calculators_ : créer un répertoire (par ex _ma-calculette_)
- dans _src/app/calculators/ma-calculette_ : - dans _src/app/calculators/ma-calculette_ :
Créer _ma-calculette.config.json_ sur le modèle des autres. Créer _ma-calculette.config.json_ sur le modèle des autres.
Les ids utilisés doivent correspondre au symbole fourni à classe _ParamDefinition_ (2ème paramètre du constructeur) Les ids utilisés doivent correspondre au symbole fourni à classe _BaseParam_ (1er paramètre du constructeur)
Ne pas oublier de spécifier : Ne pas oublier de spécifier :
- le type de noeud de la calculette (dans l'objet comportant _"id":"options"_) avec le champ _"nodeType": "MaCalculette"_
- éventuellement le type de noeud de fieldset particuliers (objets comportant _"id":"fs_XXX"_) avec le champ _"nodeType": "MaCalculetteBleue"_ - éventuellement le type de noeud de paramètres particuliers (objets comportant _"type":"input"_) avec le champ _"nodeType": "MaCalculetteBleue"_
- dans _src/app/calculators/ma-calculette_ : - dans _src/app/calculators/ma-calculette_ :
Créer les fichiers d'internationalisation (_ma-calculette.<langue>.json_). Il doivent reprendre tous les ids utilisés dans le fichier de configuration et fournir leur traduction. Créer les fichiers d'internationalisation (_ma-calculette.<langue>.json_). Il doivent reprendre tous les ids utilisés dans le fichier de configuration et fournir leur traduction.
* Dans le fichier *src/app/formulaire/formulaire-definition.ts* ajouter une valeur à l'enum _CalculatorType_ pour identifier la calculette. * créer la classe du formulaire dans _src/app/formulaire/definition/concrete_
- Par ex : _FormulaireMaCalculette_ dans _src/app/formulaire/definition/concrete/form-ma-calculette.ts_
On ne reprend pas directement l'enum _ComputeNodeType_ car celui ci sert à distinguer les variantes au sein d'une même calculette (par exemple les différentes sections paramétrées). Ces classes concrètes sont construites par composition des classes dans _src/app/formulaire/definition_ :
- _form-def-*_ : définition/description du formulaire.
- _FormDefSection_ : avec paramètre à varier
- _FormDefParamToCalculate_ : avec paramètre à calculer
- etc...
- _form-compute-*_ : aspects calculatoires
- _form-result-*_ : affichage des résultats
* Composant CalculatorListComponent : ajouter une ligne à la methode _updateLocale()_ pour créer une nouvelle entrée dans la liste des calculettes disponibles. On peut soit composer la classe concrète directement avec ces classes, soient dériver ces dernières et composer avec.
- dans cette classe, surcharger la méthode _defaultProperties()_ (abstraite dans _FormulaireDefinition_) pour préciser le type de calculette (CalculatorType) et de noeud (ComputeNodeType) et éventuellement d'autres propriétés (cf. _FormulaireParallelStructure_).
* _src/locale/error_messages.<langue>.json_ : * _src/locale/error_messages.<langue>.json_ :
Ajouter un champ pour le titre de la calculette. Par exemple : Ajouter un champ pour le titre de la calculette. Par exemple :
_"INFO_MACALC_TITRE": "Ma calculette"_ _"INFO_MACALC_TITRE": "Ma calculette"_
* Compléter la méthode _GenericCalculatorComponent.uitextTitre()_ avec cette valeur et la valeur de l'enum _CalculatorType_ correspondante.
* Dans la méthode _FormulaireService.getConfigPathPrefix()_, compléter le _switch_ pour fournir le préfixe des fichiers de configuration/internationalisation. * Dans la méthode _FormulaireService.getConfigPathPrefix()_, compléter le _switch_ pour fournir le préfixe des fichiers de configuration/internationalisation.
* Classe _ParamService_ : compléter le constructeur.
* S'il existe plusieurs valeurs de _ComputeNodeType_ pour la même calculette, compléter les méthodes
- _FormulaireDefinition.getComputeNodeTypeFromSection()_.
- _ParamService.hasParameter()_
* Compléter la méthode _FormulaireDefinition.doCompute()_.
En particulier, adapter les méthodes _getNubAndParameters()_ ou _getSectionNubAndParameters()_ (récupération des valeurs saisies dans l'interface).
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment