r2162 - in trunk/jaxx-compiler/src/main/java/jaxx/compiler: finalizers tags/validator
Author: tchemit Date: 2011-01-25 12:57:12 +0100 (Tue, 25 Jan 2011) New Revision: 2162 Url: http://nuiton.org/repositories/revision/jaxx/2162 Log: Evolution #1178: Use nuiton-validator 2.0 Evolution #1240: Review the validation api Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java =================================================================== --- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-01-25 11:56:47 UTC (rev 2161) +++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-01-25 11:57:12 UTC (rev 2162) @@ -37,9 +37,11 @@ import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.validator.BeanValidatorHandler; import jaxx.compiler.tags.validator.BeanValidatorHandler.CompiledBeanValidator; -import jaxx.compiler.types.TypeManager; import jaxx.runtime.JAXXValidator; import jaxx.runtime.SwingUtil; +import jaxx.runtime.validator.swing.SwingValidatorUtil; +import jaxx.runtime.validator.swing.meta.Validator; +import jaxx.runtime.validator.swing.meta.ValidatorField; import java.lang.reflect.Modifier; import java.util.List; @@ -96,42 +98,69 @@ } String eol = JAXXCompiler.getLineSeparator(); StringBuilder builder = new StringBuilder(); - // register validator + // register validators List<CompiledBeanValidator> validators = BeanValidatorHandler.getValidators(compiler); + javaFile.addImport(Validator.class); + javaFile.addImport(ValidatorField.class); + javaFile.addImport(SwingValidatorUtil.class); + compiler.getJavaFile().addMethod(JavaFileGenerator.newMethod( + Modifier.PUBLIC, + "void", + "registerValidatorFields", + SwingValidatorUtil.class.getSimpleName() + ".installFields(this);", + true) + ); builder.append("// register "); builder.append(validators.size()); builder.append(" validator(s)"); builder.append(eol); - builder.append("registerValidatorFields();"); - StringBuilder registerValidatorFieldsMethod = new StringBuilder(); + builder.append("validatorIds = "); + builder.append(SwingValidatorUtil.class.getSimpleName()).append(".initUI(this);"); + builder.append(eol); +// builder.append("registerValidatorFields();"); +// builder.append(eol); + builder.append(SwingValidatorUtil.class.getSimpleName()).append(".installUI(this);"); + builder.append(eol); + compiler.appendLateInitializer(builder.toString()); for (CompiledBeanValidator validator : validators) { - String id = TypeManager.getJavaCode(validator.getId()); - builder.append("validatorIds.add("); - builder.append(id); - builder.append(");"); - builder.append(eol); - builder.append("getValidator("); - builder.append(id); - builder.append(").installUIs();"); - builder.append(eol); - builder.append("getValidator("); - builder.append(id); - builder.append(").reloadBean();"); - builder.append(eol); - // init fields - validator.addFieldRepresentations(compiler, registerValidatorFieldsMethod); + validator.registerValidator(compiler, javaFile); } - builder.append("validatorIds = java.util.Collections.unmodifiableList(validatorIds);"); - builder.append(eol); - compiler.appendLateInitializer(builder.toString()); - compiler.getJavaFile().addMethod(JavaFileGenerator.newMethod( - Modifier.PUBLIC, - "void", - "registerValidatorFields", - registerValidatorFieldsMethod.toString(), - true) - ); + +// StringBuilder registerValidatorFieldsMethod = new StringBuilder(); +// registerValidatorFieldsMethod.append(SwingValidatorUtil.class.getSimpleName()).append(".installFields(this);"); + +// for (CompiledBeanValidator validator : validators) { +// validator.registerValidator(compiler, javaFile); +// +// String id = TypeManager.getJavaCode(validator.getId()); + + +// builder.append("validatorIds.add("); +// builder.append(id); +// builder.append(");"); +// builder.append(eol); +// builder.append("getValidator("); +// builder.append(id); +// builder.append(").installUIs();"); +// builder.append(eol); +// builder.append("getValidator("); +// builder.append(id); +// builder.append(").reloadBean();"); +// builder.append(eol); + // init fields +// validator.addFieldRepresentations(compiler, registerValidatorFieldsMethod); +// } +// builder.append("validatorIds = java.util.Collections.unmodifiableList(validatorIds);"); +// builder.append(eol); +// compiler.appendLateInitializer(builder.toString()); +// compiler.getJavaFile().addMethod(JavaFileGenerator.newMethod( +// Modifier.PUBLIC, +// "void", +// "registerValidatorFields", +// SwingValidatorUtil.class.getSimpleName() + ".installFields(this);", +// true) +// ); } @Override Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java =================================================================== --- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-01-25 11:56:47 UTC (rev 2161) +++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-01-25 11:57:12 UTC (rev 2162) @@ -31,6 +31,8 @@ import jaxx.compiler.beans.JAXXBeanInfo; import jaxx.compiler.beans.JAXXPropertyDescriptor; import jaxx.compiler.binding.DataBindingHelper; +import jaxx.compiler.java.JavaField; +import jaxx.compiler.java.JavaFile; import jaxx.compiler.reflect.ClassDescriptor; import jaxx.compiler.reflect.ClassDescriptorHelper; import jaxx.compiler.tags.DefaultObjectHandler; @@ -38,6 +40,8 @@ import jaxx.runtime.JAXXValidator; import jaxx.runtime.validator.swing.SwingValidator; import jaxx.runtime.validator.swing.SwingValidatorUtil; +import jaxx.runtime.validator.swing.meta.Validator; +import jaxx.runtime.validator.swing.meta.ValidatorField; import jaxx.runtime.validator.swing.ui.AbstractBeanValidatorUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -784,14 +788,16 @@ } /** + * Register in buffer all field representation to init (and to record in method {@link JAXXValidator#registerValidatorFields()} * - * @param tag - * @param compiler - * @deprecated since 2.2.1, prefer use the methdo {@link #addFieldRepresentations(JAXXCompiler, StringBuilder)} + * @param compiler the compiler used + * @param javaFile generated file + * @param buffer the buffer where to add code + * @since 2.2.1 */ - @Deprecated - protected void addFieldRepresentations(Element tag, - JAXXCompiler compiler) { + public void addFieldRepresentations(JAXXCompiler compiler, + JavaFile javaFile, + StringBuilder buffer) { for (Entry<String, String> entry : fields.entrySet()) { String propertyName = entry.getKey(); String component = entry.getValue(); @@ -799,24 +805,41 @@ // property not find on bean continue; } + String validatorId = TypeManager.getJavaCode(getId()); + String keyCode = TypeManager.getJavaCode(propertyName); + String editorCode = TypeManager.getJavaCode(component); + JavaField editor = javaFile.getField(component); + String annotation = ValidatorField.class.getSimpleName() + + "( validatorId = " + validatorId + "," + + " propertyName = " + keyCode + "," + + " editorName = " + editorCode + "" + + ")"; + editor.addAnnotation(annotation); + // if (!compiler.checkReference(tag, component, true, null)) { // // editor component not find on ui // continue; // } - String keyCode = TypeManager.getJavaCode(propertyName); - appendAdditionCode(getJavaCode() + ".setFieldRepresentation(" + - keyCode + ", " + component + ");"); + +// buffer.append(getJavaCode()); +// buffer.append(".setFieldRepresentation("); +// buffer.append(keyCode); +// buffer.append(", "); +// buffer.append(component); +// buffer.append(");\n"); } } - /** - * Register in buffer all field representation to init (and to record in method {@link JAXXValidator#registerValidatorFields()} - * - * @param compiler the compiler used - * @param buffer the buffer where to add code - * @since 2.2.1 - */ - public void addFieldRepresentations(JAXXCompiler compiler, StringBuilder buffer) { + public void registerValidator(JAXXCompiler compiler, + JavaFile javaFile) { + + JavaField validatorField = javaFile.getField(getId()); + + String validatorId = TypeManager.getJavaCode(getId()); + String validatorAnnotation = Validator.class.getSimpleName() + + "( validatorId = " + validatorId + + ")"; + validatorField.addAnnotation(validatorAnnotation); for (Entry<String, String> entry : fields.entrySet()) { String propertyName = entry.getKey(); String component = entry.getValue(); @@ -824,17 +847,15 @@ // property not find on bean continue; } -// if (!compiler.checkReference(tag, component, true, null)) { -// // editor component not find on ui -// continue; -// } String keyCode = TypeManager.getJavaCode(propertyName); - buffer.append(getJavaCode()); - buffer.append(".setFieldRepresentation("); - buffer.append(keyCode); - buffer.append(", "); - buffer.append(component); - buffer.append(");\n"); + String editorCode = TypeManager.getJavaCode(component); + JavaField editor = javaFile.getField(component); + String annotation = ValidatorField.class.getSimpleName() + + "( validatorId = " + validatorId + "," + + " propertyName = " + keyCode + "," + + " editorName = " + editorCode + "" + + ")"; + editor.addAnnotation(annotation); } }
participants (1)
-
tchemit@users.nuiton.org