Greeting Page | Table Page | New Node Page | Form Page

This page shows a table that is populated through Java code.

The html for the table is:

<table id="sampleTable" border="1">
  <tr id="headingRow">
    <td><b>Number</b></td>
      <td><b>Name</b></td>
      </tr>
    <tr id="dataRow">
       <td id="cellOne">data cell one</td>
       <td id="cellTwo">data cell two</td>
  </tr>
</table>
            

Below is the actual table filled with data from a Java array:

Number Name
data cell one data cell two

The code from TableServlet.java that modifies the span is:

 
public TableHTML createPage() {
    String[]            names = {
        "Travis Shook", "Kelly Rose", "Lloyd Tabb", "David Toth",
        "Adam Menkes", "Randy Solton"
    };
    TableHTML           page = null;
    HTMLTableRowElement newRow = null;
    HTMLTableRowElement dataRow = null;
    HTMLTableElement    table = null;

    page = new TableHTML();
    table = page.getElementSampleTable();
    dataRow = page.getElementDataRow();
    clearTable(table, dataRow);
    for (int i = 0; i < names.length; i++) {
        newRow = createNewRow(dataRow, names[i], i);
        table.appendChild(newRow);
    }
    return page;
}

private HTMLTableRowElement createNewRow(HTMLTableRowElement dataRow,
                                         String newData, int i) {
    HTMLTableRowElement rowNew = null;
    Element             dataCell = null;

    rowNew = (HTMLTableRowElement) dataRow.cloneNode(true);
    dataCell = XMLCUtil.getRequiredElementById("cellOne", rowNew);
    XMLCUtil.getFirstText(dataCell).setData("" + (i + 1));
    dataCell = XMLCUtil.getRequiredElementById("cellTwo", rowNew);
    XMLCUtil.getFirstText(dataCell).setData(newData);
    return rowNew;
}

/**
 * Delete all table elements that do not have IDs and
 * also delete data row.
 */
protected void clearTable(Node node, HTMLTableRowElement dataRow) {
    if (node instanceof HTMLTableRowElement) {
        String id = ((HTMLTableRowElement) node).getId();

        if ((id == null) || (id.length() == 0) || (node == dataRow)) {
            node.getParentNode().removeChild(node);
        }
    } else {

        // Not a row, search children.
        Node child = node.getFirstChild();

        while (child != null) {
            Node next = child.getNextSibling();

            clearTable(child, dataRow);
            child = next;
        }
    }
}
            

Lutris | Enhydra

The Kelp Working Group