Make the alignment parsers field ref friendly
Review by jgw
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6632 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/uibinder/parsers/HorizontalAlignmentConstantParser.java b/user/src/com/google/gwt/uibinder/parsers/HorizontalAlignmentConstantParser.java
index b70b717..85d05fd 100644
--- a/user/src/com/google/gwt/uibinder/parsers/HorizontalAlignmentConstantParser.java
+++ b/user/src/com/google/gwt/uibinder/parsers/HorizontalAlignmentConstantParser.java
@@ -24,7 +24,7 @@
* Parses a
* {@link com.google.gwt.user.client.ui.HasHorizontalAlignment.HorizontalAlignmentConstant}.
*/
-public class HorizontalAlignmentConstantParser implements AttributeParser {
+public class HorizontalAlignmentConstantParser extends StrictAttributeParser {
private static final HashMap<String, String> values =
new HashMap<String, String>();
@@ -41,9 +41,9 @@
public String parse(String value, MortalLogger logger)
throws UnableToCompleteException {
String translated = values.get(value);
- if (translated == null) {
- logger.die("Invalid value: horizontalAlignment='" + value + "'");
+ if (translated != null) {
+ return translated;
}
- return translated;
+ return super.parse(value, logger);
}
}
diff --git a/user/src/com/google/gwt/uibinder/parsers/StrictAttributeParser.java b/user/src/com/google/gwt/uibinder/parsers/StrictAttributeParser.java
index 18acbc7..2dd6a14 100644
--- a/user/src/com/google/gwt/uibinder/parsers/StrictAttributeParser.java
+++ b/user/src/com/google/gwt/uibinder/parsers/StrictAttributeParser.java
@@ -66,7 +66,7 @@
try {
return new FieldReferenceConverter(new FieldReferenceDelegate()).convert(value);
} catch (IllegalFieldReferenceException e) {
- logger.die("Bad field reference: \"%s\"", value);
+ logger.die("Cannot parse value: \"%s\"", value);
return null; // Unreachable
}
}
diff --git a/user/src/com/google/gwt/uibinder/parsers/VerticalAlignmentConstantParser.java b/user/src/com/google/gwt/uibinder/parsers/VerticalAlignmentConstantParser.java
index 6a7fcad..f1d0a69 100644
--- a/user/src/com/google/gwt/uibinder/parsers/VerticalAlignmentConstantParser.java
+++ b/user/src/com/google/gwt/uibinder/parsers/VerticalAlignmentConstantParser.java
@@ -24,7 +24,7 @@
* Parses a
* {@link com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant}.
*/
-public class VerticalAlignmentConstantParser implements AttributeParser {
+public class VerticalAlignmentConstantParser extends StrictAttributeParser {
private static final HashMap<String, String> values =
new HashMap<String, String>();
@@ -41,9 +41,9 @@
public String parse(String value, MortalLogger logger)
throws UnableToCompleteException {
String translated = values.get(value);
- if (translated == null) {
- logger.die("Invalid value: vorizontalAlignment='%s'", value);
+ if (translated != null) {
+ return translated;
}
- return translated;
+ return super.parse(value, logger);
}
}
diff --git a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
index f3f2f48..e1c8d1a 100644
--- a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
@@ -278,7 +278,7 @@
<ui:attribute name="text" description="radio button name"/>
</demo:PointlessRadioButtonSubclass>
- <gwt:HorizontalPanel>
+ <gwt:HorizontalPanel horizontalAlignment="ALIGN_LEFT">
<gwt:Cell><gwt:HTMLPanel>
<p> ... a StackPanel ... </p>