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