...
From a high level the Reporting Web Viewer relies on a few different pieces:
- Pentaho Prompting ProjectAPI: Used to create the report prompt
- JSTextFormatter:
java.text.Formatter
-compatible GWT module with a clean JavaScript API. Resides in the common Pentaho GWT Widgets project and provides an easy way to convert number and data parameter values to/from the Pentaho Reporting Engine format and the display format the user expects to see. - JQuery
- Dojo (various custom widgets)
- RequireJS and CommonJS Advanced Asynchronous Module Definitions (AMD) API: http://requirejs.org/docs/whyamd.html
A large majority of the code is pure JavaScript on the client with a small number of Java components on the server reponsible for rendering the report and generating suitable Parameter XML to define the client-side prompt. The entire reporting prompt is generated and rendered on the client side and can be manipulated at every step of the way.
...