Revision: 8347
Author: [email protected]
Date: Fri Jul  2 04:56:18 2010
Log: Adds parser for TextAlignConstant, which accepts both "friendly" names
and the UGLY_ONES used in code. Horiz and Vert constant parsers
retrofitted with the same friendliness.

Patch by [email protected]
Review by [email protected]

http://gwt-code-reviews.appspot.com/612803

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

Added:
/trunk/user/src/com/google/gwt/uibinder/attributeparsers/TextAlignConstantParser.java /trunk/user/test/com/google/gwt/uibinder/attributeparsers/HorizontalAlignmentConstantParserTest.java /trunk/user/test/com/google/gwt/uibinder/attributeparsers/TextAlignConstantParserTest.java /trunk/user/test/com/google/gwt/uibinder/attributeparsers/VerticalAlignmentConstantParserTest.java
Modified:
/trunk/user/src/com/google/gwt/uibinder/attributeparsers/AttributeParsers.java /trunk/user/src/com/google/gwt/uibinder/attributeparsers/HorizontalAlignmentConstantParser.java /trunk/user/src/com/google/gwt/uibinder/attributeparsers/LengthAttributeParser.java /trunk/user/src/com/google/gwt/uibinder/attributeparsers/VerticalAlignmentConstantParser.java
 /trunk/user/src/com/google/gwt/user/client/ui/HasHorizontalAlignment.java
 /trunk/user/src/com/google/gwt/user/client/ui/HasVerticalAlignment.java
 /trunk/user/src/com/google/gwt/user/client/ui/ValueBoxBase.java
 /trunk/user/test/com/google/gwt/uibinder/UiBinderJreSuite.java
 /trunk/user/test/com/google/gwt/uibinder/test/UiJavaResources.java

