1 22 package kelp.webapp.presentation; 23 24 import org.enhydra.xml.xmlc.XMLCUtil; 26 27 import org.w3c.dom.Element ; 29 import org.w3c.dom.Node ; 30 import org.w3c.dom.html.HTMLTableElement; 31 import org.w3c.dom.html.HTMLTableRowElement; 32 33 import javax.servlet.ServletException ; 35 import javax.servlet.ServletOutputStream ; 36 import javax.servlet.http.HttpServlet ; 37 import javax.servlet.http.HttpServletRequest ; 38 import javax.servlet.http.HttpServletResponse ; 39 40 import java.io.IOException ; 42 43 49 public class TableServlet extends HttpServlet { 50 public void doGet(HttpServletRequest request, 51 HttpServletResponse response) throws ServletException , 52 IOException { 53 54 TableHTML page = null; 55 ServletOutputStream out; 56 byte[] buffer; 57 58 page = createPage(); 59 buffer = page.toDocument().getBytes(); 60 response.setContentType( "text/html" ); 61 response.setContentLength( buffer.length ); 62 out = response.getOutputStream(); 63 out.write(buffer); 64 out.flush(); 65 response.flushBuffer(); 66 67 } 68 69 public TableHTML createPage() { 70 String [] names = { 71 "Travis Shook", "Kelly Rose", "Lloyd Tabb", "David Toth", 72 "Adam Menkes", "Randy Solton" 73 }; 74 TableHTML page = null; 75 HTMLTableRowElement newRow = null; 76 HTMLTableRowElement dataRow = null; 77 HTMLTableElement table = null; 78 79 page = new TableHTML(); 80 table = page.getElementSampleTable(); 81 dataRow = page.getElementDataRow(); 82 clearTable(table, dataRow); 83 for (int i = 0; i < names.length; i++) { 84 newRow = createNewRow(dataRow, names[i], i); 85 table.appendChild(newRow); 86 } 87 return page; 88 } 89 90 private HTMLTableRowElement createNewRow(HTMLTableRowElement dataRow, 91 String newData, int i) { 92 HTMLTableRowElement rowNew = null; 93 Element dataCell = null; 94 95 rowNew = (HTMLTableRowElement) dataRow.cloneNode(true); 96 dataCell = XMLCUtil.getRequiredElementById("cellOne", rowNew); 97 XMLCUtil.getFirstText(dataCell).setData("" + (i + 1)); 98 dataCell = XMLCUtil.getRequiredElementById("cellTwo", rowNew); 99 XMLCUtil.getFirstText(dataCell).setData(newData); 100 return rowNew; 101 } 102 103 107 protected void clearTable(Node node, HTMLTableRowElement dataRow) { 108 if (node instanceof HTMLTableRowElement) { 109 String id = ((HTMLTableRowElement) node).getId(); 110 111 if ((id == null) || (id.length() == 0) || (node == dataRow)) { 112 node.getParentNode().removeChild(node); 113 } 114 } else { 115 116 Node child = node.getFirstChild(); 118 119 while (child != null) { 120 Node next = child.getNextSibling(); 121 122 clearTable(child, dataRow); 123 child = next; 124 } 125 } 126 } 127 128 } 129 | Popular Tags |