It would be nice to be able to dynamically add or remove fields from a UserInputPanel.
We could have a row of fields that can be added or removed on the click of a button.
All functionality of existing fields would be re-used.
We could specify the minimum and maximum amount of rows that are possible to be dynamically located.
> Default minRow = 1
> Default maxRow = 5
We could validate based on a given column.
For example we may want all values in a specific column to be unique.
Custom fields can take in a condition id just like any other fields.
Although there is currently no support for condition id for fields specified within the custom field.
The auto.xml for custom fields should generate the auto.xml as though the fields defined in the custom field were defined as regular.
(Please try sample installer below and create a auto.xml to be understand)
Console installation displays custom fields as though displaying the individual fields as normal.
But at the end of each row we ask if the user wants to possibly add another row, continue or redisplay.
If the user chooses to redisplay at this point we redisplay for only the current row.
If the user chooses to continue regular end prompt is shown.
If redisplay is choosen at this point we display the custom field from the beginning.
Summarizing a custom field will show the attributes with a number pre-appended.
This will be better to understand by creating and running my sample installer below.
It may be easier to understand the custom field by looking at a sample specification.
To have a first hand experience please fetch and build with my PR.
Next clone https://github.com/mtjandra/SampleInstaller, checkout "customFields", and run the "build.sh" to build the installer.
If you pick the two or more creatures of the same species you will get a warning as it does not pass the UniqueColumn validation put in place.
Check out the specification files and feel free to play around with it.
Let me know of any questions or concerns.
A custom field maximizing code re-usability by using the existing fields.
I don't believe I've modified any of the existing fields.
The custom field is a great use case when the user can specify multiple attributes, with the constrain of other fields being necessary.