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 :
* 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()_.
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.
* Compléter la méthode _NubFactory.createNub()_.
## 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/ma-calculette_ :
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 :
- 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_ :
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_
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
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).
On peut soit composer la classe concrète directement avec ces classes, soient dériver ces dernières et composer avec.
* Composant CalculatorListComponent : ajouter une ligne à la methode _updateLocale()_ pour cer une nouvelle entrée dans la liste des calculettes disponibles.
- dans cette classe, surcharger la méthode _defaultProperties()_ (abstraite dans _FormulaireDefinition_) pour pciser le type de calculette (CalculatorType) et de noeud (ComputeNodeType) et éventuellement d'autres propriétés (cf. _FormulaireParallelStructure_).
* _src/locale/error_messages.<langue>.json_ :
Ajouter un champ pour le titre de la calculette. Par exemple :
_"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.
* 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