Revision: 9227
Author: [email protected]
Date: Mon Nov 15 10:31:51 2010
Log: A few small changes to BidiFormatter. Mainly, it now uses DirectionEstimator that can be modified instead of the constant estimating function of BidiUtils.

http://code.google.com/p/google-web-toolkit/source/detail?r=9227

Modified:
 /trunk/user/src/com/google/gwt/i18n/shared/BidiFormatter.java

=======================================
--- /trunk/user/src/com/google/gwt/i18n/shared/BidiFormatter.java Mon Oct 11 12:09:16 2010 +++ /trunk/user/src/com/google/gwt/i18n/shared/BidiFormatter.java Mon Nov 15 10:31:51 2010
@@ -211,6 +211,8 @@

   private boolean alwaysSpan;
   private Direction contextDir;
+  private DirectionEstimator directionEstimator =
+      WordCountDirectionEstimator.get();

   /**
    * @param contextDir The context direction
@@ -240,14 +242,14 @@
    * Returns "dir=ltr" or "dir=rtl", depending on {...@code str}'s estimated
    * direction, if it is not the same as the context direction. Otherwise,
    * returns the empty string.
-   *
+   *
    * @param str String whose direction is to be estimated
    * @param isHtml Whether {...@code str} is HTML / HTML-escaped
* @return "dir=rtl" for RTL text in non-RTL context; "dir=ltr" for LTR text
    *         in non-LTR context; else, the empty string.
    */
   public String dirAttr(String str, boolean isHtml) {
-    return knownDirAttr(BidiUtils.get().estimateDirection(str, isHtml));
+    return knownDirAttr(directionEstimator.estimateDirection(str, isHtml));
   }

   /**
@@ -266,7 +268,7 @@
    * @return {...@code str}'s estimated overall direction
    */
   public Direction estimateDirection(String str) {
-    return BidiUtils.get().estimateDirection(str);
+    return directionEstimator.estimateDirection(str);
   }

   /**
@@ -279,7 +281,7 @@
    * @return {...@code str}'s estimated overall direction
    */
   public Direction estimateDirection(String str, boolean isHtml) {
-    return BidiUtils.get().estimateDirection(str, isHtml);
+    return directionEstimator.estimateDirection(str, isHtml);
   }

   /**
@@ -296,6 +298,10 @@
   public Direction getContextDir() {
     return contextDir;
   }
+
+  public DirectionEstimator getDirectionEstimator() {
+    return directionEstimator;
+  }

   /**
    * Returns whether the context direction is RTL.
@@ -354,8 +360,12 @@
    */
   public String markAfter(String str, boolean isHtml) {
     str = BidiUtils.get().stripHtmlIfNeeded(str, isHtml);
- return dirResetIfNeeded(str, BidiUtils.get().estimateDirection(str), false,
-        true);
+    return dirResetIfNeeded(str, directionEstimator.estimateDirection(str),
+        false, true);
+  }
+
+ public void setDirectionEstimator(DirectionEstimator directionEstimator) {
+    this.directionEstimator = directionEstimator;
   }

   /**
@@ -407,12 +417,13 @@
    * @return Input string after applying the above processing.
    */
   public String spanWrap(String str, boolean isHtml, boolean dirReset) {
-    Direction dir = BidiUtils.get().estimateDirection(str, isHtml);
+    Direction dir = directionEstimator.estimateDirection(str, isHtml);
     return spanWrapWithKnownDir(dir, str, isHtml, dirReset);
   }

   /**
- * Like {...@link #spanWrapWithKnownDir(HasDirection.Direction, String, boolean, boolean)},
+   * Like
+ * {...@link #spanWrapWithKnownDir(com.google.gwt.i18n.client.HasDirection.Direction, String, boolean, boolean)},
    * but assumes {...@code isHtml} is false and {...@code dirReset} is true.
    *
    * @param dir {...@code str}'s direction
@@ -424,7 +435,8 @@
   }

   /**
- * Like {...@link #spanWrapWithKnownDir(HasDirection.Direction, String, boolean, boolean)},
+   * Like
+ * {...@link #spanWrapWithKnownDir(com.google.gwt.i18n.client.HasDirection.Direction, String, boolean, boolean)},
    * but assumes {...@code dirReset} is true.
    *
    * @param dir {...@code str}'s direction
@@ -543,12 +555,13 @@
    * @return Input string after applying the above processing.
    */
   public String unicodeWrap(String str, boolean isHtml, boolean dirReset) {
-    Direction dir = BidiUtils.get().estimateDirection(str, isHtml);
+    Direction dir = directionEstimator.estimateDirection(str, isHtml);
     return unicodeWrapWithKnownDir(dir, str, isHtml, dirReset);
   }

   /**
- * Like {...@link #unicodeWrapWithKnownDir(HasDirection.Direction, String, boolean, boolean)},
+   * Like
+ * {...@link #unicodeWrapWithKnownDir(com.google.gwt.i18n.client.HasDirection.Direction, String, boolean, boolean)},
    * but assumes {...@code isHtml} is false and {...@code dirReset} is true.
    *
    * @param dir {...@code str}'s direction
@@ -560,7 +573,8 @@
   }

   /**
- * Like {...@link #unicodeWrapWithKnownDir(HasDirection.Direction, String, boolean, boolean)},
+   * Like
+ * {...@link #unicodeWrapWithKnownDir(com.google.gwt.i18n.client.HasDirection.Direction, String, boolean, boolean)},
    * but assumes {...@code dirReset} is true.
    *
    * @param dir {...@code str}'s direction

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

Reply via email to