Bonjour,
Le module wikitty struts est un module fait pour faciliter la création
de formulaire d'édition de wikitty.
Il prend la forme d'une tag lib, plug in de struts, qui pour le moment
n'implique pas forcément l'utilisation de struts, rien n'empêche de
l'utiliser en tag lib classique.
Cette tag lib se présente comme une collection de tag à mettre dans une
page pour définir un formulaire d'édition de wikitty, elle propose aussi
une action abstraite qui s'occupe de l'édition du wikitty avec les
informations envoyées par le formulaire, elle est abstraite avec une
méthode à implémenter "getProxy()" ainsi le développeur n'a qu'a
rajouter une action qui hérite de notre action abstraite et la mettre
dans son application.
Le tag principal est le tag wikitty à qui l'on donne le proxy, le
wikitty correspondant, l'url de l'action (et d'autres attributs non
obligatoires) avec cela un formulaire simple est créé avec des champs
basiques d'édition textfield/textarea/checkbutton.
Ensuite l'utilisateur peut forcer des champs à avoir une formalisme
particulier, et pour celà il se sert des autres tag exemple
<ws:wikitty wikitty="lewikitty" proxy="leproxy" action="edit.action">
<ws:hidden name="WikittyLabel.labels" />
<ws:wikittyselect name="WikittyPersonne.epoux" label="epoux"
criteria="WikittyPersonne" descfield="WikittyPersonne.name"/>
</ws:wikitty>
là le résultat serait un champ caché pour les labels, et une combobox
pour le choix de l'epoux du wikitty personne, en cherchant les wikitty
avec le criteria et dans le champ du combo apparaitrait les nom des
wikittyPersonne obtenu avec la recherche par critéria.
le tag wikitty permet aussi d'exclure ou d'inclure des champs/extension,
si par exemple exclude="wikittylabels.*, wikittypersonne.nom"
l'extension wikitty labels sera exclu du formulaire et pareil pour le
champ nom de wikitty personne, mais les autres champs seront présenté.
Si le champ include est remplis, seulement ces champs seront présent,
sauf ceux qui seront exclu.
Il est aussi possible de définir l'ordre d'affichage des champs, sans
les rédéfinir/forcer le type.
Pour résumer une tag lib pour l'édition de wikitty, avec un tag wikitty
général et des sous tag pour forcer l'affichage d'un champ sous un
certain format et une action abstraite qui enregistre les modifications.
En sous tag on a:
- boolean
- textfield
- textarea
- wikittyselect, pour un combo box de wikitty
- fixedselect pour un combo box avec des valeurs misent dans le tag
- hidden pour champ caché
En prévision:
- date
A terme le formulaire enverra sa requete en ajax et il y aura une
redirection si l'attribut redirect sera remplit, sinon le formulaire
devrait être mis à jour.
Manoël