[gwt-contrib] Re: Comment on ProtocolBuffers in google-web-toolkit
Comment by getmay...@gmail.com: Is this functionality already implemented. How can I get gwt-pb.sh and use it For more information: http://code.google.com/p/google-web-toolkit/wiki/ProtocolBuffers -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: [google-web-toolkit] r10459 committed - JsoNormalizer did not give unique names to devirtualized...
Hi, I'd like to know what are the implications of this issue. I just updated from GWT 2.1 to 2.3, and I'm having an error where the xxx__devirtual$ function is undefined for one of my JSO objects methods. The hierarchy of my JSO is as follows: InterfaceA + getId InterfaceB extends InterfaceA MyJSO extends JavaScriptObject implements InterfaceB + getId There are other java classes (i.e. non-JSO) implementing InterfaceA. Any insight would be appreciated, Thanks -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Prevent an AutoBean property named property from causing a compilation error. (issue1505804)
Reviewers: rjrjr, Message: Review requested. Description: Prevent an AutoBean property named property from causing a compilation error. Patch by: bobv Review by: rjrjr Please review this at http://gwt-code-reviews.appspot.com/1505804/ Affected files: M user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java M user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java Index: user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java === --- user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java (revision 10473) +++ user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java (working copy) @@ -231,8 +231,9 @@ String castType; if (returnType.isPrimitive() != null) { castType = returnType.isPrimitive().getQualifiedBoxedSourceName(); -// Boolean toReturn = getOrReify(foo); -sw.println(%s toReturn = getOrReify(\%s\);, castType, method.getPropertyName()); +// Boolean toReturn = Outher.this.getOrReify(foo); +sw.println(%s toReturn = %s.this.getOrReify(\%s\);, castType, type +.getSimpleSourceName(), method.getPropertyName()); // return toReturn == null ? false : toReturn; sw.println(return toReturn == null ? %s : toReturn;, returnType.isPrimitive() .getUninitializedFieldExpression()); @@ -241,17 +242,19 @@ sw.println(return data.isNull(\%1$s\) ? null : data.get(\%1$s\);, method .getPropertyName()); } else { -// return (ReturnType) values.getOrReify(\foo\); +// return (ReturnType) Outer.this.getOrReify(\foo\); castType = ModelUtils.getQualifiedBaseSourceName(returnType); -sw.println(return (%s) getOrReify(\%s\);, castType, method.getPropertyName()); +sw.println(return (%s) %s.this.getOrReify(\%s\);, castType, type +.getSimpleSourceName(), method.getPropertyName()); } } break; case SET: case SET_BUILDER: { JParameter param = jmethod.getParameters()[0]; - // setProperty(foo, parameter); - sw.println(setProperty(\%s\, %s);, method.getPropertyName(), param.getName()); + // Other.this.setProperty(foo, parameter); + sw.println(%s.this.setProperty(\%s\, %s);, type.getSimpleSourceName(), method + .getPropertyName(), param.getName()); if (JBeanMethod.SET_BUILDER.equals(method.getAction())) { sw.println(return this;); } Index: user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java === --- user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java (revision 10473) +++ user/test/com/google/web/bindery/autobean/gwt/client/AutoBeanTest.java (working copy) @@ -15,14 +15,14 @@ */ package com.google.web.bindery.autobean.gwt.client; +import com.google.gwt.core.client.GWT; +import com.google.gwt.junit.client.GWTTestCase; import com.google.web.bindery.autobean.shared.AutoBean; import com.google.web.bindery.autobean.shared.AutoBeanFactory; import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category; import com.google.web.bindery.autobean.shared.AutoBeanUtils; import com.google.web.bindery.autobean.shared.AutoBeanVisitor; import com.google.web.bindery.autobean.shared.AutoBeanVisitor.ParameterizationVisitor; -import com.google.gwt.core.client.GWT; -import com.google.gwt.junit.client.GWTTestCase; import java.util.ArrayList; import java.util.Collection; @@ -42,6 +42,7 @@ public static Object seen; public static T T __intercept(AutoBeanHasCall bean, T value) { + assertNotNull(bean); seen = value; return value; } @@ -129,9 +130,14 @@ interface Intf { int getInt(); +String getProperty(); + String getString(); void setInt(int number); + +// Avoid name conflicts in AbstractAutoBean +void setProperty(String value); void setString(String value); } @@ -150,6 +156,7 @@ static class RealIntf implements Intf { int i; +String property; String string; @Override @@ -161,6 +168,11 @@ return i; } +@Override +public String getProperty() { + return property; +} + public String getString() { return string; } @@ -172,6 +184,11 @@ public void setInt(int number) { this.i = number; +} + +@Override +public void setProperty(String value) { + this.property = value; } public void setString(String value) { @@ -473,7 +490,7 @@ if (int.equals(propertyName)) { assertEquals(42, value); assertEquals(int.class,
[gwt-contrib] Re: Prevent an AutoBean property named property from causing a compilation error. (issue1505804)
LGTM On 2011/07/29 16:59:28, bobv wrote: Review requested. http://gwt-code-reviews.appspot.com/1505804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Prevent an AutoBean property named property from causing a compilation error. (issue1505804)
http://gwt-code-reviews.appspot.com/1505804/diff/1/user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java File user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java (right): http://gwt-code-reviews.appspot.com/1505804/diff/1/user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java#newcode234 user/src/com/google/web/bindery/autobean/gwt/rebind/AutoBeanFactoryGenerator.java:234: // Boolean toReturn = Outher.this.getOrReify(foo); Outher http://gwt-code-reviews.appspot.com/1505804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Reduce the visiblity of a UiBinderWriter method. (issue1500807)
Reviewers: hermes, Description: Reduce the visiblity of a UiBinderWriter method. Please review this at http://gwt-code-reviews.appspot.com/1500807/ Affected files: M user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java Index: user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java === --- user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java (revision 10473) +++ user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java (working copy) @@ -540,31 +540,6 @@ } /** - * Declares a field of the given type name, returning the name of the declared - * field. If the element has a field or id attribute, use its value. - * Otherwise, create and return a new, private field name for it. - */ - public String declareField(String typeName, XMLElement elem) - throws UnableToCompleteException { -JClassType type = oracle.findType(typeName); -if (type == null) { - die(elem, Unknown type %s, typeName); -} - -String fieldName = getFieldName(elem); -if (fieldName == null) { - // TODO(rjrjr) could collide with user declared name, as is - // also a worry in HandlerEvaluator. Need a general scheme for - // anonymous fields. See the note in HandlerEvaluator and do - // something like that, but in FieldManager. - fieldName = f_ + elem.getLocalName() + ++fieldIndex; -} -fieldName = normalizeFieldName(fieldName); -fieldManager.registerField(type, fieldName); -return fieldName; - } - - /** * If this element has a gwt:field attribute, create a field for it of the * appropriate type, and return the field name. If no gwt:field attribute is * found, do nothing and return null @@ -948,9 +923,7 @@ JClassType type = findFieldType(elem); // Declare its field. -String fieldName = declareField(type.getQualifiedSourceName(), elem); - -FieldWriter field = fieldManager.lookup(fieldName); +FieldWriter field = declareField(type.getQualifiedSourceName(), elem); // Push the field that will hold this widget on top of the parsedFieldStack // to ensure that fields registered by its parsers will be noted as @@ -959,7 +932,7 @@ // Give all the parsers a chance to generate their code. for (ElementParser parser : getParsersForClass(type)) { - parser.parse(elem, fieldName, type, this); + parser.parse(elem, field.getName(), type, this); } fieldManager.pop(); @@ -1097,6 +1070,30 @@ String parser = com.google.gwt.uibinder.elementparsers. + className + Parser; addElementParser(gwtClass, parser); + } + + /** + * Declares a field of the given type name, returning the name of the declared + * field. If the element has a field or id attribute, use its value. + * Otherwise, create and return a new, private field name for it. + */ + private FieldWriter declareField(String typeName, XMLElement elem) + throws UnableToCompleteException { +JClassType type = oracle.findType(typeName); +if (type == null) { + die(elem, Unknown type %s, typeName); +} + +String fieldName = getFieldName(elem); +if (fieldName == null) { + // TODO(rjrjr) could collide with user declared name, as is + // also a worry in HandlerEvaluator. Need a general scheme for + // anonymous fields. See the note in HandlerEvaluator and do + // something like that, but in FieldManager. + fieldName = f_ + elem.getLocalName() + ++fieldIndex; +} +fieldName = normalizeFieldName(fieldName); +return fieldManager.registerField(type, fieldName); } /** @@ -1818,8 +1815,7 @@ w.write(}); } - private void writeRendererGetters(IndentedWriter w, JClassType owner, String rootFieldName) - throws UnableToCompleteException { + private void writeRendererGetters(IndentedWriter w, JClassType owner, String rootFieldName) { ListJMethod getters = findGetterNames(owner); // For every requested getter -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10475 committed - Fixes a bug in AbstractPager where clearing the display and resetting ...
Revision: 10475 Author: jlaba...@google.com Date: Thu Jul 28 04:00:59 2011 Log: Fixes a bug in AbstractPager where clearing the display and resetting it causes an NPE. Review at http://gwt-code-reviews.appspot.com/1500803 Review by: andych...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10475 Modified: /trunk/user/src/com/google/gwt/user/cellview/client/AbstractPager.java /trunk/user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java === --- /trunk/user/src/com/google/gwt/user/cellview/client/AbstractPager.java Tue Oct 12 07:55:56 2010 +++ /trunk/user/src/com/google/gwt/user/cellview/client/AbstractPager.java Thu Jul 28 04:00:59 2011 @@ -27,6 +27,10 @@ */ public abstract class AbstractPager extends Composite { + // Visible for testing. + HandlerRegistration rangeChangeHandler; + HandlerRegistration rowCountChangeHandler; + private HasRows display; /** @@ -39,9 +43,6 @@ */ private int lastRowCount; - private HandlerRegistration rangeChangeHandler; - private HandlerRegistration rowCountChangeHandler; - /** * Get the {@link HasRows} being paged. * @@ -109,29 +110,28 @@ } if (rowCountChangeHandler != null) { rowCountChangeHandler.removeHandler(); - rangeChangeHandler = null; + rowCountChangeHandler = null; } // Set the new display. this.display = display; if (display != null) { - rangeChangeHandler = display.addRangeChangeHandler( - new RangeChangeEvent.Handler() { -public void onRangeChange(RangeChangeEvent event) { - if (AbstractPager.this.display != null) { -onRangeOrRowCountChanged(); - } -} - }); - rowCountChangeHandler = display.addRowCountChangeHandler( - new RowCountChangeEvent.Handler() { -public void onRowCountChange(RowCountChangeEvent event) { - if (AbstractPager.this.display != null) { -handleRowCountChange( -event.getNewRowCount(), event.isNewRowCountExact()); - } -} - }); + rangeChangeHandler = display.addRangeChangeHandler(new RangeChangeEvent.Handler() { +@Override +public void onRangeChange(RangeChangeEvent event) { + if (AbstractPager.this.display != null) { +onRangeOrRowCountChanged(); + } +} + }); + rowCountChangeHandler = display.addRowCountChangeHandler(new RowCountChangeEvent.Handler() { +@Override +public void onRowCountChange(RowCountChangeEvent event) { + if (AbstractPager.this.display != null) { +handleRowCountChange(event.getNewRowCount(), event.isNewRowCountExact()); + } +} + }); // Initialize the pager. onRangeOrRowCountChanged(); === --- /trunk/user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java Tue Aug 17 10:14:36 2010 +++ /trunk/user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java Thu Jul 28 04:00:59 2011 @@ -19,6 +19,8 @@ import com.google.gwt.view.client.HasRows; import com.google.gwt.view.client.MockHasData; import com.google.gwt.view.client.Range; +import com.google.gwt.view.client.RangeChangeEvent; +import com.google.gwt.view.client.RowCountChangeEvent; /** * Tests for {@link AbstractPager}. @@ -235,6 +237,45 @@ pager.previousPage(); assertEquals(new Range(25, 20), display.getVisibleRange()); } + + public void testSetDisplay() { +AbstractPager pager = createPager(); +assertNull(pager.getDisplay()); + +// Set display to a value. +MockHasDataString display0 = new MockHasDataString(); +pager.setDisplay(display0); +assertEquals(display0, pager.getDisplay()); +assertEquals(1, display0.getHandlerCount(RangeChangeEvent.getType())); +assertEquals(1, display0.getHandlerCount(RowCountChangeEvent.getType())); +assertNotNull(pager.rangeChangeHandler); +assertNotNull(pager.rowCountChangeHandler); + +/* + * Set display to null. + * + * Verify that the handlers are removed. + */ +pager.setDisplay(null); +assertNull(pager.getDisplay()); +assertEquals(0, display0.getHandlerCount(RangeChangeEvent.getType())); +assertEquals(0, display0.getHandlerCount(RowCountChangeEvent.getType())); +assertNull(pager.rangeChangeHandler); +assertNull(pager.rowCountChangeHandler); + +/* + * Set display again. + * + * Verify that the handlers are re-added. + */ +MockHasDataString display1 = new MockHasDataString(); +pager.setDisplay(display1); +assertEquals(display1, pager.getDisplay()); +assertEquals(1, display1.getHandlerCount(RangeChangeEvent.getType())); +assertEquals(1, display1.getHandlerCount(RowCountChangeEvent.getType())); +
[gwt-contrib] [google-web-toolkit] r10477 committed - Reverting behavior in AbstractCellTable so it calls Column#onBrowserEv...
Revision: 10477 Author: jlaba...@google.com Date: Thu Jul 28 08:15:51 2011 Log: Reverting behavior in AbstractCellTable so it calls Column#onBrowserEvent() if the target Cell is in a Column. AbstractCellTable now supports any HasCell implementation, not just Columns, and a recent change modified the behavior to fire the event to the Cell directly, instead of going through Column#onBrowserEvent(). However, overriding onBrowserEvent() is common, and this behavior was a breaking change. The fix checks if the HasCell is a column and uses the legacy Column#onBrowserEvent() method. Review at http://gwt-code-reviews.appspot.com/1500805 Review by: tlaub...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=10477 Modified: /trunk/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java === --- /trunk/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java Thu Jul 28 04:03:54 2011 +++ /trunk/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java Thu Jul 28 08:15:51 2011 @@ -2370,20 +2370,29 @@ return; } -// Create a FieldUpdater. -final FieldUpdaterT, C fieldUpdater = column.getFieldUpdater(); -final int index = context.getIndex(); -ValueUpdaterC valueUpdater = (fieldUpdater == null) ? null : new ValueUpdaterC() { - @Override - public void update(C value) { -fieldUpdater.update(index, rowValue, value); - } -}; - -// Fire the event to the cell. C cellValue = column.getValue(rowValue); boolean cellWasEditing = cell.isEditing(context, parentElem, cellValue); -cell.onBrowserEvent(context, parentElem, column.getValue(rowValue), event, valueUpdater); +if (column instanceof Column) { + /* + * If the HasCell is a Column, let it handle the event itself. This is + * here for legacy support. + */ + ColumnT, C col = (ColumnT, C) column; + col.onBrowserEvent(context, parentElem, rowValue, event); +} else { + // Create a FieldUpdater. + final FieldUpdaterT, C fieldUpdater = column.getFieldUpdater(); + final int index = context.getIndex(); + ValueUpdaterC valueUpdater = (fieldUpdater == null) ? null : new ValueUpdaterC() { +@Override +public void update(C value) { + fieldUpdater.update(index, rowValue, value); +} + }; + + // Fire the event to the cell. + cell.onBrowserEvent(context, parentElem, column.getValue(rowValue), event, valueUpdater); +} // Reset focus if needed. cellIsEditing = cell.isEditing(context, parentElem, cellValue); -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r10478 committed - Javadoc tweak for SafeUri.
Revision: 10478 Author: rj...@google.com Date: Thu Jul 28 13:18:05 2011 Log: Javadoc tweak for SafeUri. http://code.google.com/p/google-web-toolkit/source/detail?r=10478 Modified: /trunk/user/src/com/google/gwt/safehtml/shared/SafeUri.java === --- /trunk/user/src/com/google/gwt/safehtml/shared/SafeUri.java Mon Jun 6 10:00:08 2011 +++ /trunk/user/src/com/google/gwt/safehtml/shared/SafeUri.java Thu Jul 28 13:18:05 2011 @@ -50,6 +50,8 @@ * * p * Implementations must not return {@code null} from {@link #asString()}. + * + * @see UriUtils */ public interface SafeUri { -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Introducing a new CellTableBuilder API, which allows users to customize the structure of a CellT... (issue1501803)
committed as r10476 http://gwt-code-reviews.appspot.com/1501803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Fixes a bug in AbstractPager where clearing the display and resetting it causes an NPE. (issue1500803)
committed as r10475 http://gwt-code-reviews.appspot.com/1500803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Comment on AutoBean in google-web-toolkit
Comment by kandula@gmail.com: Is there a build configuration change I have to do for using AutoBean API? I'm using gwt-maven-plugin and I see this error when I try to compile my GWT module [ERROR] Errors in 'file:/C:/ccm_wa/Professional/NewsLetter/NewsLetter/newsletter/src/main/java/com/conceptis/newsletter/gwt/mailinggroup/client/util/MailFactory.java' [ERROR] Line 7: No source code is available for type com.google.gwt.autobean.shared.AutoBeanFactory; did you forget to inherit a required module? [ERROR] Line 8: No source code is available for type com.google.gwt.autobean.shared.AutoBeanT; did you forget to inherit a required module? [ERROR] Errors in 'file:/C:/ccm_wa/Professional/NewsLetter/NewsLetter/newsletter/src/main/java/com/conceptis/newsletter/gwt/mailinggroup/client/util/SerializationHelper.java' For more information: http://code.google.com/p/google-web-toolkit/wiki/AutoBean -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Eliminates the code for the long deprecated urn:with feature. (issue1500808)
Reviewers: hermes, Description: Eliminates the code for the long deprecated urn:with feature. Please review this at http://gwt-code-reviews.appspot.com/1500808/ Affected files: D user/src/com/google/gwt/uibinder/attributeparsers/BundleAttributeParser.java D user/src/com/google/gwt/uibinder/attributeparsers/BundleAttributeParsers.java M user/src/com/google/gwt/uibinder/elementparsers/ComputedAttributeInterpreter.java M user/src/com/google/gwt/uibinder/elementparsers/GridParser.java M user/src/com/google/gwt/uibinder/rebind/AbstractFieldWriter.java M user/src/com/google/gwt/uibinder/rebind/FieldManager.java M user/src/com/google/gwt/uibinder/rebind/FieldWriterOfGeneratedCssResource.java M user/src/com/google/gwt/uibinder/rebind/UiBinderParser.java M user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java M user/src/com/google/gwt/uibinder/rebind/XMLElement.java M user/src/com/google/gwt/uibinder/rebind/XMLElementProviderImpl.java M user/src/com/google/gwt/uibinder/rebind/messages/PlaceholderInterpreter.java M user/test/com/google/gwt/uibinder/elementparsers/ElementParserTester.java M user/test/com/google/gwt/uibinder/rebind/AbstractUiBinderWriterTest.java M user/test/com/google/gwt/uibinder/rebind/DesignTimeUtilsTest.java M user/test/com/google/gwt/uibinder/rebind/UiBinderParserUiWithTest.java M user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java M user/test/com/google/gwt/uibinder/test/client/DomBasedUi.ui.xml M user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java M user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java M user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml -- http://groups.google.com/group/Google-Web-Toolkit-Contributors