Revision: 7693
Author: [email protected]
Date: Wed Mar 10 06:34:13 2010
Log: Used elem.textContent to set inner text on all standard browsers. This is more efficient than the default method we implemented.
http://gwt-code-reviews.appspot.com/160805/show

Review by: [email protected]
http://code.google.com/p/google-web-toolkit/source/detail?r=7693

Modified:
 /trunk/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
 /trunk/user/src/com/google/gwt/dom/client/DOMImplSafari.java
 /trunk/user/src/com/google/gwt/dom/client/DOMImplStandard.java

=======================================
--- /trunk/user/src/com/google/gwt/dom/client/DOMImplMozilla.java Wed Mar 10 05:44:28 2010 +++ /trunk/user/src/com/google/gwt/dom/client/DOMImplMozilla.java Wed Mar 10 06:34:13 2010
@@ -98,11 +98,6 @@
     return parseInt(style.marginTop) + parseInt(style.borderTopWidth);
   }-*/;

-  @Override
-  public native String getInnerText(Element elem) /*-{
-    return elem.textContent;
-  }-*/;
-
   @Override
   public native int getNodeType(Node node) /*-{
     try {
@@ -134,11 +129,6 @@
return (parent === child) || !!(parent.compareDocumentPosition(child) & 16);
   }-*/;

-  @Override
-  public native void setInnerText(Element elem, String text) /*-{
-    elem.textContent = text || '';
-  }-*/;
-
   @Override
   public void setScrollLeft(Element elem, int left) {
     if (!isGecko19() && isRTL(elem)) {
@@ -227,3 +217,4 @@
     return style.direction == 'rtl';
   }-*/;
 }
+
=======================================
--- /trunk/user/src/com/google/gwt/dom/client/DOMImplSafari.java Wed Mar 10 05:44:28 2010 +++ /trunk/user/src/com/google/gwt/dom/client/DOMImplSafari.java Wed Mar 10 06:34:13 2010
@@ -213,20 +213,6 @@
         : getAbsoluteTopUsingOffsets(elem);
   }

-  /**
-   * textContent is used over innerText for two reasons:
-   *
-   * 1 - It is consistent with DOMImplMozilla. textContent does not convert
-   * <code>&lt;br&gtp;</code>'s to new lines in WebKit.
-   *
- * 2 - textContent is faster on retreival because WebKit does not recalculate
-   * styles as it does for innerText.
-   */
-  @Override
-  public native String getInnerText(Element node) /*-{
-    return node.textContent;
-  }-*/;
-
   @Override
   public int getScrollLeft(Document doc) {
// Safari always applies document scrolling to the body element, even in
@@ -294,14 +280,6 @@
     select.removeChild(select.children[index]);
   }-*/;

-  /*
-   * See getInnerText for why textContent is used instead of innerText.
-   */
-  @Override
-  public native void setInnerText(Element elem, String text) /*-{
-    elem.textContent = text || '';
-  }-*/;
-
   @Override
   public void setScrollLeft(Document doc, int left) {
// Safari always applies document scrolling to the body element, even in
@@ -344,3 +322,4 @@
return elem.ownerDocument.defaultView.getComputedStyle(elem, '').direction == 'rtl';
   }-*/;
 }
+
=======================================
--- /trunk/user/src/com/google/gwt/dom/client/DOMImplStandard.java Wed Mar 10 05:44:28 2010 +++ /trunk/user/src/com/google/gwt/dom/client/DOMImplStandard.java Wed Mar 10 06:34:13 2010
@@ -107,8 +107,28 @@
     return evt.toString();
   }-*/;

+  /*
+   * textContent is used over innerText for two reasons:
+   * 1 - It is consistent across browsers. textContent
+   *     does not convert <br>'s to new lines.
+   * 2 - textContent is faster on retreival because WebKit
+   *     does not recalculate styles as it does for innerText.
+   */
+  @Override
+  public native String getInnerText(Element elem) /*-{
+    return elem.textContent;
+  }-*/;
+
   @Override
   public native boolean isOrHasChild(Node parent, Node child) /*-{
     return parent.contains(child);
   }-*/;
-}
+
+  /*
+   * See getInnerText for why textContent is used instead of innerText.
+   */
+  @Override
+  public native void setInnerText(Element elem, String text) /*-{
+    elem.textContent = text || '';
+  }-*/;
+}

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

Reply via email to