Interface StringTemplateFunctions


public interface StringTemplateFunctions

String Template Functions

Template functions provide a flexible way to generate dynamic text, such as AI prompts, email bodies, or custom messages shown in the UI. Templates are plain JavaScript functions that take a state object plus a shared support object sc, and optionally j, which is the default JSON formatter function. sc and j are described below.

Templates are registered on a class using Class.registerTemplates() and later rendered with Class.render().

Defining and using a template

Define templates on a class:
     OrderViewer.registerTemplates({
         orderSummaryHTML: function (s, sc, j) {
             return `<b>Order #${s.orderId}</b><br>
  Customer: ${sc.escapeHTML(sc.trim(s.customerName))}<br>
  Status: ${s.status}<br>
  Total: ${sc.toUSCurrencyString(s.totalAmount, 2)}<br>
  `;
         },
 
         lineItemsHTML: function (s, sc, j) {
             return sc.if(s.items && s.items.length > 0,
                 "Line Items:<br>" + sc.for(s.items, function (item) {
                     return `&nbsp;- ${item.quantity} x ${sc.escapeHTML(item.description)} (${sc.NumberUtil.toUSCurrencyString(item.price, 2)})<br>`;
                 }),
                 "No items on this order."
             );
         }
     });
  

Render a template from an instance:

     const orderSummaryHTML = orderViewer.render("orderSummaryHTML", {
         orderId: 10234,
         customerName: "  Smith, John  ",
         status: "Pending",
         totalAmount: 259.99
     });
 
     const orderLineItemsHTML = orderViewer.render("lineItemsHTML", {
         items: [
             { quantity: 2, description: "Widget A", price: 49.95 },
             { quantity: 1, description: "Service Plan", price: 160.09 }
         ]
     });
  

Template Function Support Object (sc)

Each template receives an sc parameter providing shared utilities:
  • sc.json(value, [pretty]): Encode to JSON using Smart GWT's JSONEncoder. If pretty is true, the output is formatted with indentation.
  • sc.if(condition, thenVal, elseVal): Inline conditional expression returning thenVal if true, otherwise elseVal.
  • sc.for(array, fn): Map an array with the given function and join the results into a single string.
  • sc.trim(value): Trim leading and trailing whitespace from the given value converted to a string. If the value is null, returns an empty string.
  • sc.escapeHTML(value): Escape HTML in an arbitrary value converted to a string. If the value is null, returns an empty string.

The sc object also inherits from the global com.smartgwt.client.util.isc object (through prototypal inheritance), so all Smart GWT APIs are available (for example, sc.NumberUtil references the NumberUtil class).