1 16 package com.google.gwt.user.client.ui; 17 18 import com.google.gwt.user.client.DOM; 19 import com.google.gwt.user.client.Element; 20 21 import java.util.NoSuchElementException ; 22 23 27 public class HTMLPanel extends ComplexPanel { 28 29 private static int sUid; 30 31 38 public static String createUniqueId() { 39 return "HTMLPanel_" + (++sUid); 40 } 41 42 48 public HTMLPanel(String html) { 49 setElement(DOM.createDiv()); 50 DOM.setInnerHTML(getElement(), html); 51 } 52 53 60 public void add(Widget widget, String id) { 61 Element elem = getElementById(getElement(), id); 62 if (elem == null) { 63 throw new NoSuchElementException (id); 64 } 65 66 super.add(widget, elem); 67 } 68 69 74 private Element getElementById(Element elem, String id) { 75 String elemId = DOM.getElementProperty(elem, "id"); 76 if ((elemId != null) && elemId.equals(id)) { 77 return elem; 78 } 79 80 Element child = DOM.getFirstChild(elem); 81 while (child != null) { 82 Element ret = getElementById(child, id); 83 if (ret != null) { 84 return ret; 85 } 86 child = DOM.getNextSibling(child); 87 } 88 89 return null; 90 } 91 } 92 | Popular Tags |