Revision: 10245
Author: [email protected]
Date: Fri May 27 18:15:05 2011
Log: Fix UiBinder default values for missing array-valued attributes,
change ui:baseInterface to ui:baseMessagesInterface.
Review by: [email protected]
http://code.google.com/p/google-web-toolkit/source/detail?r=10245
Modified:
/trunk/user/src/com/google/gwt/uibinder/rebind/messages/MessagesWriter.java
/trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
=======================================
---
/trunk/user/src/com/google/gwt/uibinder/rebind/messages/MessagesWriter.java
Fri May 20 05:12:05 2011
+++
/trunk/user/src/com/google/gwt/uibinder/rebind/messages/MessagesWriter.java
Fri May 27 18:15:05 2011
@@ -141,10 +141,27 @@
/**
* Consume an m:blah attribute on a non-message element, e.g.
* {@code <span m:ph="fnord"/>}
+ *
+ * @param attName name of the attribute (to be prefixed
with "msgprefix:")
+ * @param elem element to search
+ * @return attribute value, or an empty string if not found
*/
public String consumeMessageAttribute(String attName, XMLElement elem) {
+ return consumeMessageAttribute(attName, elem, "");
+ }
+
+ /**
+ * Consume an m:blah attribute on a non-message element, e.g.
+ * {@code <span m:ph="fnord"/>}
+ *
+ * @param attName name of the attribute (to be prefixed
with "msgprefix:")
+ * @param elem element to search
+ * @param defaultValue default value to return if the attribute is not
present
+ * @return attribute value, or {@code defaultValue} if not found
+ */
+ public String consumeMessageAttribute(String attName, XMLElement elem,
String defaultValue) {
String fullAttName = getMessagesPrefix() + ":" + attName;
- return elem.consumeRawAttribute(fullAttName, "");
+ return elem.consumeRawAttribute(fullAttName, defaultValue);
}
/**
@@ -166,7 +183,14 @@
String prefix = elem.lookupPrefix(getMessagesUri());
if (prefix != null) {
messagesPrefix = prefix;
- String baseInterfaceAttr =
elem.consumeRawAttribute(getMessagesPrefix() + ":baseInterface");
+ String baseInterfaceAttr =
consumeMessageAttribute("baseMessagesInterface", elem, null);
+ if (baseInterfaceAttr == null) {
+ // TODO(jat): temporary compatibility, remove next week
+ baseInterfaceAttr = consumeMessageAttribute("baseInterface", elem,
null);
+ if (baseInterfaceAttr != null) {
+ logger.warn(elem, "baseInterface is deprecated, use
baseMessagesInterface instead");
+ }
+ }
if (baseInterfaceAttr != null) {
JClassType baseInterfaceType = oracle.findType(baseInterfaceAttr);
if (baseInterfaceType == null) {
@@ -364,7 +388,7 @@
private String[] getMessageAttributeStringArray(String attName,
XMLElement elem) {
- String value = consumeMessageAttribute(attName, elem);
+ String value = consumeMessageAttribute(attName, elem, null);
if (value == null) {
return EMPTY_ARRAY;
}
=======================================
---
/trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
Tue May 24 10:01:44 2011
+++
/trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
Fri May 27 18:15:05 2011
@@ -54,7 +54,7 @@
xmlns:legacyValuesForBeans='urn:with:com.google.gwt.uibinder.test.client.WidgetBasedUi.FakeBundle2'
xmlns:legacyValuesForHtml='urn:with:com.google.gwt.uibinder.test.client.WidgetBasedUi.FakeBundle3'
- ui:baseInterface="com.google.gwt.uibinder.test.client.MyMessages"
+ ui:baseMessagesInterface="com.google.gwt.uibinder.test.client.MyMessages"
ui:defaultLocale="en_US"
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
ui:generateFormat="com.google.gwt.i18n.rebind.format.PropertiesFormat"
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors