B - le type de bean a validerpublic class SwingValidator<B>
extends org.nuiton.validator.bean.simple.SimpleBeanValidator<B>
SimpleBeanValidator pour les ui swing
Permet d'ajouter facilement le support de la validation des champs d'un bean
et de le relier a une interface graphique. Utilise xwork pour la validation
et JXLayer pour la visualisation.
Le mieux pour son integration dans Jaxx est de faire de la generation pour
force la compilation du code suivant:
myValidor.getBean().get<field>();et 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<beanClass> $myValidator;
// init du bean
protected void createMyValidator() {
$myValidator = new BeanValidator<beanClass>();
// 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);
}
| Modifier and Type | Field and Description |
|---|---|
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
|
| Constructor and Description |
|---|
SwingValidator(Class<B> beanClass,
String contextName) |
SwingValidator(Class<B> beanClass,
String contextName,
org.nuiton.validator.NuitonValidatorScope... filterScopes) |
SwingValidator(org.nuiton.validator.NuitonValidatorProvider provider,
Class<B> beanClass,
String contextName,
org.nuiton.validator.NuitonValidatorScope... filterScopes) |
| Modifier and Type | Method and Description |
|---|---|
SwingValidatorMessageListModel |
getErrorListModel() |
SwingValidatorMessageTableModel |
getErrorTableModel() |
JComponent |
getFieldRepresentation(String fieldname) |
SwingValidator<?> |
getParentValidator() |
Class<? extends AbstractBeanValidatorUI> |
getUiClass() |
void |
installUIs()
install ui on required components
|
static <O> SwingValidator<O> |
newValidator(Class<O> type,
String context,
org.nuiton.validator.NuitonValidatorScope... scopes)
Obtain a new
SimpleBeanValidator for the given parameters. |
static <O> SwingValidator<O> |
newValidator(String providerName,
Class<O> type,
String context,
org.nuiton.validator.NuitonValidatorScope... scopes)
Obtain a new
SimpleBeanValidator for the given parameters. |
void |
reloadBean()
To reload a bean in the validator.
|
void |
setContext(String context) |
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(JComponent c,
Collection<String> fieldnames,
Class<? extends AbstractBeanValidatorUI> uiClass) |
protected void |
setMessageRepresentation(String fieldname,
JComponent old,
JComponent c,
Class<? extends AbstractBeanValidatorUI> uiClass)
Deprecated.
|
void |
setParentValidator(SwingValidator<?> parentValidator) |
void |
setUiClass(Class<? extends AbstractBeanValidatorUI> uiClass) |
addSimpleBeanValidatorListener, convert, convert, doValidate, doValidate, fireFieldChanged, getBean, getDelegate, getHighestScope, getSimpleBeanValidatorListeners, hasErrors, hasFatalErrors, hasInfos, hasWarnings, isValid, mergeMessages, rebuildDelegateValidator, removeSimpleBeanValidatorListener, setBean, setParentValidator, validateaddPropertyChangeListener, addPropertyChangeListener, containsField, firePropertyChange, getContext, getEffectiveFields, getEffectiveFields, getEffectiveScopes, getModel, getScopes, getType, isCanValidate, isChanged, isValid, removePropertyChangeListener, removePropertyChangeListener, setCanValidate, setChanged, setScopes, setValidprotected final Map<String,JComponent> fieldRepresentation
protected SwingValidatorMessageListModel errorListModel
protected SwingValidatorMessageTableModel errorTableModel
protected Class<? extends AbstractBeanValidatorUI> uiClass
public SwingValidator(org.nuiton.validator.NuitonValidatorProvider provider,
Class<B> beanClass,
String contextName,
org.nuiton.validator.NuitonValidatorScope... filterScopes)
public SwingValidator(Class<B> beanClass, String contextName, org.nuiton.validator.NuitonValidatorScope... filterScopes)
public static <O> SwingValidator<O> newValidator(Class<O> type, String context, org.nuiton.validator.NuitonValidatorScope... scopes) throws NullPointerException
SimpleBeanValidator for the given parameters.
Note: It will use the default provider of NuitonValidatorO - type of bean to validatetype - type of bean to validatecontext - context of validationscopes - authorized scopes (if null, will use all scopes)SimpleBeanValidator.NullPointerException - if type is nullNuitonValidatorFactory.getDefaultProviderName()public static <O> SwingValidator<O> newValidator(String providerName, Class<O> type, String context, org.nuiton.validator.NuitonValidatorScope... scopes) throws NullPointerException
SimpleBeanValidator for the given parameters.
Note: It will use the provider of NuitonValidator
defined by the providerName.O - type of bean to validateproviderName - name of NuitonValidator to usetype - type of bean to validatecontext - context of validationscopes - authorized scopes (if null, will use all scopes)SimpleBeanValidator.NullPointerException - if type is nullNuitonValidatorFactory.getProvider(String)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 setContext(String context)
setContext in class org.nuiton.validator.bean.AbstractValidator<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 org.nuiton.validator.bean.simple.SimpleBeanValidator<B>public void setParentValidator(SwingValidator<?> parentValidator)
public void installUIs()
protected void setMessageRepresentation(JComponent c, Collection<String> fieldnames, Class<? extends AbstractBeanValidatorUI> uiClass) throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException
@Deprecated protected void setMessageRepresentation(String fieldname, JComponent old, JComponent c, Class<? extends AbstractBeanValidatorUI> uiClass) throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException
public SwingValidatorMessageListModel getErrorListModel()
public SwingValidatorMessageTableModel getErrorTableModel()
Copyright © 2008–2018 Ultreia.io. All rights reserved.