=======================================
--- /dev/null
+++ /trunk/user/src/com/google/gwt/uibinder/attributeparsers/TextAlignConstantParser.java Fri Jul 2 04:56:18 2010
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2007 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.uibinder.attributeparsers;
+
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.JType;
+import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.user.client.ui.TextBoxBase;
+
+import java.util.HashMap;
+
+/**
+ * Parses a {...@link com.google.gwt.user.client.ui.TextBoxBase.TextAlignConstant}.
+ */
+class TextAlignConstantParser extends StrictAttributeParser {
+
+  private static final String PREFIX = TextBoxBase.class.getCanonicalName()
+      + ".ALIGN_";
+ private static final HashMap<String, String> values = new HashMap<String, String>();
+
+  static {
+    values.put("LEFT", PREFIX + "LEFT");
+    values.put("CENTER", PREFIX + "CENTER");
+    values.put("RIGHT", PREFIX + "RIGHT");
+    values.put("JUSTIFY", PREFIX + "JUSTIFY");
+    values.put("ALIGN_LEFT", PREFIX + "LEFT");
+    values.put("ALIGN_CENTER", PREFIX + "CENTER");
+    values.put("ALIGN_RIGHT", PREFIX + "RIGHT");
+    values.put("ALIGN_JUSTIFY", PREFIX + "JUSTIFY");
+  }
+
+  TextAlignConstantParser(FieldReferenceConverter converter, JType type,
+      MortalLogger logger) {
+    super(converter, type, logger);
+  }
+
+  @Override
+  public String parse(String value) throws UnableToCompleteException {
+    String translated = values.get(value.toUpperCase());
+    if (translated != null) {
+      return translated;
+    }
+    return super.parse(value);
+  }
+}
=======================================
--- /dev/null
+++ /trunk/user/test/com/google/gwt/uibinder/attributeparsers/HorizontalAlignmentConstantParserTest.java Fri Jul 2 04:56:18 2010
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.uibinder.attributeparsers;
+
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dev.javac.CompilationState;
+import com.google.gwt.dev.javac.CompilationStateBuilder;
+import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.uibinder.test.UiJavaResources;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment.HorizontalAlignmentConstant;
+
+import junit.framework.TestCase;
+
+/**
+ * Test for {...@link HorizontalAlignmentConstantParser}.
+ */
+public class HorizontalAlignmentConstantParserTest extends TestCase {
+ private static final String HHA = HasHorizontalAlignment.class.getCanonicalName(); + private static final String HAC = HorizontalAlignmentConstant.class.getCanonicalName();
+  private HorizontalAlignmentConstantParser parser;
+
+  @Override
+  public void setUp() throws Exception {
+    super.setUp();
+ CompilationState state = CompilationStateBuilder.buildFrom(TreeLogger.NULL,
+        UiJavaResources.getUiResources());
+    TypeOracle types = state.getTypeOracle();
+ parser = new HorizontalAlignmentConstantParser(new FieldReferenceConverter(
+        null), types.parse(HAC), MortalLogger.NULL);
+  }
+
+  public void testFriendlyNames() throws UnableToCompleteException {
+    assertEquals(HHA + ".ALIGN_LEFT", parser.parse("left"));
+    assertEquals(HHA + ".ALIGN_CENTER", parser.parse("center"));
+    assertEquals(HHA + ".ALIGN_RIGHT", parser.parse("right"));
+    // capitalized
+    assertEquals(HHA + ".ALIGN_LEFT", parser.parse("Left"));
+    assertEquals(HHA + ".ALIGN_CENTER", parser.parse("Center"));
+    assertEquals(HHA + ".ALIGN_RIGHT", parser.parse("Right"));
+  }
+
+  public void testUglyNames() throws UnableToCompleteException {
+    assertEquals(HHA + ".ALIGN_LEFT", parser.parse("ALIGN_LEFT"));
+    assertEquals(HHA + ".ALIGN_CENTER", parser.parse("ALIGN_CENTER"));
+    assertEquals(HHA + ".ALIGN_RIGHT", parser.parse("ALIGN_RIGHT"));
+  }
+
+  public void testBad() {
+    try {
+      parser.parse("fnord");
+      fail("Expected UnableToCompleteException");
+    } catch (UnableToCompleteException e) {
+      /* pass */
+    }
+  }
+
+  public void testFieldRef() throws UnableToCompleteException {
+    assertEquals("foo.bar().baz()", parser.parse("{foo.bar.baz}"));
+  }
+}
=======================================
--- /dev/null
+++ /trunk/user/test/com/google/gwt/uibinder/attributeparsers/TextAlignConstantParserTest.java Fri Jul 2 04:56:18 2010
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.uibinder.attributeparsers;
+
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dev.javac.CompilationState;
+import com.google.gwt.dev.javac.CompilationStateBuilder;
+import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.uibinder.test.UiJavaResources;
+import com.google.gwt.user.client.ui.TextBoxBase;
+import com.google.gwt.user.client.ui.TextBoxBase.TextAlignConstant;
+
+import junit.framework.TestCase;
+
+/**
+ * Test for {...@link TextAlignConstantParser}.
+ */
+public class TextAlignConstantParserTest extends TestCase {
+  private static final String TBB = TextBoxBase.class.getCanonicalName();
+ private static final String TAC = TextAlignConstant.class.getCanonicalName();
+  private TextAlignConstantParser parser;
+
+  @Override
+  public void setUp() throws Exception {
+    super.setUp();
+ CompilationState state = CompilationStateBuilder.buildFrom(TreeLogger.NULL,
+        UiJavaResources.getUiResources());
+    TypeOracle types = state.getTypeOracle();
+    parser = new TextAlignConstantParser(new FieldReferenceConverter(null),
+        types.parse(TAC), MortalLogger.NULL);
+  }
+
+  public void testFriendlyNames() throws UnableToCompleteException {
+    assertEquals(TBB + ".ALIGN_LEFT", parser.parse("left"));
+    assertEquals(TBB + ".ALIGN_CENTER", parser.parse("center"));
+    assertEquals(TBB + ".ALIGN_RIGHT", parser.parse("right"));
+    assertEquals(TBB + ".ALIGN_JUSTIFY", parser.parse("justify"));
+    // capitalized
+    assertEquals(TBB + ".ALIGN_LEFT", parser.parse("Left"));
+    assertEquals(TBB + ".ALIGN_CENTER", parser.parse("Center"));
+    assertEquals(TBB + ".ALIGN_RIGHT", parser.parse("Right"));
+    assertEquals(TBB + ".ALIGN_JUSTIFY", parser.parse("Justify"));
+  }
+
+  public void testUglyNames() throws UnableToCompleteException {
+    assertEquals(TBB + ".ALIGN_LEFT", parser.parse("ALIGN_LEFT"));
+    assertEquals(TBB + ".ALIGN_CENTER", parser.parse("ALIGN_CENTER"));
+    assertEquals(TBB + ".ALIGN_RIGHT", parser.parse("ALIGN_RIGHT"));
+    assertEquals(TBB + ".ALIGN_JUSTIFY", parser.parse("ALIGN_JUSTIFY"));
+  }
+
+  public void testBad() {
+    try {
+      parser.parse("fnord");
+      fail("Expected UnableToCompleteException");
+    } catch (UnableToCompleteException e) {
+      /* pass */
+    }
+  }
+
+  public void testFieldRef() throws UnableToCompleteException {
+    assertEquals("foo.bar().baz()", parser.parse("{foo.bar.baz}"));
+  }
+}
=======================================
--- /dev/null
+++ /trunk/user/test/com/google/gwt/uibinder/attributeparsers/VerticalAlignmentConstantParserTest.java Fri Jul 2 04:56:18 2010
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.uibinder.attributeparsers;
+
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dev.javac.CompilationState;
+import com.google.gwt.dev.javac.CompilationStateBuilder;
+import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.uibinder.test.UiJavaResources;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant;
+
+import junit.framework.TestCase;
+
+/**
+ * Test for {...@link VerticalAlignmentConstantParser}.
+ */
+public class VerticalAlignmentConstantParserTest extends TestCase {
+ private static final String HVA = HasVerticalAlignment.class.getCanonicalName(); + private static final String VAC = VerticalAlignmentConstant.class.getCanonicalName();
+  private VerticalAlignmentConstantParser parser;
+
+  @Override
+  public void setUp() throws Exception {
+    super.setUp();
+ CompilationState state = CompilationStateBuilder.buildFrom(TreeLogger.NULL,
+        UiJavaResources.getUiResources());
+    TypeOracle types = state.getTypeOracle();
+ parser = new VerticalAlignmentConstantParser(new FieldReferenceConverter(
+        null), types.parse(VAC), MortalLogger.NULL);
+  }
+
+  public void testFriendlyNames() throws UnableToCompleteException {
+    assertEquals(HVA + ".ALIGN_TOP", parser.parse("top"));
+    assertEquals(HVA + ".ALIGN_MIDDLE", parser.parse("middle"));
+    assertEquals(HVA + ".ALIGN_BOTTOM", parser.parse("bottom"));
+    // capitalized
+    assertEquals(HVA + ".ALIGN_TOP", parser.parse("Top"));
+    assertEquals(HVA + ".ALIGN_MIDDLE", parser.parse("Middle"));
+    assertEquals(HVA + ".ALIGN_BOTTOM", parser.parse("Bottom"));
+  }
+
+  public void testUglyNames() throws UnableToCompleteException {
+    assertEquals(HVA + ".ALIGN_TOP", parser.parse("ALIGN_TOP"));
+    assertEquals(HVA + ".ALIGN_MIDDLE", parser.parse("ALIGN_MIDDLE"));
+    assertEquals(HVA + ".ALIGN_BOTTOM", parser.parse("ALIGN_BOTTOM"));
+  }
+
+  public void testBad() {
+    try {
+      parser.parse("fnord");
+      fail("Expected UnableToCompleteException");
+    } catch (UnableToCompleteException e) {
+      /* pass */
+    }
+  }
+
+  public void testFieldRef() throws UnableToCompleteException {
+    assertEquals("foo.bar().baz()", parser.parse("{foo.bar.baz}"));
+  }
+}
=======================================
--- /trunk/user/src/com/google/gwt/uibinder/attributeparsers/AttributeParsers.java Tue Jan 19 13:30:46 2010 +++ /trunk/user/src/com/google/gwt/uibinder/attributeparsers/AttributeParsers.java Fri Jul 2 04:56:18 2010
@@ -19,8 +19,12 @@
 import com.google.gwt.core.ext.typeinfo.JType;
 import com.google.gwt.core.ext.typeinfo.TypeOracle;
 import com.google.gwt.core.ext.typeinfo.TypeOracleException;
