URL: https://linuxfr.org/users/yboy360/journaux/taack-ui-version-0-5-4 Title: Taack-ui version 0.5.4 Authors: YBoy360 Date: 2024年08月23日T07:29:16+02:00 License: CC By-SA Tags: groovy, grails, java et gestion_de_formulaire Score: 16 Bonjour à toutes et tous, [TaackUI](http;as://taack.org/fr) est un framework (ou cadriciel) pour créer des applications d’entreprise (c.a.d. beaucoup de formulaires, aspect validation des données, sécurité ...). La particularité de cet outil est de ne pas seulement fournir des API (Application Programming Interface), mais également de surcharger certaines étapes de la compilation réalisées par votre Jdk préféré, ainsi que le comportement de l’éditeur de code, pour supporter certaines extensions faites au langage [Groovy](https://groovy-lang.org/). Ces extensions permettent d’associer aux membres d’un objet les contraintes qui lui sont associées et son nom. On crée donc un nouveau membre à la compilation, nommée avec un underscore à la fin, qui va nous permet de savoir si le texte désigné par ce membre est un mail, son nom, s' il peut être nul ou pas, unique ou pas, taille et ainsi de suite ... Groovy permet de créer simplement des DSL (Domain Specific Language) via l’annotation [@DelegatesTo](https://docs.groovy-lang.org/docs/latest/html/documentation/core-domain-specific-languages.html#section-delegatesto). Ces 2 techniques ensemble, permettent d'améliorer l’expressivité et la concision du code. Par exemple, pour créer un formulaire utilisateur, on définit une classe "domain", avec des membres, des méthodes, des [contraintes](https://docs.grails.org/latest/ref/Constraints/Usage.html), qui seront persistantes, puis le formulaire sera codé via utilisant le [DSL pour les formulaires](https://taack.org/fr/doc/DSLs/form-dsl). Juste pour cette exemple, le formulaire ainsi codé permettra de : * valider les données et remonter les erreurs avec la locale de l’utilisateur * sera localisé * sera réutilisable dans d’autres blocs * sera statiquement validé par le compilateur et par l’environnement de développement, en lien avec la classe du domaine. ```groovy UiFormSpecifier f = new UiFormSpecifier() f.ui user, { section "User", { field user.username_ field user.firstName_ field user.lastName_ ajaxField user.manager_, this.&selectUserM2O as MC field user.password_ } section "Coords", { field user.businessUnit_ field user.mail_ field user.subsidiary_ } section "Status", { field user.enabled_ field user.accountExpired_ field user.accountLocked_ field user.passwordExpired_ } formAction this.&saveUser as MC, user.id } ``` Le formulaire résultant :  Et comme aucun lien avec javascript ou du HTML n’a été nécessaire, ce formulaire pourrait être utilisé dans autre contexte qu’une page du Web (un terminal VT100, une application native ...). Pour cette version, le site [taack.org](https://taack.org/fr) a été traduit intégralement en Français, et une page Nouveautés est accessible pour détailler les évolutions avec plus de détails. [Une chaîne Youtube](https://www.youtube.com/channel/UCPB81L10AKGXgqPc-zhsvVA) en anglais, très sommaire est également accessible. Voilà, j'espère que ce n'est pas trop confus, merci à tous et bonne journée!