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