+import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.uibinder.rebind.FieldManager;
 import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment.HorizontalAlignmentConstant; +import com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant;
+import com.google.gwt.user.client.ui.TextBoxBase.TextAlignConstant;

 import java.util.HashMap;
 import java.util.Map;
@@ -29,15 +33,14 @@
  * Managers access to all implementations of {...@link AttributeParser}.
  */
 public class AttributeParsers {
- private static final String VERT_CONSTANT = "com.google.gwt.user.client.ui.HasVerticalAlignment."
-      + "VerticalAlignmentConstant";
- private static final String HORIZ_CONSTANT = "com.google.gwt.user.client.ui.HasHorizontalAlignment."
-      + "HorizontalAlignmentConstant";
+ private static final String HORIZ_CONSTANT = HorizontalAlignmentConstant.class.getCanonicalName(); + private static final String VERT_CONSTANT = VerticalAlignmentConstant.class.getCanonicalName(); + private static final String TEXT_ALIGN_CONSTANT = TextAlignConstant.class.getCanonicalName();
   private static final String INT = "int";
   private static final String STRING = String.class.getCanonicalName();
   private static final String DOUBLE = "double";
   private static final String BOOLEAN = "boolean";
- private static final String UNIT = "com.google.gwt.dom.client.Style.Unit";
+  private static final String UNIT = Unit.class.getCanonicalName();

   private final MortalLogger logger;
   private final FieldReferenceConverter converter;
@@ -58,26 +61,29 @@
           types.parse(BOOLEAN), logger);
       addAttributeParser(BOOLEAN, boolParser);
       addAttributeParser(Boolean.class.getCanonicalName(), boolParser);
