Bonjour,
je découvre actuellement le framework Cairngorm, et si j'ai bien compris l'idée du truc, comment l'implémenter et tout, il me reste une petite interrogation :
Comment lutter contre la prolifération de variables dans le ModelLocator ?
Regroupez-vous vos variables dans des sous objets ? (Par exemple un objet de type LoginFormModel) Car sinon je trouve que ça devient très vite crados toutes ces variables qu'on va binder un peu partout sur chaque vue.
Autre chose, comment gérez vous proprement (càd sans rien briser de la philosophie Cairngorm) la remise à zéro d'un champ, sa prise de focus, etc ? Je souhaite par exemple que quand l'utilisateur se logue, une routine java return true ou false selon la valeur de txtLogin.text et txtPassword.text. Ca c'est OK, l'event est dispatché, puis intercepté par le frontcontroller, la commande est executée, java répond bien, c'est chouette
Mais comment faire en cas de return false (càd ici login incorrect) pour vider par exemple le contenu du champ txtPassword, et lui redonner le focus ? Dois-je laisser trainer une référence de ma vue quelque part pour l'attaquer et lancer un setFocus() ? J'ai conscience que dans ce cas précis je pourrai faire cette remise à zéro et cette prise de focus en permanence (juste avant de dispatcher l'évènement), que le login soit bon ou pas, mais le problème se posera réellement sur d'autres cas
En question bonus : j'aimerai laisser un label au bas de chacune de mes vues qui sera bindé sur une variable du style {monModel.errorMessage}. Sauf que j'aimerai ne pas avoir à remettre à blanc cette variable entre chaque changement de vue (car si j'oublie de le faire, une vue pourrait afficher un vieux message d'erreur peut-être totalement hors contexte.
Comment gérez-vous ce problème habituellement ? Une variable errorMessage propre à chaque vue, une fonction getError() qui retournerait puis viderait le contenu de la variable après chaque appel ?
Bref, je ne sais pas si j'ai été très clair, mais merci pour vos éclaircissements.
Partager