com.uwyn.rife.site
Class FormBuilderXml

java.lang.Object
  extended by com.uwyn.rife.site.FormBuilderXml
All Implemented Interfaces:
FormBuilder, Cloneable

public class FormBuilderXml
extends Object
implements FormBuilder


Field Summary
 
Fields inherited from interface com.uwyn.rife.site.FormBuilder
ID_FORM_FIELD, ID_FORM_LABEL, ID_FORM_NAME, ID_FORM_VALUE, MIDDLE_ATTRIBUTES, PREFIX_FORM_CHECKBOX, PREFIX_FORM_DISPLAY, PREFIX_FORM_HIDDEN, PREFIX_FORM_INPUT, PREFIX_FORM_LABEL, PREFIX_FORM_RADIO, PREFIX_FORM_SECRET, PREFIX_FORM_SELECT, PREFIX_FORM_TEXTAREA, SUFFIX_CHECKED, SUFFIX_SELECTED, VALUE_PREFIXES
 
Constructor Summary
FormBuilderXml()
           
 
Method Summary
 Object clone()
           
 Collection<String> generateField(Template template, Class propertyType, ConstrainedProperty property, String[] values, String prefix)
          Generates a form field for one particular property.
 Collection<String> generateField(Template template, Class propertyType, String name, String[] values, String prefix)
          Generates a form field for one particular property name.
 Collection<String> generateField(Template template, ConstrainedProperty property, String[] values, String prefix)
          Generates a form field for one particular property.
 Collection<String> generateField(Template template, String name, String[] values, String prefix)
          Generates a form field for one particular property name.
 Collection<String> generateForm(Template template, Class beanClass, Map<String,String[]> values, String prefix)
          Generates all the form fields for a bean class.
 Collection<String> generateForm(Template template, Object bean, Map<String,String[]> values, String prefix)
          Generates all the form fields for a bean instance.
 ValidationBuilder getValidationBuilder()
          Returns the ValidationBuilder that is used by this FormBuilder.
 void removeField(Template template, String templateFieldName)
          Removes the content of the template value that would otherwise be filled in with a generated form field through a FormBuilder.replaceField(com.uwyn.rife.template.Template, java.lang.String, com.uwyn.rife.site.ConstrainedProperty, java.lang.String[], java.lang.String) method.
 void removeField(Template template, String name, String prefix)
          Removes the content of the template value that would otherwise be filled in with a generated form field through a FormBuilder.generateField(com.uwyn.rife.template.Template, com.uwyn.rife.site.ConstrainedProperty, java.lang.String[], java.lang.String) method.
 void removeForm(Template template, Class beanClass, String prefix)
          Removes the content of all the template values that would otherwise be filled in with generated form fields through the FormBuilder.generateForm(Template, Class, Map, String) method.
 Collection<String> replaceField(Template template, String templateFieldName, Class propertyType, ConstrainedProperty property, String[] values, String prefix)
          Generates a form field for one particular property and always replace the content of the template values that match the auto-generation name format.
 Collection<String> replaceField(Template template, String templateFieldName, Class propertyType, String name, String[] values, String prefix)
          Generates a form field for one particular property name and always replace the content of the template values that match the auto-generation name format.
 Collection<String> replaceField(Template template, String templateFieldName, ConstrainedProperty property, String[] values, String prefix)
          Generates a form field for one particular property and always replace the content of the template values that match the auto-generation name format.
 Collection<String> replaceField(Template template, String templateFieldName, String name, String[] values, String prefix)
          Generates a form field for one particular property name and always replace the content of the template values that match the auto-generation name format.
 Collection<String> selectParameter(Template template, String name, String[] values)
          Generates the required attributes so that an existing form field indicates its checked or selected status.
 void unselectParameter(Template template, String name, String[] values)
          Removes the generated attributes that indicate that an existing form field is checked or selected
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FormBuilderXml

public FormBuilderXml()
Method Detail

generateForm

public Collection<String> generateForm(Template template,
                                       Class beanClass,
                                       Map<String,String[]> values,
                                       String prefix)
                                throws BeanUtilsException
Description copied from interface: FormBuilder
Generates all the form fields for a bean class.

If content has already been filled in for any of the template values that are normally replaced with generated form fields, no generation will happen for those and the existing content will simply remain present.

