VelocityComponent: This is a “meta-add-on”, a library for add-on developers. This enhances the Element API and its executeJs method with the powers of the Velocity template engine.
This helper library is intended to be used only temporarily, until StringTemplate based API is ready in both Java itself and Vaadin.
Check the usage from the GitHub projects src/test directory. A real world usage example is available at MapLibre GL integration.
Compared to standard getElement().executeJs() style API, this library provides the following benefits:
- Parameter values are more readable in the JS snippets, e.g. ‘$foo’ instead of ‘$0’
- Possibility to pass JS objects and/or JSON to JS snippets, without transferring as string (less code, better performance).
- Velocity template based JS code generation in general, e.g. generate JS code using loops and conditionals