Many aspects of a web application's presentation layer are common to all views. For example, pages may be composed of header, footer, menu and content areas. To keep maintainability and consistency, reuse of view components is an important issue.
To achieve reuse, we split our views into templates, which are combined to pages at runtime. A template may include other templates and may be included by other templates. Thus, an actual page may be seen as a template tree.
Next, we need a flexible mechanism to specify how each page is to be composed of templates. In Calyxo terminology, this is done using panels:
- a panel is associated with a template
- panels may be nested to arbitrary depth
- a panel may pass parameters to its associated template
After you defined some panels, Calyxo can use them to compose and render the corresponding templates.