HTML Templates

A WTemplate can be used to format a number of widgets within an XHTML fragment. This is especially useful as an alternative to a container widget if you want to use CSS for style and layout, and when the contents are relatively static: for each placeholder you must bind a widget or a string (which can be empty).

In a template text, a ${var} indicates a placeholder named var which is substituted with a widget or string that is bound to that variable. Other syntactical constructs are:

${var arg1 arg2}
${<condition>} ... ${</condition>}
${fun:arg1 arg2}

The template text can be provided by a WString and is thus easily localized and internationalized using a message resource bundle.

Below is an example of a template text, illustrating the use of placeholders for a line edit and two buttons.

<div class="form">
<label>Please enter your name: ${name-edit}</label>
${save-button} ${cancel-button}

This template text, made available as a string in a resource bundle with the id "WTemplate-example", is used by the following example:


  void Template() {
    WTemplate t = new WTemplate("WTemplate-example"));
    t.bindWidget("name-edit", new WLineEdit());
    t.bindWidget("save-button", new WPushButton("Save"));
    t.bindWidget("cancel-button", new WPushButton("Cancel"));

If you want to simply display an HTML fragment without binding any widgets within it, then the WText widget is probably what you are looking for.