Specified by:
generateForm in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
beanClass - the bean class whose properties will be analyzed for the form generation
values - a map of name-value pairs that indicate the currently active context for the form that will be generated, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form fields with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated
Throws:
BeanUtilsException - when errors occurred during the form generation

generateForm

public Collection<String> generateForm(Template template,
                                       Object bean,
                                       Map<String,String[]> values,
                                       String prefix)
                                throws BeanUtilsException
Description copied from interface: FormBuilder
Generates all the form fields for a bean instance.

If content has already been filled in for any of the template values that are normally replaced with generated form fields, no generation will happen for those and the existing content will simply remain present.

Specified by:
generateForm in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
bean - the bean instance whose properties and validation errors will be analyzed for the form generation
values - a map of name-value pairs that indicate the currently active context for the form that will be generated, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form fields with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated
Throws:
BeanUtilsException - when errors occurred during the form generation

generateField

public Collection<String> generateField(Template template,
                                        ConstrainedProperty property,
                                        String[] values,
                                        String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property.

If content has already been filled in for any of the template values that are normally replaced with generated form fields, no generation will happen for those and the existing content will simply remain present.

Specified by:
generateField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
property - the constrained property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated

generateField

public Collection<String> generateField(Template template,
                                        Class propertyType,
                                        ConstrainedProperty property,
                                        String[] values,
                                        String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property.

If content has already been filled in for any of the template values that are normally replaced with generated form fields, no generation will happen for those and the existing content will simply remain present.

Specified by:
generateField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
propertyType - the type of the property
property - the constrained property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated

replaceField

public Collection<String> replaceField(Template template,
                                       String templateFieldName,
                                       ConstrainedProperty property,
                                       String[] values,
                                       String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property and always replace the content of the template values that match the auto-generation name format.

This method also adds a templateFieldName parameter. It allows you to use another property name for the template values than the one of the actual bean property. You will typically use this when you dynamically generate a form and iterate over the generation of certain fields. So, for example, when you have properties named answer1 and answer2, you can use this template snippet:

 <!--V 'answers'/-->
 <!--B 'answer'-->
 <!--V 'FORM:INPUT:answer'/-->
 <!--/B-->
 
By using the replaceField(template, "answer", property, null, null) method call for each answer property and appending the answer block to the answers value, you can benefit from the automatic form field generation but still dynamically aggregate the results into one area.

Specified by:
replaceField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
templateFieldName - the name of the form field that will be used to look for supported value tags in the property template
property - the constrained property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated

replaceField

public Collection<String> replaceField(Template template,
                                       String templateFieldName,
                                       Class propertyType,
                                       ConstrainedProperty property,
                                       String[] values,
                                       String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property and always replace the content of the template values that match the auto-generation name format.

The documentation of the previous replaceField method contains more information about the functionality of this method.

Specified by:
replaceField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
templateFieldName - the name of the form field that will be used to look for supported value tags in the property template
propertyType - the type of the property
property - the constrained property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated

generateField

public Collection<String> generateField(Template template,
                                        String name,
                                        String[] values,
                                        String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property name.

If content has already been filled in for any of the template values that are normally replaced with generated form fields, no generation will happen for those and the existing content will simply remain present.

Specified by:
generateField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
name - the name of the property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated

generateField

public Collection<String> generateField(Template template,
                                        Class propertyType,
                                        String name,
                                        String[] values,
                                        String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property name.

If content has already been filled in for any of the template values that are normally replaced with generated form fields, no generation will happen for those and the existing content will simply remain present.

Specified by:
generateField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
propertyType - the type of the property
name - the name of the property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated

replaceField

public Collection<String> replaceField(Template template,
                                       String templateFieldName,
                                       String name,
                                       String[] values,
                                       String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property name and always replace the content of the template values that match the auto-generation name format.

The documentation of the previous replaceField method contains more information about the functionality of this method.

Specified by:
replaceField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
templateFieldName - the name of the form field that will be used to look for supported value tags in the property template
name - the name of the property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated
See Also:
FormBuilder.replaceField(Template, String, ConstrainedProperty, String[], String)

replaceField

public Collection<String> replaceField(Template template,
                                       String templateFieldName,
                                       Class propertyType,
                                       String name,
                                       String[] values,
                                       String prefix)
Description copied from interface: FormBuilder
Generates a form field for one particular property name and always replace the content of the template values that match the auto-generation name format.

The documentation of the previous replaceField method contains more information about the functionality of this method.

Specified by:
replaceField in interface FormBuilder
Parameters:
template - the template instance that will be used for the form generation
templateFieldName - the name of the form field that will be used to look for supported value tags in the property template
propertyType - the type of the property
name - the name of the property that the form field will be generated for
values - the current values of the property, these are typically the values that have been submitted previously through a web page. The values will be used to pre-populate the form field with content.
prefix - the prefix of the bean property names that should be used while generating the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Returns:
the collection of template value names that have been generated
See Also:
FormBuilder.replaceField(Template, String, ConstrainedProperty, String[], String)

removeForm

public void removeForm(Template template,
                       Class beanClass,
                       String prefix)
                throws BeanUtilsException
Description copied from interface: FormBuilder
Removes the content of all the template values that would otherwise be filled in with generated form fields through the FormBuilder.generateForm(Template, Class, Map, String) method.

Specified by:
removeForm in interface FormBuilder
Parameters:
template - the template instance whose values will be cleared
beanClass - the bean class whose properties will be analyzed for clearing the form field values
prefix - the prefix of the bean property names that should be used while clearing the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
Throws:
BeanUtilsException - when errors occurred during the clearing of the form
See Also:
FormBuilder.generateForm(com.uwyn.rife.template.Template, java.lang.Class, java.util.Map, java.lang.String)

removeField

public void removeField(Template template,
                        String name,
                        String prefix)
Description copied from interface: FormBuilder
Removes the content of the template value that would otherwise be filled in with a generated form field through a FormBuilder.generateField(com.uwyn.rife.template.Template, com.uwyn.rife.site.ConstrainedProperty, java.lang.String[], java.lang.String) method.

Specified by:
removeField in interface FormBuilder
Parameters:
template - the template instance whose values will be cleared
name - the name of the property for which the template value will be cleared
prefix - the prefix of the bean property names that should be used while clearing the form, this is handy to use when the several forms are present that use the same bean class or that has overlapping property names
See Also:
FormBuilder.generateField(com.uwyn.rife.template.Template, com.uwyn.rife.site.ConstrainedProperty, java.lang.String[], java.lang.String)

removeField

public void removeField(Template template,
                        String templateFieldName)
Description copied from interface: FormBuilder
Removes the content of the template value that would otherwise be filled in with a generated form field through a FormBuilder.replaceField(com.uwyn.rife.template.Template, java.lang.String, com.uwyn.rife.site.ConstrainedProperty, java.lang.String[], java.lang.String) method.

Specified by:
removeField in interface FormBuilder
Parameters:
template - the template instance whose values will be cleared
templateFieldName - the that is use in the template values to identify the property that has to be cleared
See Also:
FormBuilder.replaceField(Template, String, ConstrainedProperty, String[], String)

selectParameter

public Collection<String> selectParameter(Template template,
                                          String name,
                                          String[] values)
Description copied from interface: FormBuilder
Generates the required attributes so that an existing form field indicates its checked or selected status.

Specified by:
selectParameter in interface FormBuilder
Parameters:
template - the template instance that will be used for the generation
name - the name of the parameter
values - the values of the parameter
Returns:
the collection of template value names that have been generated

unselectParameter

public void unselectParameter(Template template,
                              String name,
                              String[] values)
Description copied from interface: FormBuilder
Removes the generated attributes that indicate that an existing form field is checked or selected

Specified by:
unselectParameter in interface FormBuilder
Parameters:
template - the template instance that will be used for the clearing
name - the name of the parameter
values - the values of the parameter

getValidationBuilder

public ValidationBuilder getValidationBuilder()
Description copied from interface: FormBuilder
Returns the ValidationBuilder that is used by this FormBuilder.

Specified by:
getValidationBuilder in interface FormBuilder
Returns:
this FormBuilder's ValidationBuilder

clone

public Object clone()
Specified by:
clone in interface FormBuilder
Overrides:
clone in class Object


Copyright © 2001-2007 Uwyn sprl/bvba. All Rights Reserved.