izpack/izpack — pull request #229 by mtjandra (2014-07-09 16:10:03+00:00)
Title: [IZPACK-1130] - New custom field type for dynamically adding/removing fields

Please refer to: https://jira.codehaus.org/browse/IZPACK-1130
It is advised to test out this new field with https://github.com/mtjandra/SampleInstaller, please checkout the "customFields" branch and build by running the "build.sh" script. Ensure that you first fetch and build with this PR first if you want to test it out.

New field of type "custom" has been implemented.
This field wraps a collection of others fields to dynamically add or remove from the panel.

The custom field has the attributes of:
- minRow: Specify the minimum amount of rows to be shown. Default is 1.
- maxRow: Specify the maximum amount of rows that can be shown. Default is 5.
- variable: Captures the amount of rows that was added by the user
- conditionid: Specifies a conditions that must be satisfied to modify this field

The header labels for the custom fields are obtains by the tag of the field added, or the "id" field of the field added. Description tags take precedence.

The tags of the custom field must contain tags to specify the columns.
Withing the tags you specify existing fields as normal.
Currently there is no support for added a custom field into a custom field, with the exception that conditionids do not work of field specified inside the custom field.

Custom fields are supported for both GUI and Console installations, and should provide the appropriate summaries and auto.xml files. You may validate on a column by passing adding a validator within the column fields. You may also validate as normal by adding validators within an individual field.

Again it is advised to get a better feel by building the sample installer linked above, as it is hard to describe a new field with solely words. Let me know of any concerns of questions. Hope others will find this useful!