Reviewers: hermes, rjrjr,

Description:
Adds setTagName to PotentialElement, so that PotentialElement instances
can be passed to the as() method of Element subclasses (it's nicer than
blindly calling .cast(), I think). Let me know if this looks clearner to
you guys.


Please review this at http://gwt-code-reviews.appspot.com/1451810/

Affected files:
  M user/src/com/google/gwt/user/client/ui/PotentialElement.java
  M user/src/com/google/gwt/user/client/ui/RenderablePanel.java


Index: user/src/com/google/gwt/user/client/ui/PotentialElement.java
===================================================================
--- user/src/com/google/gwt/user/client/ui/PotentialElement.java (revision 10284) +++ user/src/com/google/gwt/user/client/ui/PotentialElement.java (working copy)
@@ -102,6 +102,15 @@
   }

   /**
+   * Setter for the element's tag name. This is useful mostly so that the
+ * PotentialElement can pass sanity checks as specific subclasses of Element.
+   */
+  public final native PotentialElement setTagName(String tag) /*-{
+    this.tagName = tag;
+    return this;
+  }-*/;
+
+  /**
    * Calls the <code>__gwt_resolve</code> method on the underlying
* JavaScript object if it exists. On objects created via {@link #build}, this * method is a call to the {@link UIObject#resolvePotentialElement} method
Index: user/src/com/google/gwt/user/client/ui/RenderablePanel.java
===================================================================
--- user/src/com/google/gwt/user/client/ui/RenderablePanel.java (revision 10284) +++ user/src/com/google/gwt/user/client/ui/RenderablePanel.java (working copy)
@@ -36,6 +36,8 @@

   private static Element hiddenDiv;

+  private static String TAG_NAME = "div";
+
   interface HTMLTemplates extends SafeHtmlTemplates {
     @Template("<div id=\"{0}\">{1}</div>")
     SafeHtml renderWithId(String id, SafeHtml innerHtml);
@@ -86,7 +88,7 @@
    */
   public RenderablePanel(SafeHtml safeHtml) {
     this.html = safeHtml;
-    setElement(PotentialElement.build(this));
+    setElement(PotentialElement.build(this).setTagName(TAG_NAME));
   }

   /**


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to