Creation d'un nouveau builder jforms dans Jelix 1.0 et précédent

(Note : cette procédure est obsolète dans Jelix 1.1)

Par défaut, Jelix 1.0beta3 ne propose qu'un générateur de formulaire HTML à partir d'un fichier jForms. Voici comment ajouter la prise en charge d'un autre format dans jForms. Par exemple, choisissons de faire un générateur de formulaire XUL. Chaque générateur ayant un code type, on prendra tout naturellement "xul". Ce code est repris à différents niveaux dans jForms.

Il faut d'abord créer une classe qui se charge de générer les élements du formulaire. Appelons là par exemple jFormsXulBuilderBase. Cette classe doit hériter de la classe jFormsBuilderBase. Voir comme exemple la classe jFormsHtmlBuilderBase.

La classe jFormsXulBuilderBase servira ensuite de base à une autre classe dont le nom, 'cForm_xxxxxxxxxxx_Jx_yyyyyyyy_builder_xul est en partie généré automatiquement par le compilateur jforms. Cette classe est générée durant la compilation du fichier jForms. En effet, il peut y avoir besoin que du contenu de cette classe soit générée en fonction du fichier jForms. Par exemple, le compilateur de jForms génère la méthode qui génèrera le code javascript de validation pour les formulaires HTML (getJavascriptCheck).

On aura donc au final, cette hierarchie de classe : jFormsBuilderBase -> jFormsXulBuilderBase -> cForm_xxxxxxxxxxx_Jx_yyyyyyyy_builder_xul.

Il faut ensuite ajouter dans jFormsCompiler les instructions qui serviront à générer la classe cForm_xxxxxxxxxxx_Jx_yyyyyyyy_builder_xul (notez que la partie "xul" du nom a la même valeur que le code type indiqué plus haut). Il ne faut pas non plus oublier de déclarer le nouveau type de format dans jFormsCompiler, au niveau du code source qui génère la propriété _builders de la classe héritant de jFormsBase.

Enfin il faut réaliser les plugins de templates qui se baseront sur le formulaire qu'on leur donnera et sur le générateur de formulaire que vous venez de créer, pour afficher le formulaire. Vous pouvez reprendre ceux existant pour le html et les modifier, ou en faire des nouveaux si ils ne sont pas adaptables.

Download in other formats: Plain Text