Dan Haywood created ISIS-478:
--------------------------------
Summary: Provide conditional choices, defaults and validation
between action parameters
Key: ISIS-478
URL: https://issues.apache.org/jira/browse/ISIS-478
Project: Isis
Issue Type: New Feature
Components: Core, Viewer: Wicket
Affects Versions: core-1.2.0, viewer-wicket-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Fix For: viewer-wicket-1.3.0, core-1.3.0
For example, suppose there is an action to specify an address, where we specify
the country, the state and the postcode. We want the state to have choices and
a default dependent on the country, and we want the postcode to be validated
according to the rules of that country.
public Address enterAddress(Country c, State st, @Named("Postcode") String
postcode) { ... }
Any dependent parameter must supply a param-specific validate [this is a new
method prefix]:
public String validate1EnterAddress(Country c, State st, String postcode) {
... }
public String validate2EnterAddress(Country c, State st, String postcode) {
... }
The choices and defaults for State also accept all param types preceding:
public List<State> choices1EnterAddress(Country c) { ... }
public State default1EnterAddress(Country c) { ... }
When the user enters a value for the country, this is passed to these methods.
If the user tabs directly to the State param without entering the country, then
these would return empty lists/value.
If the user enters a value for the country, then corresponding entries for the
state and postcode, and then tabs back to the country and enters a different
value, then the validateNXxx methods are called (for all N > 0, country being
param 0). If the validate methods indicate their current value is invalid,
then the values are set to null or to the recomputed default (if a default
method is available).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira