Journal Taack-ui version 0.5.4

Posté par  (site web personnel) . Licence CC By‑SA.
16
23
août
2024

Bonjour à toutes et tous,

TaackUI 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.

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.

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, qui seront persistantes, puis le formulaire sera codé via utilisant le DSL pour les formulaires.

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.
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 :

Formulaire correspondant

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 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 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!

  • # Code

    Posté par  . Évalué à 3. Dernière modification le 26 août 2024 à 17:02.

    Pour les gens intéressés, le code est ici.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.