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

Reply via email to