Revision: 9840
Author: rj...@google.com
Date: Thu Mar 10 09:08:32 2011
Log: Copy/paste detected in NumberLabelParser :-)
It leaks DateTimeFormat from DateLabelParser.
I've added couple statements into test and fixed problem.

Submitting for scheg...@google.com

Review at http://gwt-code-reviews.appspot.com/1381801/

Review by: scheg...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=9840

Modified:
/trunk/user/src/com/google/gwt/uibinder/elementparsers/NumberLabelParser.java /trunk/user/test/com/google/gwt/uibinder/elementparsers/NumberLabelParserTest.java
 /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java
 /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml

=======================================
--- /trunk/user/src/com/google/gwt/uibinder/elementparsers/NumberLabelParser.java Mon Nov 29 10:45:36 2010 +++ /trunk/user/src/com/google/gwt/uibinder/elementparsers/NumberLabelParser.java Thu Mar 10 09:08:32 2011
@@ -20,7 +20,6 @@
 import com.google.gwt.core.ext.typeinfo.JType;
 import com.google.gwt.core.ext.typeinfo.TypeOracle;
 import com.google.gwt.i18n.client.CurrencyData;
-import com.google.gwt.i18n.client.DateTimeFormat;
 import com.google.gwt.i18n.client.NumberFormat;
 import com.google.gwt.uibinder.rebind.UiBinderWriter;
 import com.google.gwt.uibinder.rebind.XMLElement;
@@ -79,7 +78,7 @@
   private String consumeFormat(XMLElement elem, UiBinderWriter writer)
       throws UnableToCompleteException {
     String format = elem.consumeAttribute("format",
- writer.getOracle().findType(DateTimeFormat.class.getCanonicalName())); + writer.getOracle().findType(NumberFormat.class.getCanonicalName()));
     String predefinedFormat = elem.consumeRawAttribute("predefinedFormat");
     String customFormat = elem.consumeStringAttribute("customFormat");

=======================================
--- /trunk/user/test/com/google/gwt/uibinder/elementparsers/NumberLabelParserTest.java Mon Nov 29 10:45:36 2010 +++ /trunk/user/test/com/google/gwt/uibinder/elementparsers/NumberLabelParserTest.java Thu Mar 10 09:08:32 2011
@@ -98,13 +98,13 @@
b.append("<ui:UiBinder xmlns:ui='" + ElementParserTester.BINDER_URI + "'");
     b.append("    xmlns:my='urn:import:my'");
     b.append("    xmlns:g='urn:import:com.google.gwt.user.client.ui'>");
- b.append(" <my:MyConstructedNumberLabel format='{someDateTimeFormat}' /> "); + b.append(" <my:MyConstructedNumberLabel format='{someNumberFormat}' /> ");
     b.append("</ui:UiBinder>");

parser.parse(tester.getElem(b.toString(), "my:MyConstructedNumberLabel"),
         "fieldName", tester.parsedType, tester.writer);
     FieldWriter w = tester.fieldManager.lookup("fieldName");
-    assertEquals("new my.MyConstructedNumberLabel(someDateTimeFormat)",
+    assertEquals("new my.MyConstructedNumberLabel(someNumberFormat)",
         w.getInitializer());

     assertTrue(tester.writer.statements.isEmpty());
@@ -178,8 +178,8 @@
       tester.parse(b.toString());
       fail();
     } catch (UnableToCompleteException e) {
-      assertTrue("Expect to hear about DateTimeFormat",
-          tester.logger.died.contains("DateTimeFormat"));
+      assertTrue("Expect to hear about NumberFormat",
+          tester.logger.died.contains("NumberFormat"));
     }
   }

=======================================
--- /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java Fri Jan 7 08:26:38 2011 +++ /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java Thu Mar 10 09:08:32 2011
@@ -23,6 +23,9 @@
 import com.google.gwt.dom.client.ParagraphElement;
 import com.google.gwt.dom.client.SpanElement;
 import com.google.gwt.dom.client.TableElement;
+import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.i18n.client.NumberFormat;
+import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.resources.client.DataResource;
 import com.google.gwt.resources.client.ImageResource;
@@ -83,6 +86,9 @@

   @UiField(provided = true)
final WidgetBasedUiExternalResources external = GWT.create(WidgetBasedUiExternalResources.class);
+
+ public static final DateTimeFormat MY_DATE_FORMAT = DateTimeFormat.getFormat(PredefinedFormat.DATE_FULL); + public static final NumberFormat MY_NUMBER_FORMAT = NumberFormat.getDecimalFormat();

   @UiField(provided = true)
   final Label bundledLabel =  new Label();
@@ -183,7 +189,9 @@
   @UiField Widget myAbsolutePanelItemC;
   @UiField NamedFrame myNamedFrame;
   @UiField DateLabel myDateLabel;
+  @UiField DateLabel myDateLabel2;
   @UiField NumberLabel<Float> myNumberLabel;
+  @UiField NumberLabel<Float> myNumberLabel2;
   @UiField(provided = true) @SuppressWarnings("unchecked")
   Renderer doubleRenderer = DoubleRenderer.instance();
   @UiField ValueLabel<Double> myValueLabel;
=======================================
--- /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml Fri Jan 7 08:26:38 2011 +++ /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml Thu Mar 10 09:08:32 2011
@@ -88,6 +88,14 @@
   Tests the static import of an enum into the local namespace.
 </ui:import>

+<ui:import field='com.google.gwt.uibinder.test.client.WidgetBasedUi.MY_DATE_FORMAT'>
+  Tests a DateTimeFormat using for the DateTimeLabel.
+</ui:import>
+
+<ui:import field='com.google.gwt.uibinder.test.client.WidgetBasedUi.MY_NUMBER_FORMAT'>
+  Tests a NumberFormat using for the NumberLabel.
+</ui:import>
+
 <!--
   Tests creating a CssResource from an external file.
  -->
@@ -654,8 +662,10 @@
   <gwt:NamedFrame ui:field='myNamedFrame' name='myName'/>

   <gwt:DateLabel ui:field='myDateLabel' predefinedFormat='DATE_FULL' />
+  <gwt:DateLabel ui:field='myDateLabel2' format='{MY_DATE_FORMAT}' />

<gwt:NumberLabel ui:field='myNumberLabel' predefinedFormat='SCIENTIFIC' />
+  <gwt:NumberLabel ui:field='myNumberLabel2' format='{MY_NUMBER_FORMAT}' />

   <gwt:ValueLabel ui:field='myValueLabel' renderer='{doubleRenderer}' />

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

Reply via email to