-
+
       IntAttributeParser intParser = new IntAttributeParser(converter,
           types.parse(INT), logger);
       addAttributeParser(INT, intParser);
       addAttributeParser(Integer.class.getCanonicalName(), intParser);
-
+
DoubleAttributeParser doubleParser = new DoubleAttributeParser(converter,
           types.parse(DOUBLE), logger);
       addAttributeParser(DOUBLE, doubleParser);
       addAttributeParser(Double.class.getCanonicalName(), doubleParser);
-
- addAttributeParser("int,int", new IntPairAttributeParser(intParser, logger));
-
+
+      addAttributeParser("int,int", new IntPairAttributeParser(intParser,
+          logger));
+
addAttributeParser(HORIZ_CONSTANT, new HorizontalAlignmentConstantParser(
           converter, types.parse(HORIZ_CONSTANT), logger));
addAttributeParser(VERT_CONSTANT, new VerticalAlignmentConstantParser(
           converter, types.parse(VERT_CONSTANT), logger));
-
-      addAttributeParser(STRING, new StringAttributeParser(converter,
-          types.parse(STRING)));
+      addAttributeParser(TEXT_ALIGN_CONSTANT, new TextAlignConstantParser(
+          converter, types.parse(TEXT_ALIGN_CONSTANT), logger));
+
+      addAttributeParser(STRING,
+          new StringAttributeParser(converter, types.parse(STRING)));

       EnumAttributeParser unitParser = new EnumAttributeParser(converter,
           (JEnumType) types.parse(UNIT), logger);
=======================================
--- /trunk/user/src/com/google/gwt/uibinder/attributeparsers/HorizontalAlignmentConstantParser.java Wed Nov 11 22:08:47 2009 +++ /trunk/user/src/com/google/gwt/uibinder/attributeparsers/HorizontalAlignmentConstantParser.java Fri Jul 2 04:56:18 2010
@@ -18,6 +18,7 @@
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.typeinfo.JType;
 import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;

 import java.util.HashMap;

