package com.google.gwt.reference.microbenchmark.client; import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.TableElement; import com.google.gwt.dom.client.TableSectionElement; /** * IE implementation of Util. */ class UtilImplTrident extends UtilImpl { private final com.google.gwt.user.client.Element tmpElem = Document.get().createDivElement() .cast(); /** * IE doesn't support innerHTML on tbody, nor does it support removing or * replacing a tbody. The only solution is to remove and replace the rows * themselves. */ @Override void replaceTableBodyRows(TableSectionElement tbody, String rowHtml) { // Remove all children. Element child = tbody.getFirstChildElement(); while (child != null) { Element next = child.getNextSiblingElement(); tbody.removeChild(child); child = next; } // Convert the row html to child elements. tmpElem.setInnerHTML("<table><tbody>" + rowHtml + "</tbody></table>"); TableElement tableElem = tmpElem.getFirstChildElement().cast(); TableSectionElement newRows = tableElem.getTBodies().getItem(0); // Add new child elements. child = newRows.getFirstChildElement(); while (child != null) { Element next = child.getNextSiblingElement(); tbody.appendChild(child); child = next; } } }