|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjaxx.runtime.validator.BeanValidator<B>
jaxx.runtime.validator.swing.SwingValidator<B>
B - le type de bean a validerpublic class SwingValidator<B>
La surcharge de BeanValidator pour les ui swing
myValidor.getBean().getet ceci pour chaque field ajoute a la map fieldRepresentation. De cette facon meme si le champs field est en texte on a une verification de son existance a la compilation. La representation en tag pourrait etre();
<validator id="myValidator" beanClass="{Personne.class}"
errorList="$list">
<field name="name" component="$name"/>
<field name="firstName" component="$firstName"/>
<field name="birthDate" component="$birthDate"/>
</validator>
<validator beanClass="{Personne.class}" autoField="true"
errorList="$list">
<fieldRepresentation name="name" component="$lastName"/>
</validator>
dans le premier exemple on fait un mapping explicite des champs, mais on voit
que le nom du composant graphique est le meme que celui du champs. Pour
eviter de longue saisie, il est possible d'utiliser le flag autoField
qui pour chaque champs du ayant une methode get du bean recherche un
composant avec cet Id. Il est aussi possible de surcharge un champs
explicitement comme ici name, dans le cas ou le composant qui porterait ce
nom serait utilise pour autre chose.
Il faut un handler particulier pour ce composant car les attributs
beanClass et autoField ne sont present que dans le XML jaxx et
servent a la generation. Il faut aussi prendre en compte les elements
fieldRepresentation fils du tag validator.
Voici ce que pourrait etre le code genere par jaxx
// declaration du bean BeanValidator$myValidator; // init du bean protected void createMyValidator() { $myValidator = new BeanValidator (); // genere seulement si autoField = true for (Method m : beanClass.getMethod()) { if (m.getName().startsWith("get")) { String fieldName = m.getName().substring(3).toLowerCase(); $myValidator.setFieldRepresentation(fieldName, $objectMap.get(fieldName)); } } // pour chaque tag fieldRepresentation myValidator.setFieldRepresentation("name", $lastName); // si beanClass est specifie et n'est pas Object, on force l'acces au champs // pour validation a la compilation $myValidator.getBean().getName(); $objectMap.put("myValidator", $myValidator); }
| Field Summary | |
|---|---|
protected SwingValidatorMessageListModel |
errorListModel
Object servant a contenir la liste des erreurs |
protected SwingValidatorMessageTableModel |
errorTableModel
Object servant a contenir la liste des erreurs |
protected Map<String,JComponent> |
fieldRepresentation
permet de faire le lien en un champs du bean et l'objet qui permet de l'editer |
protected Class<? extends AbstractBeanValidatorUI> |
uiClass
ui renderer class |
| Fields inherited from class jaxx.runtime.validator.BeanValidator |
|---|
bean, BEAN_PROERTY, beanClass, beanEventDescriptor, changed, CHANGED_PROERTY, CONTEXT_NAME_PROPERTY, contextName, conversionErrors, fields, FILTER_SCOPES_EMPTY, filterScopes, l, listenerList, parentValidator, pcs, valid, VALID_PROERTY, validators |
| Constructor Summary | |
|---|---|
SwingValidator(Class<B> beanClass,
String contextName)
|
|
SwingValidator(Class<B> beanClass,
String contextName,
BeanValidatorScope... filterScopes)
|
|
| Method Summary | |
|---|---|
JComponent |
getFieldRepresentation(String fieldname)
|
SwingValidator<?> |
getParentValidator()
|
Class<? extends AbstractBeanValidatorUI> |
getUiClass()
|
void |
installUIs()
install ui on required components |
void |
reloadBean()
To reload a bean in the validator. |
void |
setContextName(String contextName)
|
void |
setErrorListModel(SwingValidatorMessageListModel errorListModel)
|
void |
setErrorTableModel(SwingValidatorMessageTableModel errorTableModel)
|
void |
setFieldRepresentation(Map<String,JComponent> fieldRepresentation)
|
void |
setFieldRepresentation(String fieldname,
JComponent c)
Permet d'indiquer le composant graphique responsable de l'affichage d'un attribut du bean |
protected void |
setMessageRepresentation(String fieldname,
JComponent old,
JComponent c,
Class<? extends AbstractBeanValidatorUI> uiClass)
|
void |
setParentValidator(SwingValidator<?> parentValidator)
|
void |
setUiClass(Class<? extends AbstractBeanValidatorUI> uiClass)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected final Map<String,JComponent> fieldRepresentation
protected SwingValidatorMessageListModel errorListModel
protected SwingValidatorMessageTableModel errorTableModel
protected Class<? extends AbstractBeanValidatorUI> uiClass
| Constructor Detail |
|---|
public SwingValidator(Class<B> beanClass,
String contextName,
BeanValidatorScope... filterScopes)
public SwingValidator(Class<B> beanClass,
String contextName)
| Method Detail |
|---|
public void reloadBean()
public JComponent getFieldRepresentation(String fieldname)
public Class<? extends AbstractBeanValidatorUI> getUiClass()
public void setErrorListModel(SwingValidatorMessageListModel errorListModel)
public void setErrorTableModel(SwingValidatorMessageTableModel errorTableModel)
public void setUiClass(Class<? extends AbstractBeanValidatorUI> uiClass)
public void setContextName(String contextName)
setContextName in class BeanValidator<B>
public void setFieldRepresentation(String fieldname,
JComponent c)
fieldname - the field name in the beanc - the editor component for the fieldpublic void setFieldRepresentation(Map<String,JComponent> fieldRepresentation)
public SwingValidator<?> getParentValidator()
getParentValidator in class BeanValidator<B>public void setParentValidator(SwingValidator<?> parentValidator)
public void installUIs()
protected void setMessageRepresentation(String fieldname,
JComponent old,
JComponent c,
Class<? extends AbstractBeanValidatorUI> uiClass)
throws InvocationTargetException,
IllegalAccessException,
InstantiationException,
NoSuchMethodException
InvocationTargetException
IllegalAccessException
InstantiationException
NoSuchMethodException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||