@@ -28,15 +29,17 @@
  */
 class HorizontalAlignmentConstantParser extends StrictAttributeParser {

+ private static final String PREFIX = HasHorizontalAlignment.class.getCanonicalName()
+      + ".ALIGN_";
private static final HashMap<String, String> values = new HashMap<String, String>();

   static {
-    values.put("ALIGN_LEFT",
-        "com.google.gwt.user.client.ui.HasHorizontalAlignment.ALIGN_LEFT");
-    values.put("ALIGN_RIGHT",
-        "com.google.gwt.user.client.ui.HasHorizontalAlignment.ALIGN_RIGHT");
-    values.put("ALIGN_CENTER",
-        "com.google.gwt.user.client.ui.HasHorizontalAlignment.ALIGN_CENTER");
+    values.put("LEFT", PREFIX + "LEFT");
+    values.put("CENTER", PREFIX + "CENTER");
+    values.put("RIGHT", PREFIX + "RIGHT");
+    values.put("ALIGN_LEFT", PREFIX + "LEFT");
+    values.put("ALIGN_CENTER", PREFIX + "CENTER");
+    values.put("ALIGN_RIGHT", PREFIX + "RIGHT");
   }

   HorizontalAlignmentConstantParser(FieldReferenceConverter converter,
@@ -44,8 +47,9 @@
     super(converter, type, logger);
   }

+  @Override
   public String parse(String value) throws UnableToCompleteException {
-    String translated = values.get(value);
+    String translated = values.get(value.toUpperCase());
     if (translated != null) {
       return translated;
     }
=======================================
--- /trunk/user/src/com/google/gwt/uibinder/attributeparsers/LengthAttributeParser.java Tue Jan 19 13:30:46 2010 +++ /trunk/user/src/com/google/gwt/uibinder/attributeparsers/LengthAttributeParser.java Fri Jul 2 04:56:18 2010
@@ -16,6 +16,7 @@
 package com.google.gwt.uibinder.attributeparsers;

 import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.dom.client.Style.Unit;
 import com.google.gwt.uibinder.rebind.MortalLogger;

 import java.util.regex.Matcher;
@@ -27,13 +28,12 @@
  */
 public class LengthAttributeParser implements AttributeParser {

-  static final String UNIT = "com.google.gwt.dom.client.Style.Unit";
+  static final String UNIT = Unit.class.getCanonicalName();

   // This regular expression matches CSS length patterns of the form
// (value)(unit), where the two may be separated by whitespace. Either part
   // can be a {class.method} expression.
-  private static final Pattern pattern = Pattern.compile(
-      "((?:\\{[\\w\\.]+\\})|[\\d\\.]+)\\s*(\\{?[\\w\\.\\%]*\\}?)?");
+ private static final Pattern pattern = Pattern.compile("((?:\\{[\\w\\.]+\\})| [\\d\\.]+)\\s*(\\{?[\\w\\.\\%]*\\}?)?");

   private final MortalLogger logger;
   private final DoubleAttributeParser doubleParser;
=======================================
--- /trunk/user/src/com/google/gwt/uibinder/attributeparsers/VerticalAlignmentConstantParser.java Wed Nov 11 22:08:47 2009 +++ /trunk/user/src/com/google/gwt/uibinder/attributeparsers/VerticalAlignmentConstantParser.java Fri Jul 2 04:56:18 2010
@@ -18,6 +18,7 @@
 import com.google.gwt.core.ext.UnableToCompleteException;
 import com.google.gwt.core.ext.typeinfo.JType;
 import com.google.gwt.uibinder.rebind.MortalLogger;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;

 import java.util.HashMap;

@@ -28,15 +29,17 @@
  */
 class VerticalAlignmentConstantParser extends StrictAttributeParser {

+ private static final String PREFIX = HasVerticalAlignment.class.getCanonicalName()
+      + ".ALIGN_";
private static final HashMap<String, String> values = new HashMap<String, String>();

   static {
-    values.put("ALIGN_TOP",
-        "com.google.gwt.user.client.ui.HasVerticalAlignment.ALIGN_TOP");
-    values.put("ALIGN_MIDDLE",
-        "com.google.gwt.user.client.ui.HasVerticalAlignment.ALIGN_MIDDLE");
-    values.put("ALIGN_BOTTOM",
-        "com.google.gwt.user.client.ui.HasVerticalAlignment.ALIGN_BOTTOM");
+    values.put("TOP", PREFIX + "TOP");
+    values.put("MIDDLE", PREFIX + "MIDDLE");
+    values.put("BOTTOM", PREFIX + "BOTTOM");
+    values.put("ALIGN_TOP", PREFIX + "TOP");
+    values.put("ALIGN_MIDDLE", PREFIX + "MIDDLE");
+    values.put("ALIGN_BOTTOM", PREFIX + "BOTTOM");
   }

   VerticalAlignmentConstantParser(FieldReferenceConverter converter,
@@ -44,8 +47,9 @@
     super(converter, type, logger);
   }

+  @Override
   public String parse(String value) throws UnableToCompleteException {
-    String translated = values.get(value);
+    String translated = values.get(value.toUpperCase());
     if (translated != null) {
       return translated;
     }
=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/HasHorizontalAlignment.java Mon Nov 30 20:51:29 2009 +++ /trunk/user/src/com/google/gwt/user/client/ui/HasHorizontalAlignment.java Fri Jul 2 04:56:18 2010
@@ -25,13 +25,18 @@
  * <h3>Use in UiBinder Templates</h3>
  *
  * <p>
- * The names of the static members of {...@link HorizontalAlignmentConstant}
- * can be used as values for a <code>horizontalAlignment</code> attribute
- * of any widget that implements this interface. (In fact, this will work
- * for any widget method that takes a single HorizontalAlignmentConstant value.) + * The names of the static members of {...@link HorizontalAlignmentConstant}, as
+ * well as simple alignment names (<code>left</code>, <code>center</code>,
+ * <code>right</code>), can be used as values for a
+ * <code>horizontalAlignment</code> attribute of any widget that implements this + * interface. (In fact, this will work for any widget method that takes a single
+ * HorizontalAlignmentConstant value.)
  * <p>
- * For example,<pre>
+ * For example,
+ *
+ * <pre>
  * &lt;g:Label horizontalAlignment='ALIGN_RIGHT'>Hi there.&lt;/g:Label>
+ * &lt;g:Label horizontalAlignment='right'>Hi there.&lt;/g:Label>
  * </pre>
  */
 public interface HasHorizontalAlignment {
@@ -40,7 +45,7 @@
    * Horizontal alignment constant.
    */
   public static class HorizontalAlignmentConstant {
-    private String textAlignString;
+    private final String textAlignString;

     private HorizontalAlignmentConstant(String textAlignString) {
       this.textAlignString = textAlignString;
@@ -75,14 +80,13 @@
       "right");

   /**
- * In a RTL layout, specifies that the widget's contents should be aligned
-   * to the right. In a LTR layout, specifies that the widget's constants
-   * should be aligned to the left.
+ * In a RTL layout, specifies that the widget's contents should be aligned to + * the right. In a LTR layout, specifies that the widget's constants should be
+   * aligned to the left.
    */
-  HorizontalAlignmentConstant ALIGN_DEFAULT =
-      (GWT.isClient() && (LocaleInfo.getCurrentLocale().isRTL()))
-        ? ALIGN_RIGHT : ALIGN_LEFT;
-
+  HorizontalAlignmentConstant ALIGN_DEFAULT = GWT.isClient()
+      && LocaleInfo.getCurrentLocale().isRTL() ? ALIGN_RIGHT : ALIGN_LEFT;
+
   /**
    * Gets the horizontal alignment.
    *
=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/HasVerticalAlignment.java Mon Nov 30 20:51:29 2009 +++ /trunk/user/src/com/google/gwt/user/client/ui/HasVerticalAlignment.java Fri Jul 2 04:56:18 2010
@@ -22,15 +22,18 @@
  * <h3>Use in UiBinder Templates</h3>
  *
  * <p>
- * The names of the static members of {...@link VerticalAlignmentConstant} can
- * be used as values for a <code>verticalAlignment</code> attribute of any
- * widget that implements this interface. (In fact, this will work for any
- * widget method that takes a single VerticalAlignmentConstant value.)
+ * The names of the static members of {...@link VerticalAlignmentConstant}, as well
+ * as simple alignment names (<code>top</code>, <code>middle</code>,
+ * <code>bottom</code>), can be used as values for a
+ * <code>verticalAlignment</code> attribute of any widget that implements this + * interface. (In fact, this will work for any widget method that takes a single
+ * VerticalAlignmentConstant value.)
  * <p>
  * For example,
  *
  * <pre>
  * &lt;g:VerticalPanel verticalAlignment='ALIGN_BOTTOM' />
+ * &lt;g:VerticalPanel verticalAlignment='bottom' />
  * </pre>
  */
 public interface HasVerticalAlignment {
@@ -39,7 +42,7 @@
    * Horizontal alignment constant.
    */
   public static class VerticalAlignmentConstant {
-    private String verticalAlignString;
+    private final String verticalAlignString;

     private VerticalAlignmentConstant(String verticalAlignString) {
       this.verticalAlignString = verticalAlignString;
@@ -59,19 +62,18 @@
    * Specifies that the widget's contents should be aligned to the bottom.
    */
   VerticalAlignmentConstant ALIGN_BOTTOM = new VerticalAlignmentConstant(
-    "bottom");
+      "bottom");

   /**
    * Specifies that the widget's contents should be aligned in the middle.
    */
   VerticalAlignmentConstant ALIGN_MIDDLE = new VerticalAlignmentConstant(
-    "middle");
+      "middle");

   /**
    * Specifies that the widget's contents should be aligned to the top.
    */
-  VerticalAlignmentConstant ALIGN_TOP = new VerticalAlignmentConstant(
-    "top");
+ VerticalAlignmentConstant ALIGN_TOP = new VerticalAlignmentConstant("top");

   /**
    * Gets the vertical alignment.
=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/ValueBoxBase.java Wed Jun 30 08:56:55 2010 +++ /trunk/user/src/com/google/gwt/user/client/ui/ValueBoxBase.java Fri Jul 2 04:56:18 2010
@@ -45,6 +45,21 @@
  * <p>
  * Abstract base class for all text entry widgets.
  *
+ * <h3>Use in UiBinder Templates</h3>
+ *
+ * <p>
+ * The names of the static members of {...@link TextBoxBase}, as well as simple + * alignment names (<code>left</code>, <code>center</code>, <code>right</code>, + * <code>justify</code>), can be used as values for a <code>textAlignment</code>
+ * attribute.
+ * <p>
+ * For example,
+ *
+ * <pre>
+ * &lt;g:TextBox textAlignment='ALIGN_RIGHT'/&gt;
+ * &lt;g:TextBox textAlignment='right'/&gt;
+ * </pre>
+ *
  * @param <T> the value type
  */
 @SuppressWarnings("deprecation")
@@ -54,7 +69,7 @@

   private static TextBoxImpl impl = GWT.create(TextBoxImpl.class);

-  private AutoDirectionHandler autoDirHandler;
+  private final AutoDirectionHandler autoDirHandler;

   private final Parser<T> parser;
   private final Renderer<T> renderer;
@@ -125,14 +140,14 @@
   public Direction getDirection() {
     return BidiUtils.getDirectionOnElement(getElement());
   }
-
+
   /**
    * Gets the direction estimation model of the auto-dir handler.
    */
   public DirectionEstimator getDirectionEstimator() {
     return autoDirHandler.getDirectionEstimator();
   }
-
+
   public String getName() {
     return DOM.getElementProperty(getElement(), "name");
   }
@@ -182,7 +197,7 @@
    */
   public T getValueOrThrow() throws ParseException {
     String text = getText().trim();
-
+
     if ("".equals(text)) {
       return null;
     }
@@ -254,21 +269,21 @@
   public void setDirection(Direction direction) {
     BidiUtils.setDirectionOnElement(getElement(), direction);
   }
-
+
   /**
    * Toggles on / off direction estimation.
    */
   public void setDirectionEstimator(boolean enabled) {
     autoDirHandler.setDirectionEstimator(enabled);
   }
-
+
   /**
    * Sets the direction estimation model of the auto-dir handler.
    */
public void setDirectionEstimator(DirectionEstimator directionEstimator) {
     autoDirHandler.setDirectionEstimator(directionEstimator);
   }
-
+
   /**
* If a keyboard event is currently being handled by the text box, this method * replaces the unicode character or key code associated with it. This allows
@@ -324,7 +339,7 @@
       throw new IndexOutOfBoundsException(
           "Length must be a positive integer. Length: " + length);
     }
-    if ((pos < 0) || (length + pos > getText().length())) {
+    if (pos < 0 || length + pos > getText().length()) {
throw new IndexOutOfBoundsException("From Index: " + pos + " To Index: "
           + (pos + length) + "  Text Length: " + getText().length());
     }
@@ -371,7 +386,7 @@
   protected TextBoxImpl getImpl() {
     return impl;
   }
-
+
   @Override
   protected void onLoad() {
     super.onLoad();
=======================================
--- /trunk/user/test/com/google/gwt/uibinder/UiBinderJreSuite.java Fri Jun 18 07:12:57 2010 +++ /trunk/user/test/com/google/gwt/uibinder/UiBinderJreSuite.java Fri Jul 2 04:56:18 2010
@@ -17,13 +17,14 @@

 import com.google.gwt.uibinder.attributeparsers.CssNameConverterTest;
import com.google.gwt.uibinder.attributeparsers.FieldReferenceConverterTest; -import com.google.gwt.uibinder.attributeparsers.HorizontalAlignmentConstantParser_Test; +import com.google.gwt.uibinder.attributeparsers.HorizontalAlignmentConstantParserTest;
 import com.google.gwt.uibinder.attributeparsers.IntAttributeParserTest;
 import com.google.gwt.uibinder.attributeparsers.IntPairAttributeParserTest;
 import com.google.gwt.uibinder.attributeparsers.LengthAttributeParserTest;
 import com.google.gwt.uibinder.attributeparsers.StrictAttributeParserTest;
 import com.google.gwt.uibinder.attributeparsers.StringAttributeParserTest;
-import com.google.gwt.uibinder.attributeparsers.VerticalAlignmentConstantParser_Test; +import com.google.gwt.uibinder.attributeparsers.TextAlignConstantParserTest; +import com.google.gwt.uibinder.attributeparsers.VerticalAlignmentConstantParserTest;
 import com.google.gwt.uibinder.elementparsers.DialogBoxParserTest;
 import com.google.gwt.uibinder.elementparsers.DockLayoutPanelParserTest;
 import com.google.gwt.uibinder.elementparsers.ImageParserTest;
@@ -72,8 +73,9 @@
     suite.addTestSuite(StrictAttributeParserTest.class);
     suite.addTestSuite(StringAttributeParserTest.class);
     suite.addTestSuite(LengthAttributeParserTest.class);
-    suite.addTestSuite(HorizontalAlignmentConstantParser_Test.class);
-    suite.addTestSuite(VerticalAlignmentConstantParser_Test.class);
+    suite.addTestSuite(HorizontalAlignmentConstantParserTest.class);
+    suite.addTestSuite(VerticalAlignmentConstantParserTest.class);
+    suite.addTestSuite(TextAlignConstantParserTest.class);

     // elementparsers
     suite.addTestSuite(DialogBoxParserTest.class);
=======================================
--- /trunk/user/test/com/google/gwt/uibinder/test/UiJavaResources.java Fri Apr 2 07:37:08 2010 +++ /trunk/user/test/com/google/gwt/uibinder/test/UiJavaResources.java Fri Jul 2 04:56:18 2010
@@ -303,6 +303,19 @@
       code.append("}\n");
       return code;
     }
+  };
+ public static final MockJavaResource TEXT_BOX_BASE = new MockJavaResource(
+      "com.google.gwt.user.client.ui.TextBoxBase") {
+    @Override
+    protected CharSequence getContent() {
+      StringBuffer code = new StringBuffer();
+      code.append("package com.google.gwt.user.client.ui;\n");
+      code.append("public class TextBoxBase {\n");
+      code.append("  public static class TextAlignConstant {\n");
+      code.append("  }\n");
+      code.append("}\n");
+      return code;
+    }
   };
   public static final MockJavaResource UI_BINDER = new MockJavaResource(
       "com.google.gwt.uibinder.client.UiBinder") {
@@ -380,6 +393,7 @@
     rtn.add(STACK_LAYOUT_PANEL);
     rtn.add(STYLE);
     rtn.add(TAB_LAYOUT_PANEL);
+    rtn.add(TEXT_BOX_BASE);
     rtn.add(UI_OBJECT);
     rtn.add(UI_BINDER);
     rtn.add(UI_FACTORY);

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

Reply via email to