ICEfaces
  1. ICEfaces
  2. ICE-6978

Augment JSONBuilder to write whole function calls

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.2
    • Fix Version/s: 3.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ACE
    • Assignee Priority:
      P1

      Description

      Alter how javascript parameters are created, from:
         String params = "'" + clientId + "'," +
         JSONBuilder.create().
         beginMap().
             entry("menu", clientId+"_buttonselect").
         endMap().toString()
         + "," +
         JSONBuilder.create().
         beginMap().
             entry("ariaEnabled", EnvUtils.isAriaEnabled(facesContext)).
         endMap().toString();
         String finalScript = "ice.component.menubutton.updateProperties(" + params + ");";

       to something like:

         String finalScript = JSONBuilder.create().
         beginFunction("ice.component.menubutton.updateProperties").
         entry(clientId).
         beginMap().
             entry("menu", clientId+"_buttonselect").
         endMap().
         comma().
         beginMap().
             entry("ariaEnabled", EnvUtils.isAriaEnabled(facesContext)).
         endMap().
         endFunction().semicolon().toString();


      There will be less intermediary Object creation, the code will be cleaner, and any other parameters to the function will be properly escaped. Have to add the appropriate beginFunction(-) / endFunction(-) methods, and test the implementation on a component renderer.

        Issue Links

          Activity

            People

            • Assignee:
              Mark Collette
              Reporter:
              Mark Collette
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: