|
||||||||||
| 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 java.util.Map<java.lang.String,javax.swing.JComponent> |
fieldRepresentation
permet de faire le lien en un champs du bean et l'objet qui permet de l'editer |
protected java.lang.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, l, listenerList, parentValidator, pcs, valid, VALID_PROERTY, validators |
| Constructor Summary | |
|---|---|
SwingValidator(java.lang.Class<B> beanClass,
java.lang.String contextName)
|
|
| Method Summary | |
|---|---|
javax.swing.JComponent |
getFieldRepresentation(java.lang.String fieldname)
|
SwingValidator<?> |
getParentValidator()
|
java.lang.Class<? extends AbstractBeanValidatorUI> |
getUiClass()
|
void |
installUIs()
install ui on required components |
void |
reloadBean()
To reload a bean in the validator. |
void |
setContextName(java.lang.String contextName)
|
void |
setErrorListModel(SwingValidatorMessageListModel errorListModel)
|
void |
setErrorTableModel(SwingValidatorMessageTableModel errorTableModel)
|
void |
setFieldRepresentation(java.util.Map<java.lang.String,javax.swing.JComponent> fieldRepresentation)
|
void |
setFieldRepresentation(java.lang.String fieldname,
javax.swing.JComponent c)
Permet d'indiquer le composant graphique responsable de l'affichage d'un attribut du bean |
protected void |
setMessageRepresentation(java.lang.String fieldname,
javax.swing.JComponent old,
javax.swing.JComponent c,
java.lang.Class<? extends AbstractBeanValidatorUI> uiClass)
|
void |
setParentValidator(SwingValidator<?> parentValidator)
|
void |
setUiClass(java.lang.Class<? extends AbstractBeanValidatorUI> uiClass)
|
| Methods inherited from class jaxx.runtime.validator.BeanValidator |
|---|
addBeanValidatorListener, addPropertyChangeListener, addPropertyChangeListener, canValidate, containsField, convert, doValidate, fireFieldChanged, getBean, getBeanClass, getBeanEventDescriptor, getBeanValidatorListeners, getContextName, getField, getFields, getScopes, hasErrors, hasInfos, hasWarnings, initFields, isChanged, isValid, isValid, removeBeanValidatorListener, removePropertyChangeListener, removePropertyChangeListener, setBean, setChanged, setParentValidator, setValid, toString, validate |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected java.util.Map<java.lang.String,javax.swing.JComponent> fieldRepresentation
protected SwingValidatorMessageListModel errorListModel
protected SwingValidatorMessageTableModel errorTableModel
protected java.lang.Class<? extends AbstractBeanValidatorUI> uiClass
| Constructor Detail |
|---|
public SwingValidator(java.lang.Class<B> beanClass,
java.lang.String contextName)
| Method Detail |
|---|
public void reloadBean()
public javax.swing.JComponent getFieldRepresentation(java.lang.String fieldname)
public java.lang.Class<? extends AbstractBeanValidatorUI> getUiClass()
public void setErrorListModel(SwingValidatorMessageListModel errorListModel)
public void setErrorTableModel(SwingValidatorMessageTableModel errorTableModel)
public void setUiClass(java.lang.Class<? extends AbstractBeanValidatorUI> uiClass)
public void setContextName(java.lang.String contextName)
setContextName in class BeanValidator<B>
public void setFieldRepresentation(java.lang.String fieldname,
javax.swing.JComponent c)
fieldname - the field name in the beanc - the editor component for the fieldpublic void setFieldRepresentation(java.util.Map<java.lang.String,javax.swing.JComponent> fieldRepresentation)
public SwingValidator<?> getParentValidator()
getParentValidator in class BeanValidator<B>public void setParentValidator(SwingValidator<?> parentValidator)
public void installUIs()
protected void setMessageRepresentation(java.lang.String fieldname,
javax.swing.JComponent old,
javax.swing.JComponent c,
java.lang.Class<? extends AbstractBeanValidatorUI> uiClass)
throws java.lang.reflect.InvocationTargetException,
java.lang.IllegalAccessException,
java.lang.InstantiationException,
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.NoSuchMethodException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||