Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
viewer-wicket-1.3.1, core-1.3.0
-
None
Description
For example:
public void foo(
Charge charge,
BigDecimal amount,
String description) {
}
public String default2Foo(Charge charge, BigDecimal amount) {
return charge != null && amount != null? amount + " " charge.getDescription() : null;
}
Here, the value of the 'description' parameter is defaulted from that of both the preceding 'charge' and 'amount' parameters. Changing either should cause the default value for the 'description' to be recomputed.
This is analogous to the way that choices are recomputed for category/subcategory, see ActionParametersFormPanel:
@Override
public void onUpdate(AjaxRequestTarget target, ScalarModelProvider provider) {
final ActionModel actionModel = getActionModel();
final ObjectAdapter[] pendingArguments = actionModel.getArgumentsAsArray();
try {
final ObjectAction action = actionModel.getActionMemento().getAction();
final int numParams = action.getParameterCount();
for (int i = 0; i < numParams; i++) {
final ScalarPanelAbstract paramPanel = paramPanels.get;
if(paramPanel != null) {
// this could throw a ConcurrencyException as we may have to reload the
// object adapter of the action in order to compute the choices
// (and that object adapter might have changed)
if(paramPanel.updateChoices(pendingArguments))
}
}
} catch(ConcurrencyException ex) {