<%@ page import="cb.jdynamite.*" %>
<jsp:useBean id="dynamiTe" scope="request" class="cb.jdynamite.JDynamiTe">
<%
    // 1) Use "setInput" method to define (and analyse) the input template file.
    try {
        dynamiTe.setInput(application.getRealPath("cbtemplate/testTemplateV1_1.html"));
    }
    catch (Exception e) {
        System.err.println(e.getMessage());
    }
%>
</jsp:useBean>

<%
    /*** possibly see the template document structure (for debug)
    String totalDef = dynamiTe.getDefinition(0);
    System.err.println("\n-----\n" + totalDef + "\n-----\n");
    ***/

    // 2) Use "setVariable" method to give a value to variables.
    dynamiTe.setVariable("THE_TITLE", "\"Java Dynamic Template\" test");

    // First table
    for (int i = 0; i < 6; i++) {
        dynamiTe.setVariable("COL1", "ligne_" + i + ",col_1");
        dynamiTe.setVariable("COL2", "ligne_" + i + ",col_2");
        // 3) Use "parseDynElem" to build a Dynamic Element
        dynamiTe.parseDynElem("mySimpleRow"); // add a row
        // "parseDynElem" appends the Dynamic Element definition to its current value
    }

    // A message
    java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("EEEEEE hh'h'mm'm'ss's'");
    String dateString = formatter.format(new java.util.Date());
    dynamiTe.setVariable("A_MESSAGE", "Hello Duke, " + dateString);
 
    // An image list
    for (int px = 0; px < 3; px++) {
        dynamiTe.setVariable("PICTURE", "images/duke" + px + ".gif");
        dynamiTe.parseDynElem("somePictures");
    }

    // Second table with nested Dynamic Element
    for (int row = 0; row < 5; row++) {
        // first group of columns
        // 4) Use "setDynElemValue" to set or reset the value of a Dynamic Element
        dynamiTe.setDynElemValue("colX", ""); // reset for each row
        for (int col = 0; col < 3; col++) {
            dynamiTe.setVariable("VALUE_X", "line_" + row + ",col_" + col);
            dynamiTe.parseDynElem("colX"); // add a column
        }
        // second group of columns
        dynamiTe.setDynElemValue("colY", ""); // reset for each row
        for (int col = 3; col < 5; col++) {
            dynamiTe.setVariable("VALUE_Y", "line_" + row + ",col(BIS)_" + col);
            dynamiTe.parseDynElem("colY"); // add a column
        }
        dynamiTe.parseDynElem("myBigRow"); // add a row
    }

    // 5) Use "parse" to finaly get the value of your Dynamic Template Document
    dynamiTe.parse();

    out.println(dynamiTe.toString()); // send HTML page
%>