Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-674

[DUPLICATE] Allow action parameters to be defaulted based on the (change of) value of other parameters.

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • viewer-wicket-1.3.1, core-1.3.0
    • 2.0.0-M3
    • Core, Viewer Wicket
    • 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))

      { <<<<<< THIS LOOKS SIMILAR TO WHAT NEEDS TO BE DONE... target.add(paramPanel); }

      }
      }
      } catch(ConcurrencyException ex) {

      Attachments

        Activity

          People

            danhaywood Daniel Keir Haywood
            danhaywood Daniel Keir Haywood
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: