[gwt-contrib] Re: - Refactors SpeedTracerLogger so that the start() and stop() methods are static (issue719801)
http://gwt-code-reviews.appspot.com/719801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Fixing a bug in AbstractListViewAdapter where it does not inform new views of the current data s... (issue721801)
Reviewers: Dan Rice, Description: Fixing a bug in AbstractListViewAdapter where it does not inform new views of the current data size. We now cache the data size and pass it to views as they are added. Please review this at http://gwt-code-reviews.appspot.com/721801/show Affected files: M user/src/com/google/gwt/view/client/AbstractListViewAdapter.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Fixing a bug in AbstractListViewAdapter where it does not inform new views of the current data s... (issue721801)
LGTM http://gwt-code-reviews.appspot.com/721801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: GRIN scene graph for GWT
I'm a little confused... It seems like the project you link to has more to do with tv's and dvd's... is the browser the "screen" in this case? Also, what is Javelin? the Grin page links to it but it looks like an non-existent project? On Jul 27, 6:56 pm, ggeorg wrote: > OK, I will prepare a first release at the end of this week. > > On 28 Éïýë, 03:45, Miroslav Pokorny > wrote: > > > > > Interesting can you make an official ready to go d/l available so we can > > skip the checkout and build step. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: - Refactors SpeedTracerLogger so that the start() and stop() methods are static (issue719801)
On 2010/07/28 07:11:01, zundel wrote: still LGTM http://gwt-code-reviews.appspot.com/719801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Begin to convert DynaTableRF sample to using UiBinder. (issue698802)
Reviewers: Ray Ryan, Description: Begin to convert DynaTableRF sample to using UiBinder. Next step will be to add app-wide event bus to disentangle widget relationships. Patch by: bobv Review by: rjrjr Please review this at http://gwt-code-reviews.appspot.com/698802/show Affected files: M samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/DynaTableRf.gwt.xml A samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DayCheckBox.java M samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DayFilterWidget.java A samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DayFilterWidget.ui.xml M samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableRf.java A samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableRf.ui.xml M samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableWidget.java A samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableWidget.ui.xml A samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/NavBar.ui.xml M samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/SchoolCalendarWidget.java M samples/dynatablerf/war/DynaTableRf.html -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Begin to convert DynaTableRF sample to using UiBinder. (issue698802)
Review requested. http://gwt-code-reviews.appspot.com/698802/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Call GZIPOutputStream.finish() from RpcServlet.processPost() to ensure the data received by the ... (issue722801)
Reviewers: tms, Description: Call GZIPOutputStream.finish() from RpcServlet.processPost() to ensure the data received by the browser is properly formatted. Patch by: bobv Review by: tms Please review this at http://gwt-code-reviews.appspot.com/722801/show Affected files: M user/src/com/google/gwt/rpc/server/RpcServlet.java Index: user/src/com/google/gwt/rpc/server/RpcServlet.java === --- user/src/com/google/gwt/rpc/server/RpcServlet.java (revision 8420) +++ user/src/com/google/gwt/rpc/server/RpcServlet.java (working copy) @@ -203,12 +203,14 @@ response.setCharacterEncoding("UTF-8"); // Configure the OutputStream based on configuration and capabilities +boolean canCompress = RPCServletUtils.acceptsGzipEncoding(request) +&& shouldCompressResponse(request, response); + OutputStream out; if (DUMP_PAYLOAD) { out = new ByteArrayOutputStream(); -} else if (RPCServletUtils.acceptsGzipEncoding(request) -&& shouldCompressResponse(request, response)) { +} else if (canCompress) { RPCServletUtils.setGzipEncodingHeader(response); out = new GZIPOutputStream(response.getOutputStream()); @@ -223,6 +225,13 @@ byte[] bytes = ((ByteArrayOutputStream) out).toByteArray(); System.out.println(new String(bytes, "UTF-8")); response.getOutputStream().write(bytes); +} else if (canCompress) { + /* + * We want to write the end of the gzip data, but not close the underlying + * OutputStream in case there are servlet filters that want to write + * headers after processPost(). + */ + ((GZIPOutputStream) out).finish(); } } -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Make javax.validation available to gwt clients. (issue711801)
http://gwt-code-reviews.appspot.com/711801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: GRIN scene graph for GWT
Yes hdcookbook project is a framework that helps seting up a blu-ray java developemnt enevironment (Blu-ray discs use JavaME for building menus based on Xlets kind of Applets, the name comes from JavaTV). GRIN is the scene graph that comes with hdcookbook framework and it is used for the UI. It is similar to JavaFX but optimized for blu-ray disc players and JavaME (no swing). The core of GRIN is the animation engine (in GWT the animation engine extends Animator). It runs and tries to render a Show file (or more than one). The Show is the Animator client that is called periodically by the Animator's onUpdate() method to paint the next frame of a Show. In GRIN a Show is a set of Segments (only one Segment is active at a time) and a Segment displays a set of Features (the visual elements). The GRIN show file is a simple TXT file that contains all the Show elements and their relations. For example, the demo: http://mosaic.arkasoft.com/GRIN4/ could be a slide show, or a presentation. The GRIN Show file for that demo is: http://pastebin.org/425611 Lines: 74-111 contain the description of each segment in this show. The first segment "Segment0" is triggered by the GWT EntryPoint class. This is why this Show element is exported at line 5. Each Segment can have a set of Features in two states: 'setup' or 'active'. Segment0 is used to setup: F:Scaler and F:Box1.Translator but has to active features. Segment0 will not show any visual elements and once setup is done it will move the Show to Segment1 (line: 80). Segment1 has two active Features (those that are already setup by Segment0) and will display them. Segment1 will then setup F:Scaler and F:Box2.Translator and the Show will be moved to Segment2 after the F:Box2.Transtor is done (see: line 23). And so on, until the Show is moved to Segment3 and back again to Segment0 (see line: 61). About Javelin this is a dead link, I assume this was a project that was using XML instead of TXT for the GRIN Show files. I am still playing with GRIN port to GWT. At least so far one could use it for presentations or games. Kind Regards, George. On 28 Ιούλ, 17:27, Nathan Wells wrote: > I'm a little confused... It seems like the project you link to has > more to do with tv's and dvd's... is the browser the "screen" in this > case? Also, what is Javelin? the Grin page links to it but it looks > like an non-existent project? > > On Jul 27, 6:56 pm, ggeorg wrote: > > > OK, I will prepare a first release at the end of this week. > > > On 28 Éïýë, 03:45, Miroslav Pokorny > > wrote: > > > > Interesting can you make an official ready to go d/l available so we can > > > skip the checkout and build step. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: - Refactors SpeedTracerLogger so that the start() and stop() methods are static (issue719801)
LGTM to me to, w/ minor nits that don't need any further review. http://gwt-code-reviews.appspot.com/719801/diff/18002/26011 File dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java (right): http://gwt-code-reviews.appspot.com/719801/diff/18002/26011#newcode68 dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java:68: this.startTimeNanos = normalizedTimeNanos(); Could be auto initialized since both ctors initialize it the same way. http://gwt-code-reviews.appspot.com/719801/diff/18002/26011#newcode130 dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java:130: private static class LazySpeedTracerLoggerHolder { I *believe* the only use for this class now is that it prevents auto-initialization when running a unit test that only uses the package-protected constructor. We should either doc that fact explicitly, or else get rid of this class as low-value. http://gwt-code-reviews.appspot.com/719801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
Re: [gwt-contrib] Re: GRIN scene graph for GWT
Thanks for that summary. Very cool project! Nathan Wells On Wed, Jul 28, 2010 at 10:54 AM, ggeorg wrote: > Yes hdcookbook project is a framework that helps seting up a blu-ray > java developemnt enevironment (Blu-ray discs use JavaME for building > menus based on Xlets kind of Applets, the name comes from JavaTV). > > GRIN is the scene graph that comes with hdcookbook framework and it is > used for the UI. It is similar to JavaFX but optimized for blu-ray > disc players and JavaME (no swing). > > The core of GRIN is the animation engine (in GWT the animation engine > extends Animator). It runs and tries to render a Show file (or more > than one). The Show is the Animator client that is called periodically > by the Animator's onUpdate() method to paint the next frame of a Show. > In GRIN a Show is a set of Segments (only one Segment is active at a > time) and a Segment displays a set of Features (the visual elements). > > The GRIN show file is a simple TXT file that contains all the Show > elements and their relations. For example, the demo: > > http://mosaic.arkasoft.com/GRIN4/ > > could be a slide show, or a presentation. The GRIN Show file for that > demo is: > > http://pastebin.org/425611 > > Lines: 74-111 contain the description of each segment in this show. > > The first segment "Segment0" is triggered by the GWT EntryPoint class. > This is why this Show element is exported at line 5. > Each Segment can have a set of Features in two states: 'setup' or > 'active'. Segment0 is used to setup: F:Scaler and F:Box1.Translator > but has to active features. Segment0 will not show any visual elements > and once setup is done it will move the Show to Segment1 (line: 80). > > Segment1 has two active Features (those that are already setup by > Segment0) and will display them. Segment1 will then setup F:Scaler and > F:Box2.Translator and the Show will be moved to Segment2 after the > F:Box2.Transtor is done (see: line 23). And so on, until the Show is > moved to Segment3 and back again to Segment0 (see line: 61). > > About Javelin this is a dead link, I assume this was a project that > was using XML instead of TXT for the GRIN Show files. > > I am still playing with GRIN port to GWT. At least so far one could > use it for presentations or games. > > Kind Regards, > George. > > On 28 Ιούλ, 17:27, Nathan Wells wrote: > > I'm a little confused... It seems like the project you link to has > > more to do with tv's and dvd's... is the browser the "screen" in this > > case? Also, what is Javelin? the Grin page links to it but it looks > > like an non-existent project? > > > > On Jul 27, 6:56 pm, ggeorg wrote: > > > > > OK, I will prepare a first release at the end of this week. > > > > > On 28 Éïýë, 03:45, Miroslav Pokorny > > > wrote: > > > > > > Interesting can you make an official ready to go d/l available so we > can > > > > skip the checkout and build step. > > -- > http://groups.google.com/group/Google-Web-Toolkit-Contributors -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r8421 committed - Rollback update to Jetty7 since it is causing classloader problems in...
Revision: 8421 Author: amitman...@google.com Date: Tue Jul 27 17:24:40 2010 Log: Rollback update to Jetty7 since it is causing classloader problems in conjunction with Spring. Will update to Jetty 7.1.6 after fixing these problems. Patch by: jat Review by: amitmanjhi http://code.google.com/p/google-web-toolkit/source/detail?r=8421 Added: /trunk/dev/core/src/com/google/gwt/dev/shell/jetty/JettyNullLogger.java Modified: /trunk/dev/build.xml /trunk/dev/core/src/com/google/gwt/dev/shell/jetty/JettyLauncher.java /trunk/eclipse/dev/.classpath /trunk/eclipse/user/.classpath /trunk/user/src/com/google/gwt/junit/JUnitShell.java === --- /dev/null +++ /trunk/dev/core/src/com/google/gwt/dev/shell/jetty/JettyNullLogger.java Tue Jul 27 17:24:40 2010 @@ -0,0 +1,50 @@ +/* + * Copyright 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.dev.shell.jetty; + +import org.mortbay.log.Logger; + +/** + * A Jetty {...@link Logger} that suppresses all output. + */ +public class JettyNullLogger implements Logger { + + public void debug(String msg, Throwable th) { + } + + public void debug(String msg, Object arg0, Object arg1) { + } + + public Logger getLogger(String name) { +return this; + } + + public void info(String msg, Object arg0, Object arg1) { + } + + public boolean isDebugEnabled() { +return false; + } + + public void setDebugEnabled(boolean enabled) { + } + + public void warn(String msg, Throwable th) { + } + + public void warn(String msg, Object arg0, Object arg1) { + } +} === --- /trunk/dev/build.xmlMon Jun 28 08:45:45 2010 +++ /trunk/dev/build.xmlTue Jul 27 17:24:40 2010 @@ -55,7 +55,7 @@ - name="jetty/jetty-7.0.2.v20100331/jetty-7.0.2.v20100331.jar" /> + name="protobuf/protobuf-2.2.0/protobuf-java-rebased-2.2.0.jar" /> @@ -112,8 +112,7 @@ src="${gwt.tools.lib}/apache/tapestry-util-text-4.0.2.jar" /> - src="${gwt.tools.lib}/jetty/jetty-7.0.2.v20100331/jetty-7.0.2.v20100331.jar" -/> + src="${gwt.tools.lib}/protobuf/protobuf-2.2.0/protobuf-java-rebased-2.2.0.jar" /> /> === --- /trunk/dev/core/src/com/google/gwt/dev/shell/jetty/JettyLauncher.java Thu Jun 24 08:11:49 2010 +++ /trunk/dev/core/src/com/google/gwt/dev/shell/jetty/JettyLauncher.java Tue Jul 27 17:24:40 2010 @@ -21,25 +21,24 @@ import com.google.gwt.core.ext.UnableToCompleteException; import com.google.gwt.dev.util.InstalledHelpInfo; -import org.eclipse.jetty.http.HttpFields; -import org.eclipse.jetty.http.HttpFields.Field; -import org.eclipse.jetty.server.AbstractConnector; -import org.eclipse.jetty.server.HttpConnection; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.RequestLog; -import org.eclipse.jetty.server.Response; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.RequestLogHandler; -import org.eclipse.jetty.server.nio.SelectChannelConnector; -import org.eclipse.jetty.util.component.AbstractLifeCycle; -import org.eclipse.jetty.util.log.Log; -import org.eclipse.jetty.util.log.Logger; -import org.eclipse.jetty.webapp.WebAppClassLoader; -import org.eclipse.jetty.webapp.WebAppContext; +import org.mortbay.component.AbstractLifeCycle; +import org.mortbay.jetty.AbstractConnector; +import org.mortbay.jetty.Request; +import org.mortbay.jetty.RequestLog; +import org.mortbay.jetty.Response; +import org.mortbay.jetty.Server; +import org.mortbay.jetty.HttpFields.Field; +import org.mortbay.jetty.handler.RequestLogHandler; +import org.mortbay.jetty.nio.SelectChannelConnector; +import org.mortbay.jetty.webapp.WebAppClassLoader; +import org.mortbay.jetty.webapp.WebAppContext; +import org.mortbay.log.Log; +import org.mortbay.log.Logger; import java.io.File; import java.io.IOException; import java.net.URL; +import java.util.Iterator; /** * A {...@link ServletContainerLauncher} for an embedded Jetty server. @@ -64,6 +63,7 @@ /** * Log an HTTP request/response to TreeLogger. */ +@SuppressWarnings("unchecked") public void log(Request request, Response response) { int status = response.getStatus(); if (status < 0) { @@ -110,23 +110,25 @@
[gwt-contrib] [google-web-toolkit] r8422 committed - 3 small things:...
Revision: 8422 Author: amitman...@google.com Date: Tue Jul 27 18:10:49 2010 Log: 3 small things: (a) fix checkstyle failures in bikeshed, (b) invoke checkstyle in bikeshed when checkstyle is run in trunk, (c) remove unnecessary @Override Patch by: amitmanjhi,unnurg Review by: unnurg,amitmanjhi http://code.google.com/p/google-web-toolkit/source/detail?r=8422 Modified: /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/UserInformationRecord.java /trunk/bikeshed/src/com/google/gwt/sample/expenses/server/domain/GaeUserInformation.java /trunk/build.xml /trunk/user/src/com/google/gwt/requestfactory/client/RequestFactoryLogHandler.java === --- /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java Fri Jul 23 15:42:40 2010 +++ /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java Tue Jul 27 18:10:49 2010 @@ -89,8 +89,8 @@ login.setUserInformation(userInformationRecord); } }; - requestFactory.userInformationRequest() - .getCurrentUserInformation().to(receiver).fire(); + requestFactory.userInformationRequest().getCurrentUserInformation().to( +receiver).fire(); /* Left side lets us pick from all the types of entities */ === --- /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/UserInformationRecord.java Fri Jul 23 10:49:57 2010 +++ /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/request/UserInformationRecord.java Tue Jul 27 18:10:49 2010 @@ -39,7 +39,9 @@ Property name = new Property("name", "Name", String.class); - // Most of the actual getXxx calls come from the UserInformationProvider - // interface + /* Most of the actual getXxx calls come from the UserInformationProvider + * interface. Redeclare this method, even though it is already in Record.java + * so checkstyle does not complain about an interface with no methods */ + String getId(); } === --- /trunk/bikeshed/src/com/google/gwt/sample/expenses/server/domain/GaeUserInformation.java Fri Jul 23 10:49:57 2010 +++ /trunk/bikeshed/src/com/google/gwt/sample/expenses/server/domain/GaeUserInformation.java Tue Jul 27 18:10:49 2010 @@ -23,7 +23,7 @@ /** * A user information class that uses the Google App Engine authentication - * framework + * framework. */ public class GaeUserInformation extends UserInformationImpl { private static UserService userService = UserServiceFactory.getUserService(); @@ -40,6 +40,14 @@ return user.getEmail(); } + public Long getId() { +User user = userService.getCurrentUser(); +if (user == null) { + return 0L; +} +return new Long(user.hashCode()); + } + public String getLoginUrl() { return userService.createLoginURL("RETURN_URL"); } @@ -55,14 +63,6 @@ } return user.getNickname(); } - - public Long getId() { -User user = userService.getCurrentUser(); -if (user == null) { - return 0L; -} -return new Long(user.hashCode()); - } public boolean isUserLoggedIn() { return userService.isUserLoggedIn(); === --- /trunk/build.xmlFri Jun 25 08:11:18 2010 +++ /trunk/build.xmlTue Jul 27 18:10:49 2010 @@ -116,6 +116,7 @@ + === --- /trunk/user/src/com/google/gwt/requestfactory/client/RequestFactoryLogHandler.java Mon Jul 26 15:35:20 2010 +++ /trunk/user/src/com/google/gwt/requestfactory/client/RequestFactoryLogHandler.java Tue Jul 27 18:10:49 2010 @@ -27,11 +27,11 @@ import java.util.logging.Logger; /** - * A Handler that does Remote Logging for applications using Request Factory + * A Handler that does Remote Logging for applications using Request Factory. */ public class RequestFactoryLogHandler extends Handler { class LoggingReceiver implements Receiver { -@Override + public void onSuccess(Long response) { if (response > 0) { logger.finest("Remote logging successful"); -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] dialog box and other capture-related obscure issue
[apologies i forgot about gwt-contributors group, i initially posted this on gwt users group] this is a courtesy message to inform the GWT team of a potential issue that you might like to investigate: http://code.google.com/p/google-web-toolkit/issues/detail?id=5167 i've been tracking this issue in pyjamas for two years, and, last time i checked the GWT KitchenSink showcase and gwt-dnd the issue was reproducible there. l. -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r8423 committed - Fixing a bug in AbstractListViewAdapter where it does not inform new v...
Revision: 8423 Author: jlaba...@google.com Date: Wed Jul 28 06:51:41 2010 Log: Fixing a bug in AbstractListViewAdapter where it does not inform new views of the current data size. We now cache the data size and pass it to views as they are added. Review at http://gwt-code-reviews.appspot.com/721801 Review by: r...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=8423 Modified: /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java === --- /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java Tue Jul 20 08:04:29 2010 +++ /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java Wed Jul 28 06:51:41 2010 @@ -1,12 +1,12 @@ /* * Copyright 2010 Google Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -22,22 +22,22 @@ /** * A base implementation of a data source for list views. - * + * * * Note: This class is new and its interface subject to change. * - * + * * @param the data type of records in the list */ public abstract class AbstractListViewAdapter implements ProvidesKey { - private class Delegate implements ListView.Delegate { + private class DataProvider implements ListView.DataProvider { public void onRangeChanged(ListView view) { AbstractListViewAdapter.this.onRangeChanged(view); } } - private final Delegate delegate = new Delegate(); + private final DataProvider dataProvider = new DataProvider(); private Set> views = new HashSet>(); @@ -46,10 +46,20 @@ */ private ProvidesKey keyProvider; + /** + * The last data size. + */ + private int lastDataSize = -1; + + /** + * Indicates whether or not the last data size is exact. + */ + private boolean lastDataSizeExact; + /** * Adds a view to this adapter. The current range of interest of the view will * be populated with data. - * + * * @param view a {...@link ListView}. */ public void addView(ListView view) { @@ -57,14 +67,23 @@ throw new IllegalStateException("ListView already added"); } views.add(view); -view.setDelegate(delegate); -delegate.onRangeChanged(view); + +// Set the data provider. Do not initialize until we have a change to set +// the data size. +view.setDataProvider(dataProvider, false); + +// Update the data size. +if (lastDataSize >= 0) { + view.setDataSize(lastDataSize, lastDataSizeExact); +} + +dataProvider.onRangeChanged(view); } /** * Get the key for a list item. The default implementation returns the item * itself. - * + * * @param item the list item * @return the key that represents the item */ @@ -74,7 +93,7 @@ /** * Get the {...@link ProvidesKey} that provides keys for list items. - * + * * @return the {...@link ProvidesKey} */ public ProvidesKey getKeyProvider() { @@ -83,7 +102,7 @@ /** * Get the current ranges of all views. - * + * * @return the ranges */ public Range[] getRanges() { @@ -97,7 +116,7 @@ /** * Get the set of views currently assigned to this adapter. - * + * * @return the set of {...@link ListView} */ public Set> getViews() { @@ -109,12 +128,12 @@ throw new IllegalStateException("ListView not present"); } views.remove(view); -view.setDelegate(null); +view.setDataProvider(null); } /** * Set the {...@link ProvidesKey} that provides keys for list items. - * + * * @param keyProvider the {...@link ProvidesKey} */ public void setKeyProvider(ProvidesKey keyProvider) { @@ -123,18 +142,20 @@ /** * Called when a view changes its range of interest. - * + * * @param view the view whose range has changed */ protected abstract void onRangeChanged(ListView view); /** * Inform the views of the total number of items that are available. - * + * * @param size the new size * @param exact true if the size is exact, false if it is a guess */ protected void updateDataSize(int size, boolean exact) { +lastDataSize = size; +lastDataSizeExact = exact; for (ListView view : views) { view.setDataSize(size, exact); } @@ -142,7 +163,7 @@ /** * Inform the views of the new data. - * + * * @param start the start index * @param length the length of the data * @param values the data values @@ -155,14 +176,14 @@ /** * Informs a single view of new data. - * + * * @param view th
[gwt-contrib] [google-web-toolkit] r8424 committed - Rolling back this change because it included changes from a different ...
Revision: 8424 Author: jlaba...@google.com Date: Wed Jul 28 07:12:59 2010 Log: Rolling back this change because it included changes from a different patch. Review at http://gwt-code-reviews.appspot.com/721801 http://code.google.com/p/google-web-toolkit/source/detail?r=8424 Modified: /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java === --- /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java Wed Jul 28 06:51:41 2010 +++ /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java Wed Jul 28 07:12:59 2010 @@ -1,12 +1,12 @@ /* * Copyright 2010 Google Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -22,22 +22,22 @@ /** * A base implementation of a data source for list views. - * + * * * Note: This class is new and its interface subject to change. * - * + * * @param the data type of records in the list */ public abstract class AbstractListViewAdapter implements ProvidesKey { - private class DataProvider implements ListView.DataProvider { + private class Delegate implements ListView.Delegate { public void onRangeChanged(ListView view) { AbstractListViewAdapter.this.onRangeChanged(view); } } - private final DataProvider dataProvider = new DataProvider(); + private final Delegate delegate = new Delegate(); private Set> views = new HashSet>(); @@ -46,20 +46,10 @@ */ private ProvidesKey keyProvider; - /** - * The last data size. - */ - private int lastDataSize = -1; - - /** - * Indicates whether or not the last data size is exact. - */ - private boolean lastDataSizeExact; - /** * Adds a view to this adapter. The current range of interest of the view will * be populated with data. - * + * * @param view a {...@link ListView}. */ public void addView(ListView view) { @@ -67,23 +57,14 @@ throw new IllegalStateException("ListView already added"); } views.add(view); - -// Set the data provider. Do not initialize until we have a change to set -// the data size. -view.setDataProvider(dataProvider, false); - -// Update the data size. -if (lastDataSize >= 0) { - view.setDataSize(lastDataSize, lastDataSizeExact); -} - -dataProvider.onRangeChanged(view); +view.setDelegate(delegate); +delegate.onRangeChanged(view); } /** * Get the key for a list item. The default implementation returns the item * itself. - * + * * @param item the list item * @return the key that represents the item */ @@ -93,7 +74,7 @@ /** * Get the {...@link ProvidesKey} that provides keys for list items. - * + * * @return the {...@link ProvidesKey} */ public ProvidesKey getKeyProvider() { @@ -102,7 +83,7 @@ /** * Get the current ranges of all views. - * + * * @return the ranges */ public Range[] getRanges() { @@ -116,7 +97,7 @@ /** * Get the set of views currently assigned to this adapter. - * + * * @return the set of {...@link ListView} */ public Set> getViews() { @@ -128,12 +109,12 @@ throw new IllegalStateException("ListView not present"); } views.remove(view); -view.setDataProvider(null); +view.setDelegate(null); } /** * Set the {...@link ProvidesKey} that provides keys for list items. - * + * * @param keyProvider the {...@link ProvidesKey} */ public void setKeyProvider(ProvidesKey keyProvider) { @@ -142,20 +123,18 @@ /** * Called when a view changes its range of interest. - * + * * @param view the view whose range has changed */ protected abstract void onRangeChanged(ListView view); /** * Inform the views of the total number of items that are available. - * + * * @param size the new size * @param exact true if the size is exact, false if it is a guess */ protected void updateDataSize(int size, boolean exact) { -lastDataSize = size; -lastDataSizeExact = exact; for (ListView view : views) { view.setDataSize(size, exact); } @@ -163,7 +142,7 @@ /** * Inform the views of the new data. - * + * * @param start the start index * @param length the length of the data * @param values the data values @@ -176,14 +155,14 @@ /** * Informs a single view of new data. - * + * * @param view the view to be updated * @param start the start index * @param length the length of the data * @param values t
[gwt-contrib] [google-web-toolkit] r8425 committed - Resubmitting this change because I accidentally included changes from ...
Revision: 8425 Author: jlaba...@google.com Date: Wed Jul 28 08:02:11 2010 Log: Resubmitting this change because I accidentally included changes from another patch the first time I submitted. Fixing a bug in AbstractListViewAdapter where it does not inform new views of the current data size. We now cache the data size and pass it to views as they are added. Review at http://gwt-code-reviews.appspot.com/721801 Review by: r...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=8425 Modified: /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java === --- /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java Wed Jul 28 07:12:59 2010 +++ /trunk/user/src/com/google/gwt/view/client/AbstractListViewAdapter.java Wed Jul 28 08:02:11 2010 @@ -1,12 +1,12 @@ /* * Copyright 2010 Google Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -22,11 +22,11 @@ /** * A base implementation of a data source for list views. - * + * * * Note: This class is new and its interface subject to change. * - * + * * @param the data type of records in the list */ public abstract class AbstractListViewAdapter implements ProvidesKey { @@ -46,10 +46,20 @@ */ private ProvidesKey keyProvider; + /** + * The last data size. + */ + private int lastDataSize = -1; + + /** + * Indicates whether or not the last data size is exact. + */ + private boolean lastDataSizeExact; + /** * Adds a view to this adapter. The current range of interest of the view will * be populated with data. - * + * * @param view a {...@link ListView}. */ public void addView(ListView view) { @@ -58,13 +68,19 @@ } views.add(view); view.setDelegate(delegate); + +// Update the data size. +if (lastDataSize >= 0) { + view.setDataSize(lastDataSize, lastDataSizeExact); +} + delegate.onRangeChanged(view); } /** * Get the key for a list item. The default implementation returns the item * itself. - * + * * @param item the list item * @return the key that represents the item */ @@ -74,7 +90,7 @@ /** * Get the {...@link ProvidesKey} that provides keys for list items. - * + * * @return the {...@link ProvidesKey} */ public ProvidesKey getKeyProvider() { @@ -83,7 +99,7 @@ /** * Get the current ranges of all views. - * + * * @return the ranges */ public Range[] getRanges() { @@ -97,7 +113,7 @@ /** * Get the set of views currently assigned to this adapter. - * + * * @return the set of {...@link ListView} */ public Set> getViews() { @@ -114,7 +130,7 @@ /** * Set the {...@link ProvidesKey} that provides keys for list items. - * + * * @param keyProvider the {...@link ProvidesKey} */ public void setKeyProvider(ProvidesKey keyProvider) { @@ -123,18 +139,20 @@ /** * Called when a view changes its range of interest. - * + * * @param view the view whose range has changed */ protected abstract void onRangeChanged(ListView view); /** * Inform the views of the total number of items that are available. - * + * * @param size the new size * @param exact true if the size is exact, false if it is a guess */ protected void updateDataSize(int size, boolean exact) { +lastDataSize = size; +lastDataSizeExact = exact; for (ListView view : views) { view.setDataSize(size, exact); } @@ -142,7 +160,7 @@ /** * Inform the views of the new data. - * + * * @param start the start index * @param length the length of the data * @param values the data values @@ -155,14 +173,14 @@ /** * Informs a single view of new data. - * + * * @param view the view to be updated * @param start the start index * @param length the length of the data * @param values the data values */ - protected void updateViewData(ListView view, int start, int length, - List values) { + protected void updateViewData( + ListView view, int start, int length, List values) { int end = start + length; Range range = view.getRange(); int curStart = range.getStart(); @@ -173,8 +191,8 @@ int realStart = curStart < start ? start : curStart; int realEnd = curEnd > end ? end : curEnd; int realLength = realEnd - realStart; - List realValues = values.subList(realStart - start, realStart - start - + realLength);
[gwt-contrib] [google-web-toolkit] r8426 committed - Call GZIPOutputStream.finish() from RpcServlet.processPost() to ensure...
Revision: 8426 Author: gwt.mirror...@gmail.com Date: Wed Jul 28 10:19:37 2010 Log: Call GZIPOutputStream.finish() from RpcServlet.processPost() to ensure the data received by the browser is properly formatted. Patch by: bobv Review by: tms Review at http://gwt-code-reviews.appspot.com/722801 http://code.google.com/p/google-web-toolkit/source/detail?r=8426 Modified: /trunk/user/src/com/google/gwt/rpc/server/RpcServlet.java === --- /trunk/user/src/com/google/gwt/rpc/server/RpcServlet.java Thu Jul 22 12:08:40 2010 +++ /trunk/user/src/com/google/gwt/rpc/server/RpcServlet.java Wed Jul 28 10:19:37 2010 @@ -203,12 +203,14 @@ response.setCharacterEncoding("UTF-8"); // Configure the OutputStream based on configuration and capabilities +boolean canCompress = RPCServletUtils.acceptsGzipEncoding(request) +&& shouldCompressResponse(request, response); + OutputStream out; if (DUMP_PAYLOAD) { out = new ByteArrayOutputStream(); -} else if (RPCServletUtils.acceptsGzipEncoding(request) -&& shouldCompressResponse(request, response)) { +} else if (canCompress) { RPCServletUtils.setGzipEncodingHeader(response); out = new GZIPOutputStream(response.getOutputStream()); @@ -223,6 +225,13 @@ byte[] bytes = ((ByteArrayOutputStream) out).toByteArray(); System.out.println(new String(bytes, "UTF-8")); response.getOutputStream().write(bytes); +} else if (canCompress) { + /* + * We want to write the end of the gzip data, but not close the underlying + * OutputStream in case there are servlet filters that want to write + * headers after processPost(). + */ + ((GZIPOutputStream) out).finish(); } } -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Fixing a bug in AbstractListViewAdapter where it does not inform new views of the current data s... (issue721801)
committed as r8425 http://gwt-code-reviews.appspot.com/721801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Renaming ListView.Delegate to ListView.DataProvider. setDataProvider() and setPager() now updat... (issue723801)
Reviewers: rjrjr_oogle.com, Description: Renaming ListView.Delegate to ListView.DataProvider. setDataProvider() and setPager() now update their delegates automatically. Adding overloads for setDataProvider() and setPager() to optionally choose not to initialize the delegates when they are set. As a result of the setPager() change, AbstractPager cannot call setPager() in its constructor, because subclasses of AbstractPager will not be initialized when onRangeOrSizeChanged() is called. We now call setPager in AbstractPager#initWidget() with a JavaDoc that the widget should be completely initialized when called the method. Please review this at http://gwt-code-reviews.appspot.com/723801/show Affected files: M samples/showcase/src/com/google/gwt/sample/showcase/client/content/cell/ShowMorePagerPanel.java M user/src/com/google/gwt/app/place/AbstractRecordListActivity.java M user/src/com/google/gwt/user/cellview/client/AbstractPager.java M user/src/com/google/gwt/user/cellview/client/CellBrowser.java M user/src/com/google/gwt/user/cellview/client/CellList.java M user/src/com/google/gwt/user/cellview/client/CellTable.java M user/src/com/google/gwt/user/cellview/client/CellTreeNodeView.java M user/src/com/google/gwt/user/cellview/client/PageSizePager.java M user/src/com/google/gwt/user/cellview/client/PagingListViewPresenter.java M user/src/com/google/gwt/user/cellview/client/SimplePager.java M user/src/com/google/gwt/view/client/AbstractListViewAdapter.java M user/src/com/google/gwt/view/client/ListView.java M user/src/com/google/gwt/view/client/PagingListView.java M user/test/com/google/gwt/user/cellview/client/AbstractPagerTest.java M user/test/com/google/gwt/user/cellview/client/PagingListViewPresenterTest.java M user/test/com/google/gwt/view/client/MockPagingListView.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Renaming ListView.Delegate to ListView.DataProvider. setDataProvider() and setPager() now updat... (issue723801)
Fixing typo in reviewer rjrjr's email. http://gwt-code-reviews.appspot.com/723801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r8427 committed - Fixed typo
Revision: 8427 Author: drfibona...@google.com Date: Wed Jul 28 13:15:35 2010 Log: Fixed typo http://code.google.com/p/google-web-toolkit/source/detail?r=8427 Modified: /wiki/CssResourceCookbook.wiki === --- /wiki/CssResourceCookbook.wiki Wed May 20 14:49:15 2009 +++ /wiki/CssResourceCookbook.wiki Wed Jul 28 13:15:35 2010 @@ -207,7 +207,7 @@ - + -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Make javax.validation available to gwt clients. (issue711801)
LGTM http://gwt-code-reviews.appspot.com/711801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Adding support for non-propagating events in Cell based widgets. In modern browsers, we make the... (issue720801)
http://gwt-code-reviews.appspot.com/720801/diff/1/4 File user/src/com/google/gwt/cell/client/EditTextCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/4#newcode231 user/src/com/google/gwt/cell/client/EditTextCell.java:231: } else if ("blur".equals(type)) { Are there really no constants for these strings? http://gwt-code-reviews.appspot.com/720801/diff/1/5 File user/src/com/google/gwt/cell/client/ImageCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/5#newcode20 user/src/com/google/gwt/cell/client/ImageCell.java:20: * of the image. Perhaps note that most GWT apps will be better served by using ImageResourceCell if they can? http://gwt-code-reviews.appspot.com/720801/diff/1/6 File user/src/com/google/gwt/cell/client/ImageLoadingCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/6#newcode36 user/src/com/google/gwt/cell/client/ImageLoadingCell.java:36: static interface Images extends ClientBundle { Interfaces are implicitly static. http://gwt-code-reviews.appspot.com/720801/diff/1/6#newcode50 user/src/com/google/gwt/cell/client/ImageLoadingCell.java:50: } Make Images public and provide a constructor that allows an alternative implementation. (The public Images interface probably shouldn't extend ClientBundle, though.) GWT.create the default one here in the zero args constructor. If there are other cells or widgets with client bundles they should do the same. This is the general scheme I want to see us take for getting ClientBundle integrated into the stock widget set. If you use that pattern here in M3, we have a chance to vet it. http://gwt-code-reviews.appspot.com/720801/diff/1/6#newcode96 user/src/com/google/gwt/cell/client/ImageLoadingCell.java:96: protected void renderErrorHtml(String value, Object key, StringBuilder sb) { Having to subclass to customize things like this kind of sucks. Instead, rename your Images bundle to Resources, and have it include include a few Renderer that are used here and in the other protected methods, and make them private. In fact, if you do that the Resources interface wouldn't need to have that ImageResource on it at all. They could provide any old loading implementation they want, not necessarily an image based one. http://gwt-code-reviews.appspot.com/720801/diff/1/10 File user/src/com/google/gwt/user/cellview/client/CellImpl.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/10#newcode27 user/src/com/google/gwt/user/cellview/client/CellImpl.java:27: abstract class CellImpl { This name confused me. I thought I was reading code that would be used in various cells, not in the widgets themselves. CellEventDispatchImpl? http://gwt-code-reviews.appspot.com/720801/diff/1/11 File user/src/com/google/gwt/user/cellview/client/CellImplStandard.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/11#newcode47 user/src/com/google/gwt/user/cellview/client/CellImplStandard.java:47: * Handle an event from a cell. Please add: Used by {...@link #initEventSystem} http://gwt-code-reviews.appspot.com/720801/diff/1/12 File user/src/com/google/gwt/user/cellview/client/CellImplTrident.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/12#newcode83 user/src/com/google/gwt/user/cellview/client/CellImplTrident.java:83: DOM.sinkEvents(target, eventBits); Could stray uncaught exceptions or something break your clean up scheme? Anything you can do to make it more bullet proof? http://gwt-code-reviews.appspot.com/720801/diff/1/14 File user/src/com/google/gwt/user/cellview/client/CellTable.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/14#newcode769 user/src/com/google/gwt/user/cellview/client/CellTable.java:769: public void removeColumn(int index) { Shouldn't there be something going on here to unsink events you no longer need? http://gwt-code-reviews.appspot.com/720801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Faster edit-distance computation in JsFunctionClusterer (issue669801)
http://gwt-code-reviews.appspot.com/669801/diff/20001/21006 File dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java (right): http://gwt-code-reviews.appspot.com/669801/diff/20001/21006#newcode62 dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java:62: if (code.startsWith("function ")) { Yeah, the cross-site linker munges the way functions are defined. If you want to change this, check that it works for the cross-site linker. http://gwt-code-reviews.appspot.com/669801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Faster edit-distance computation in JsFunctionClusterer (issue669801)
http://gwt-code-reviews.appspot.com/669801/diff/20001/21006 File dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java (right): http://gwt-code-reviews.appspot.com/669801/diff/20001/21006#newcode62 dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java:62: if (code.startsWith("function ")) { Lex, could you point me the relevant code? I didn't see any declaration of the second form in the JavaScript output. As I explained in my previous comment, this regex was causing JsFunctionClusterer to emit duplicate code. http://gwt-code-reviews.appspot.com/669801/diff/20001/21006#newcode92 dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java:92: for (int functionIndex : functionIndices) { Thanks. :-) http://gwt-code-reviews.appspot.com/669801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Add ability to get Boolean types from Record (issue703802)
Reviewers: , Description: If you create a Record that needs to transfer a Boolean type, it fails. Here is the patch to fix it. Please review this at http://gwt-code-reviews.appspot.com/703802/show Affected files: user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java Index: user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java === --- user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java (revision 8401) +++ user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java (working copy) @@ -81,6 +81,9 @@ // "Cannot ask for a property before setting it: " // + property.getName(); +if (Boolean.class.equals(property.getType())) { + return (V) Boolean.valueOf(getBoolean(property.getName())); +} if (Integer.class.equals(property.getType())) { return (V) Integer.valueOf(getInt(property.getName())); } @@ -238,6 +241,10 @@ return @java.util.Date::createFrom(D)(millis); }-*/;; + private native boolean getBoolean(String name) /*-{ +return this[name]; + }-*/; + private native double getDouble(String name) /*-{ return this[name]; }-*/; -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Fix warnings and checkstyle errors (issue724801)
Reviewers: Ray Ryan, Description: Fix warnings and checkstyle errors Please review this at http://gwt-code-reviews.appspot.com/724801/show Affected files: M dev/core/src/com/google/gwt/dev/jdt/TypeRefVisitor.java M dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java M user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java M user/src/com/google/gwt/app/place/Activity.java M user/src/com/google/gwt/i18n/client/BidiPolicy.java M user/src/com/google/gwt/junit/JUnitShell.java M user/src/com/google/gwt/requestfactory/client/RequestFactoryLogHandler.java M user/src/com/google/gwt/requestfactory/server/Logging.java M user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java M user/src/com/google/gwt/user/client/ui/ValueBox.java M user/src/com/google/gwt/valuestore/client/DeltaValueStoreJsonImpl.java M user/src/com/google/gwt/valuestore/shared/DeltaValueStore.java M user/test/com/google/gwt/user/client/ui/TextBoxBaseTestBase.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Adding support for non-propagating events in Cell based widgets. In modern browsers, we make the... (issue720801)
I'll update the change with your recommendations. http://gwt-code-reviews.appspot.com/720801/diff/1/4 File user/src/com/google/gwt/cell/client/EditTextCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/4#newcode231 user/src/com/google/gwt/cell/client/EditTextCell.java:231: } else if ("blur".equals(type)) { There are constants defined within the GWT logical events: BlurEvent.getType().getName() It feels a little heavyweight though. http://gwt-code-reviews.appspot.com/720801/diff/1/5 File user/src/com/google/gwt/cell/client/ImageCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/5#newcode20 user/src/com/google/gwt/cell/client/ImageCell.java:20: * of the image. On 2010/07/28 20:53:37, Ray Ryan wrote: Perhaps note that most GWT apps will be better served by using ImageResourceCell if they can? Done. http://gwt-code-reviews.appspot.com/720801/diff/1/6 File user/src/com/google/gwt/cell/client/ImageLoadingCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/6#newcode36 user/src/com/google/gwt/cell/client/ImageLoadingCell.java:36: static interface Images extends ClientBundle { On 2010/07/28 20:53:37, Ray Ryan wrote: Interfaces are implicitly static. Done. http://gwt-code-reviews.appspot.com/720801/diff/1/6#newcode96 user/src/com/google/gwt/cell/client/ImageLoadingCell.java:96: protected void renderErrorHtml(String value, Object key, StringBuilder sb) { I can change this to use Renderers. http://gwt-code-reviews.appspot.com/720801/diff/1/10 File user/src/com/google/gwt/user/cellview/client/CellImpl.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/10#newcode27 user/src/com/google/gwt/user/cellview/client/CellImpl.java:27: abstract class CellImpl { How about CellBasedWidgetImpl? We may want to add more than just event handling at some point. I'd call it CellWidgetImpl, but I'm working on a CellWidget (wraps a Cell) in another CL, so that won't work either. http://gwt-code-reviews.appspot.com/720801/diff/1/11 File user/src/com/google/gwt/user/cellview/client/CellImplStandard.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/11#newcode47 user/src/com/google/gwt/user/cellview/client/CellImplStandard.java:47: * Handle an event from a cell. On 2010/07/28 20:53:37, Ray Ryan wrote: Please add: Used by {...@link #initEventSystem} Done. http://gwt-code-reviews.appspot.com/720801/diff/1/12 File user/src/com/google/gwt/user/cellview/client/CellImplTrident.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/12#newcode83 user/src/com/google/gwt/user/cellview/client/CellImplTrident.java:83: DOM.sinkEvents(target, eventBits); Its pretty unlikely. The first thing we do in onBrowserEvent() is remove the event listener, before user code has a chance to throw an exception. If a user subclasses a Cell based widget, they could potentially throw an error, and the event handler won't be removed. But then, a user can override onAttach/Detach and throw an error, which has the same effect. Making it more bullet proof wouldn't be easy. We could keep a list of Elements that have a listeners and remove the listeners onDetach(), but we'd be adding/removing from the list on every event. Personally, I think the risk of a leak is pretty small. http://gwt-code-reviews.appspot.com/720801/diff/1/14 File user/src/com/google/gwt/user/cellview/client/CellTable.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/14#newcode769 user/src/com/google/gwt/user/cellview/client/CellTable.java:769: public void removeColumn(int index) { We can't be sure that the Cell is the only reason that the event was sunk in the first place. For example, the user might use a ButtonCell that consumes click events, but might also add a ClickHandler to the Widget, which also requires the click event to be sunk. If we unsink the click event when we remove the Column with the ButtonCell, it will cause the ClickHandler to stop firing too. Most of the performance cost is sinking the event in the first place, so we only want to sink events we need. There really isn't any penalty in keeping an event sunk (except maybe if you sink mousemove events). Even then, its a relatively rare use case to remove columns. There is a comment at the end of the method explaining why we don't sink events. http://gwt-code-reviews.appspot.com/720801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] First pass at keyboard navigation (currently only for CellTable) (issue710802)
Reviewers: jlabanca, Description: First pass at keyboard navigation (currently only for CellTable) Please review this at http://gwt-code-reviews.appspot.com/710802/show Affected files: M user/src/com/google/gwt/cell/client/AbstractCell.java M user/src/com/google/gwt/cell/client/Cell.java M user/src/com/google/gwt/cell/client/CheckboxCell.java M user/src/com/google/gwt/cell/client/EditTextCell.java M user/src/com/google/gwt/cell/client/IconCellDecorator.java M user/src/com/google/gwt/user/cellview/client/CellBrowser.java M user/src/com/google/gwt/user/cellview/client/CellList.java M user/src/com/google/gwt/user/cellview/client/CellTable.java M user/src/com/google/gwt/user/cellview/client/CellTreeNodeView.java M user/src/com/google/gwt/user/cellview/client/Column.java M user/src/com/google/gwt/user/cellview/client/PagingListViewPresenter.java M user/test/com/google/gwt/user/cellview/client/PagingListViewPresenterTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Patch from Gustav Trede (gustav.tr...@gmail.com) (issue716801)
http://gwt-code-reviews.appspot.com/716801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Begin to convert DynaTableRF sample to using UiBinder. (issue698802)
http://gwt-code-reviews.appspot.com/698802/diff/1/5 File samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DayFilterWidget.ui.xml (right): http://gwt-code-reviews.appspot.com/698802/diff/1/5#newcode17 samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DayFilterWidget.ui.xml:17: field="calendar"> This is crafty, but it's too magical. I assume you resorted to this so that you could make calendar a constructor arg for DayCheckBox. I don't think it needs to be, or at any rate it isn't worth paying this price for. Wouldn't the code be a bit less mysterious if you called DayCheckBox#init(Calendar) on these things from java? I'm finding widgets a lot easier to deal with if they have few or no constructor args, which is one of the wins of the MVP thing. http://gwt-code-reviews.appspot.com/698802/diff/1/7 File samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableRf.ui.xml (right): http://gwt-code-reviews.appspot.com/698802/diff/1/7#newcode18 samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableRf.ui.xml:18: Pretty sure you want EM, not EX. Here and elsewhere. http://gwt-code-reviews.appspot.com/698802/diff/1/7#newcode24 samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableRf.ui.xml:24: Here, on the other hand, adding a calender="{calendar}" would feel pretty natural, rather than using provided=true like you're doing. You might be running into the the "no forward references" bug, but I think you can get around that by moving your g:east below your g:center. I'd really like to fix that problem. If you go for this, it will be less brittle if you may DayFilterWidget#setCalendar rather than trying to make it a constructor arg. We'll be able to fix the forward reference thing, but abuse of @UiConstructor invites circular dependency problems if it gets out of hand. http://gwt-code-reviews.appspot.com/698802/diff/1/8 File samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableWidget.java (right): http://gwt-code-reviews.appspot.com/698802/diff/1/8#newcode41 samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableWidget.java:41: class NavBar extends Composite { I was going to ding you on the nest here, but I see why you did it. Really, it's pretty cool that this works. :-) http://gwt-code-reviews.appspot.com/698802/diff/1/8#newcode57 samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/DynaTableWidget.java:57: this)); Easier to read if you put the NavBarBinder in a convenience variable. Don't need the crazy param type arg that way. NavBarBinder navBarBinder = GWT.create(NavBarBinder.class); http://gwt-code-reviews.appspot.com/698802/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: First pass at keyboard navigation (currently only for CellTable) (issue710802)
Looks good with a few concerns. After we try this out, we should go back and make sure we're covering all of the use cases. http://gwt-code-reviews.appspot.com/710802/diff/1/3 File user/src/com/google/gwt/cell/client/Cell.java (right): http://gwt-code-reviews.appspot.com/710802/diff/1/3#newcode71 user/src/com/google/gwt/cell/client/Cell.java:71: boolean isEditing(Element element, Object key); I think we should also pass the value for consistency. http://gwt-code-reviews.appspot.com/710802/diff/1/5 File user/src/com/google/gwt/cell/client/EditTextCell.java (right): http://gwt-code-reviews.appspot.com/710802/diff/1/5#newcode221 user/src/com/google/gwt/cell/client/EditTextCell.java:221: if ("keypress".equals(type)) { Please double check that the new value is set in the input box on keypress. I'm pretty sure you have to wait for keyup before the value actually changes. http://gwt-code-reviews.appspot.com/710802/diff/1/9 File user/src/com/google/gwt/user/cellview/client/CellTable.java (right): http://gwt-code-reviews.appspot.com/710802/diff/1/9#newcode527 user/src/com/google/gwt/user/cellview/client/CellTable.java:527: focusable.focus(); Don't focus in the constructor. http://gwt-code-reviews.appspot.com/710802/diff/1/9#newcode547 user/src/com/google/gwt/user/cellview/client/CellTable.java:547: Event.KEYEVENTS); Sinking events is surprisingly costly. It looks like you only need to sink ONKEYPRESS instead of all KEYEVENTS. http://gwt-code-reviews.appspot.com/710802/diff/1/9#newcode682 user/src/com/google/gwt/user/cellview/client/CellTable.java:682: if ("keypress".equals(eventType) && !cellIsEditing) { Can you move this above the eventTarget stuff? http://gwt-code-reviews.appspot.com/710802/diff/1/9#newcode757 user/src/com/google/gwt/user/cellview/client/CellTable.java:757: view.setFocus(); Do you always want to focus here if the cell isn't editing? What about an image load event? http://gwt-code-reviews.appspot.com/710802/diff/1/12 File user/src/com/google/gwt/user/cellview/client/PagingListViewPresenter.java (right): http://gwt-code-reviews.appspot.com/710802/diff/1/12#newcode486 user/src/com/google/gwt/user/cellview/client/PagingListViewPresenter.java:486: view.setFocus(); I don't think we should always steal focus and give it to the view. We should probably only update focus if the table already had focus. http://gwt-code-reviews.appspot.com/710802/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Faster edit-distance computation in JsFunctionClusterer (issue669801)
http://gwt-code-reviews.appspot.com/669801/diff/20001/21006 File dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java (right): http://gwt-code-reviews.appspot.com/669801/diff/20001/21006#newcode62 dev/core/src/com/google/gwt/dev/jjs/impl/JsFunctionClusterer.java:62: if (code.startsWith("function ")) { I am having trouble finding your earlier comment. I would think, though, that if you saw duplicate statements being output, then there's a problem somewhere other than right here. This part of the code only decides which statements can be reordered and which must be left in place. If that decision is wrong, it still shouldn't cause anything to be emitted twice. Anyway, to see what the cross-site linker does, add the following to Showcase.gwt.xml, compile Showcase, and look at deferredjs/*/44.cache.js. You'll see things like the following, which should be clusterable: jslink.UYc=function(b){/*code goes here*/} http://gwt-code-reviews.appspot.com/669801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Fix warnings and checkstyle errors (issue724801)
LGTM http://gwt-code-reviews.appspot.com/724801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
Re: [gwt-contrib] Add ability to get Boolean types from Record (issue703802)
Thanks. A broader fix for this and most other types has been on the verge of being committed for something like a week now. Stay tuned. On Wed, Jul 28, 2010 at 2:10 PM, wrote: > Reviewers: , > > Description: > If you create a Record that needs to transfer a Boolean type, it fails. > Here is the patch to fix it. > > Please review this at http://gwt-code-reviews.appspot.com/703802/show > > Affected files: > user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java > > > Index: user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java > === > --- user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java > (revision 8401) > +++ user/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java > (working copy) > @@ -81,6 +81,9 @@ > // "Cannot ask for a property before setting it: " > // + property.getName(); > > +if (Boolean.class.equals(property.getType())) { > + return (V) Boolean.valueOf(getBoolean(property.getName())); > +} > if (Integer.class.equals(property.getType())) { > return (V) Integer.valueOf(getInt(property.getName())); > } > @@ -238,6 +241,10 @@ > return @java.util.Date::createFrom(D)(millis); > }-*/;; > > + private native boolean getBoolean(String name) /*-{ > +return this[name]; > + }-*/; > + > private native double getDouble(String name) /*-{ > return this[name]; > }-*/; > > > -- > http://groups.google.com/group/Google-Web-Toolkit-Contributors > -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Adding support for non-propagating events in Cell based widgets. In modern browsers, we make the... (issue720801)
LGTM http://gwt-code-reviews.appspot.com/720801/diff/1/4 File user/src/com/google/gwt/cell/client/EditTextCell.java (right): http://gwt-code-reviews.appspot.com/720801/diff/1/4#newcode231 user/src/com/google/gwt/cell/client/EditTextCell.java:231: } else if ("blur".equals(type)) { That's pretty heinous, agreed. Really those TYPE constants should be referring to some other central set of constants. Nevermind. :-( http://gwt-code-reviews.appspot.com/720801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Faster edit-distance computation in JsFunctionClusterer (issue669801)
Oh, sorry. I made this comment somewhere else. The problem is the endStatements() method doesn't use the regex to recognize the other declaration style. In addition, I believe the current regex don't match the declaration emitted by the cross-linker. The dot in the name prevent a match. http://gwt-code-reviews.appspot.com/669801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Faster edit-distance computation in JsFunctionClusterer (issue669801)
On Wed, Jul 28, 2010 at 6:15 PM, wrote: > Oh, sorry. I made this comment somewhere else. The problem is the > endStatements() method doesn't use the regex to recognize the other > declaration style. > Ah, yes! Well at the least this code should be moved to a subroutine. I believe the version with the regex is the desired version. > > In addition, I believe the current regex don't match the declaration > emitted by the cross-linker. The dot in the name prevent a match. I thought so at first, but it's using find(). So it should still match. Perhaps it matches too many -Lex -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Faster edit-distance computation in JsFunctionClusterer (issue669801)
On 2010/07/28 22:25:06, Lex wrote: I thought so at first, but it's using find(). So it should still match. Perhaps it matches too many The caret in the regex "^(function |[A-Za-z0-9_$]+=function)" only matches the beginning of a string. So I don't think using find() changes anything. http://gwt-code-reviews.appspot.com/669801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Ensure bridgeMethods is initialized, even when constructed from other subtypes, such as MissingT... (issue708802)
Reviewers: scottb, Description: Ensure bridgeMethods is initialized, even when constructed from other subtypes, such as MissingTypeBinding. Please review this at http://gwt-code-reviews.appspot.com/708802/show Affected files: M dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java Index: dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java === --- dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java (revision 8426) +++ dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java (working copy) @@ -38,7 +38,7 @@ protected ReferenceBinding[] superInterfaces; protected FieldBinding[] fields; protected MethodBinding[] methods; - protected MethodBinding[] bridgeMethods; + protected MethodBinding[] bridgeMethods = Binding.NO_METHODS; protected ReferenceBinding[] memberTypes; protected TypeVariableBinding[] typeVariables; -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Put in a new fix for DevMode logging that uses bytecode rewriting rather than swapping out (issue725801)
Reviewers: scottb, Description: Put in a new fix for DevMode logging that uses bytecode rewriting rather than swapping out the LogManager and should work with App Engine apps Review by: sco...@google.com Please review this at http://gwt-code-reviews.appspot.com/725801/show Affected files: M dev/core/src/com/google/gwt/dev/DevModeBase.java M dev/core/src/com/google/gwt/dev/shell/BrowserChannelServer.java D dev/core/src/com/google/gwt/dev/shell/DevModeLogManager.java M dev/core/src/com/google/gwt/dev/shell/GWTBridgeImpl.java A dev/core/src/com/google/gwt/dev/shell/rewrite/AddLoggingPrefix.java M dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java M dev/core/super/com/google/gwt/core/client/GWTBridge.java D dev/core/test/com/google/gwt/dev/DevModeBaseTest.java D dev/core/test/com/google/gwt/dev/shell/DevModeLogManagerTest.java M user/src/com/google/gwt/core/client/GWT.java M user/src/com/google/gwt/junit/GWTDummyBridge.java M user/src/com/google/gwt/logging/client/LogConfiguration.java A user/src/com/google/gwt/logging/impl/DevModeLoggingFixes.java M user/src/com/google/gwt/logging/impl/LoggerImplRegular.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Split LogManager class into an set of Impl classes so that any LogManager calls (issue638802)
Reviewers: fredsa, Description: Split LogManager class into an set of Impl classes so that any LogManager calls in code will compile out cleanly when logging is disabled Please review this at http://gwt-code-reviews.appspot.com/638802/show Affected files: M user/src/com/google/gwt/logging/LogImpl.gwt.xml A user/src/com/google/gwt/logging/impl/LogManagerImpl.java A user/src/com/google/gwt/logging/impl/LogManagerImplNull.java A user/src/com/google/gwt/logging/impl/LogManagerImplRegular.java M user/super/com/google/gwt/emul/java/util/logging/LogManager.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r8430 committed - Adds UiBinder parser for AbsolutePanel....
Revision: 8430 Author: rj...@google.com Date: Wed Jul 28 11:49:56 2010 Log: Adds UiBinder parser for AbsolutePanel. Patch by konstantin.scheg...@gmail.com Review by rj...@google.com http://gwt-code-reviews.appspot.com/715802/show Review by: robertvaw...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=8430 Added: /trunk/user/src/com/google/gwt/uibinder/elementparsers/AbsolutePanelParser.java /trunk/user/test/com/google/gwt/uibinder/elementparsers/AbsolutePanelParserTest.java Modified: /trunk/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java /trunk/user/src/com/google/gwt/user/client/ui/AbsolutePanel.java /trunk/user/src/com/google/gwt/user/client/ui/LayoutPanel.java /trunk/user/test/com/google/gwt/uibinder/UiBinderJreSuite.java /trunk/user/test/com/google/gwt/uibinder/rebind/DesignTimeUtilsTest.java /trunk/user/test/com/google/gwt/uibinder/test/UiJavaResources.java /trunk/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.java /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.java /trunk/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml === --- /dev/null +++ /trunk/user/src/com/google/gwt/uibinder/elementparsers/AbsolutePanelParser.java Wed Jul 28 11:49:56 2010 @@ -0,0 +1,63 @@ +/* + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.uibinder.elementparsers; + +import com.google.gwt.core.ext.UnableToCompleteException; +import com.google.gwt.core.ext.typeinfo.JClassType; +import com.google.gwt.uibinder.rebind.UiBinderWriter; +import com.google.gwt.uibinder.rebind.XMLElement; + +/** + * Parses {...@link com.google.gwt.user.client.ui.AbsolutePanel AbsolutePanel} + * widgets. + */ +public class AbsolutePanelParser implements ElementParser { + + private static final String CHILD = "child"; + + public void parse(XMLElement elem, String fieldName, JClassType type, + UiBinderWriter writer) throws UnableToCompleteException { + +// Parse children. +for (XMLElement positionElem : elem.consumeChildElements()) { + // Ensure position element. + if (!isPositionElement(elem, positionElem)) { +writer.die(positionElem, "Only <%s:%s> children are allowed.", +elem.getPrefix(), CHILD); + } + + // Parse position. + String left = positionElem.consumeRequiredIntAttribute("left"); + String top = positionElem.consumeRequiredIntAttribute("top"); + + // Add child widget. + XMLElement widgetElem = positionElem.consumeSingleChildElement(); + String widgetFieldName = writer.parseElementToField(widgetElem); + writer.addStatement("%1$s.add(%2$s, %3$s, %4$s);", fieldName, + widgetFieldName, left, top); +} + } + + private boolean isPositionElement(XMLElement parent, XMLElement child) { +if (!parent.getNamespaceUri().equals(child.getNamespaceUri())) { + return false; +} +if (!CHILD.equals(child.getLocalName())) { + return false; +} +return true; + } +} === --- /dev/null +++ /trunk/user/test/com/google/gwt/uibinder/elementparsers/AbsolutePanelParserTest.java Wed Jul 28 11:49:56 2010 @@ -0,0 +1,119 @@ +/* + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.uibinder.elementparsers; + +import com.google.gwt.core.ext.UnableToCompleteException; + +import junit.framework.TestCase; + +import java.util.Iterator; + +/** + * Test for {...@link AbsolutePanelParser}. + */ +public class AbsolutePanelParserTest extends TestCase { + + private static final String PARSED_TYPE = "com.google.gwt.user.client.ui.AbsolutePanel"; + + private ElementParserTester tester; + + @Override + public void setUp() throws Exception { +super.setUp(); +tester = new ElementParserTester(PARSED_TYPE, new AbsolutePa
[gwt-contrib] [google-web-toolkit] r8431 committed - Make javax.validation available to gwt clients....
Revision: 8431 Author: gwt.mirror...@gmail.com Date: Wed Jul 28 18:16:13 2010 Log: Make javax.validation available to gwt clients. This is a first step towards supporting JSR-303 in the GWT client. Review at http://gwt-code-reviews.appspot.com/711801 Review by: sp...@google.com http://code.google.com/p/google-web-toolkit/source/detail?r=8431 Added: /trunk/user/src/com/google/gwt/validation /trunk/user/src/com/google/gwt/validation/Validation.gwt.xml /trunk/user/src/javax /trunk/user/src/javax/validation /trunk/user/src/javax/validation/Validation.gwt.xml /trunk/user/test/com/google/gwt/validation /trunk/user/test/com/google/gwt/validation/ValidationSuite.java /trunk/user/test/com/google/gwt/validation/client /trunk/user/test/com/google/gwt/validation/client/SimpleSample.java /trunk/user/test/com/google/gwt/validation/client/SimpleSampleTest.java Modified: /trunk/user/build.xml === --- /dev/null +++ /trunk/user/src/com/google/gwt/validation/Validation.gwt.xml Wed Jul 28 18:16:13 2010 @@ -0,0 +1,22 @@ + +2.0.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.1/distro-source/core/src/gwt-module.dtd";> + + + + + + === --- /dev/null +++ /trunk/user/src/javax/validation/Validation.gwt.xml Wed Jul 28 18:16:13 2010 @@ -0,0 +1,21 @@ + +2.0.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.1/distro-source/core/src/gwt-module.dtd";> + + + + + === --- /dev/null +++ /trunk/user/test/com/google/gwt/validation/ValidationSuite.java Wed Jul 28 18:16:13 2010 @@ -0,0 +1,35 @@ +/* + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.validation; + +import com.google.gwt.junit.tools.GWTTestSuite; +import com.google.gwt.validation.client.SimpleSampleTest; + +import junit.framework.Test; + +/** + * All validation tests. + */ +public class ValidationSuite { + + public static Test suite() { +GWTTestSuite suite = new GWTTestSuite( +"Test suite for all validation code."); +suite.addTestSuite(SimpleSampleTest.class); +return suite; + } + +} === --- /dev/null +++ /trunk/user/test/com/google/gwt/validation/client/SimpleSample.java Wed Jul 28 18:16:13 2010 @@ -0,0 +1,34 @@ +/* + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.validation.client; + +import javax.validation.constraints.NotNull; + +/** + * A simple sample class to test javax.validation + */ +public class SimpleSample { + @NotNull + private String name; + + public String getName() { +return name; + } + + public void setName(String name) { +this.name = name; + } +} === --- /dev/null +++ /trunk/user/test/com/google/gwt/validation/client/SimpleSampleTest.java Wed Jul 28 18:16:13 2010 @@ -0,0 +1,40 @@ +/* + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.gwt.validation.client; + +import com.google.gwt.junit.client.GWTTestCase; + +/** + * Tests for {...@link SimpleSample}. + */ +public class SimpleSampleTest extends GWTTestCase { + SimpleSample sample; + + @Override + protected void gwtSetUp() { +sample = new SimpleSample(); + } + + public void testAnnotatedClassCompiles()
[gwt-contrib] [google-web-toolkit] r8432 committed - Rolls back UiBinder AbsolutePanelParser due to breakage of existing co...
Revision: 8432 Author: rj...@google.com Date: Wed Jul 28 13:10:14 2010 Log: Rolls back UiBinder AbsolutePanelParser due to breakage of existing code. http://code.google.com/p/google-web-toolkit/source/detail?r=8432 Deleted: /trunk/user/src/com/google/gwt/uibinder/elementparsers/AbsolutePanelParser.java /trunk/user/test/com/google/gwt/uibinder/elementparsers/AbsolutePanelParserTest.java Modified: /trunk/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java /trunk/user/src/com/google/gwt/user/client/ui/AbsolutePanel.java /trunk/user/src/com/google/gwt/user/client/ui/LayoutPanel.java /trunk/user/test/com/google/gwt/uibinder/UiBinderJreSuite.java /trunk/user/test/com/google/gwt/uibinder/rebind/DesignTimeUtilsTest.java /trunk/user/test/com/google/gwt/uibinder/test/UiJavaResources.java /trunk/user/test/com/google/gwt/uibinder/test/client/UiBinderTest.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/AbsolutePanelParser.java Wed Jul 28 11:49:56 2010 +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.gwt.uibinder.elementparsers; - -import com.google.gwt.core.ext.UnableToCompleteException; -import com.google.gwt.core.ext.typeinfo.JClassType; -import com.google.gwt.uibinder.rebind.UiBinderWriter; -import com.google.gwt.uibinder.rebind.XMLElement; - -/** - * Parses {...@link com.google.gwt.user.client.ui.AbsolutePanel AbsolutePanel} - * widgets. - */ -public class AbsolutePanelParser implements ElementParser { - - private static final String CHILD = "child"; - - public void parse(XMLElement elem, String fieldName, JClassType type, - UiBinderWriter writer) throws UnableToCompleteException { - -// Parse children. -for (XMLElement positionElem : elem.consumeChildElements()) { - // Ensure position element. - if (!isPositionElement(elem, positionElem)) { -writer.die(positionElem, "Only <%s:%s> children are allowed.", -elem.getPrefix(), CHILD); - } - - // Parse position. - String left = positionElem.consumeRequiredIntAttribute("left"); - String top = positionElem.consumeRequiredIntAttribute("top"); - - // Add child widget. - XMLElement widgetElem = positionElem.consumeSingleChildElement(); - String widgetFieldName = writer.parseElementToField(widgetElem); - writer.addStatement("%1$s.add(%2$s, %3$s, %4$s);", fieldName, - widgetFieldName, left, top); -} - } - - private boolean isPositionElement(XMLElement parent, XMLElement child) { -if (!parent.getNamespaceUri().equals(child.getNamespaceUri())) { - return false; -} -if (!CHILD.equals(child.getLocalName())) { - return false; -} -return true; - } -} === --- /trunk/user/test/com/google/gwt/uibinder/elementparsers/AbsolutePanelParserTest.java Wed Jul 28 11:49:56 2010 +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.gwt.uibinder.elementparsers; - -import com.google.gwt.core.ext.UnableToCompleteException; - -import junit.framework.TestCase; - -import java.util.Iterator; - -/** - * Test for {...@link AbsolutePanelParser}. - */ -public class AbsolutePanelParserTest extends TestCase { - - private static final String PARSED_TYPE = "com.google.gwt.user.client.ui.AbsolutePanel"; - - private ElementParserTester tester; - - @Override - public void setUp() throws Exception { -super.setUp(); -tester = new ElementParserTester(PARSED_TYPE, new AbsolutePanelParser()); - } - - public void testBadChild_namespace() throws Exception { -checkBadLine("", "Only ch
[gwt-contrib] [google-web-toolkit] r8433 committed - Turn off logging in bikeshed, till Unnur commits her bytecode rewritin...
Revision: 8433 Author: gwt.mirror...@gmail.com Date: Wed Jul 28 18:21:23 2010 Log: Turn off logging in bikeshed, till Unnur commits her bytecode rewriting fix. At the moment, dev mode refresh is broken. Patch by: amitmanjhi,unnurg Review by: unnurg http://code.google.com/p/google-web-toolkit/source/detail?r=8433 Modified: /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/Scaffold.gwt.xml /trunk/user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java === --- /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/Scaffold.gwt.xml Mon Jul 26 15:35:20 2010 +++ /trunk/bikeshed/src/com/google/gwt/sample/expenses/gwt/Scaffold.gwt.xml Wed Jul 28 18:21:23 2010 @@ -18,14 +18,13 @@ - /> + than the system handler, so only that one is enabled for now @@ -35,5 +34,5 @@ - + --> === --- /trunk/user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java Mon Jul 26 15:35:20 2010 +++ /trunk/user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java Wed Jul 28 18:21:23 2010 @@ -22,7 +22,6 @@ import com.google.gwt.http.client.RequestCallback; import com.google.gwt.http.client.RequestException; import com.google.gwt.http.client.Response; -import com.google.gwt.requestfactory.client.RequestFactoryLogHandler; import com.google.gwt.requestfactory.shared.Receiver; import com.google.gwt.requestfactory.shared.RequestEvent; import com.google.gwt.requestfactory.shared.RequestEvent.State; @@ -159,7 +158,7 @@ // to this handler since it would cause an infinite loop. // TODO(unnurg): Once this is all set up, ensure that the severe messages // in this class do not cause infinite loops during legitimate errors. -logger.addHandler(new RequestFactoryLogHandler(this)); +// logger.addHandler(new RequestFactoryLogHandler(this)); logger.severe("Successful initialization!"); } -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r8434 committed - Ensure bridgeMethods is initialized, even when constructed from other ...
Revision: 8434 Author: to...@google.com Date: Wed Jul 28 16:37:27 2010 Log: Ensure bridgeMethods is initialized, even when constructed from other subtypes, such as MissingTypeBinding. Review at http://gwt-code-reviews.appspot.com/708802 http://code.google.com/p/google-web-toolkit/source/detail?r=8434 Modified: /trunk/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java === --- /trunk/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java Wed Jul 28 11:12:18 2010 +++ /trunk/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java Wed Jul 28 16:37:27 2010 @@ -38,7 +38,7 @@ protected ReferenceBinding[] superInterfaces; protected FieldBinding[] fields; protected MethodBinding[] methods; - protected MethodBinding[] bridgeMethods; + protected MethodBinding[] bridgeMethods = Binding.NO_METHODS; protected ReferenceBinding[] memberTypes; protected TypeVariableBinding[] typeVariables; -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] [google-web-toolkit] r8435 committed - Fix 1.6 style @Overrides, and quiet a warning.
Revision: 8435 Author: rj...@google.com Date: Wed Jul 28 16:58:39 2010 Log: Fix 1.6 style @Overrides, and quiet a warning. http://code.google.com/p/google-web-toolkit/source/detail?r=8435 Modified: /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java === --- /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java Wed Jul 28 11:12:18 2010 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java Wed Jul 28 16:58:39 2010 @@ -478,6 +478,7 @@ this.jsFunction = jsFunction; } +@SuppressWarnings("unchecked") @Override public void resolve(JsNameRef x) { // Only resolve unqualified names @@ -503,7 +504,6 @@ private class ExternalTypeCreator implements ExternalTypeTask { -@Override public void process(String klass, BinaryTypeBinding binding) { if (program.getFromTypeMap(klass) == null) { // NB(tobyr) There are a few cases where certain compiler intrinsic @@ -517,7 +517,6 @@ private class ExternalTypeResolver implements ExternalTypeTask { -@Override public void process(String klass, BinaryTypeBinding binding) { if (binding != null) { JDeclaredType type = program.getFromTypeMap(klass); -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Partial commit towards making instance methods real. Merged the execution paths (issue726801)
Reviewers: Ray Ryan, Description: Partial commit towards making instance methods real. Merged the execution paths for the syncRequest and RequestObject. Patch by: amitmanjhi Review by: rjrjr (desk review) Please review this at http://gwt-code-reviews.appspot.com/726801/show Affected files: M bikeshed/src/com/google/gwt/sample/expenses/gwt/Scaffold.gwt.xml M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ExpenseDetails.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ExpenseList.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/ExpenseTree.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/MobileExpenseDetails.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/MobileExpenseEntry.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/MobileExpenseList.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/MobileReportEntry.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/MobileReportList.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/client/Scaffold.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/request/EmployeeRequest.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/request/ExpenseRequest.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/request/ReportRequest.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/request/UserInformationRecord.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeDetailsActivity.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditActivity.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeEditView.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/employee/EmployeeListActivity.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportDetailsActivity.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditActivity.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportEditView.java M bikeshed/src/com/google/gwt/sample/expenses/gwt/ui/report/ReportListActivity.java M dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java M user/src/com/google/gwt/app/place/AbstractRecordEditActivity.java M user/src/com/google/gwt/app/place/AbstractRecordListActivity.java M user/src/com/google/gwt/app/place/RecordEditView.java M user/src/com/google/gwt/requestfactory/client/RequestFactoryLogHandler.java M user/src/com/google/gwt/requestfactory/client/impl/AbstractDoubleRequest.java M user/src/com/google/gwt/requestfactory/client/impl/AbstractIntegerRequest.java M user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonListRequest.java M user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonObjectRequest.java M user/src/com/google/gwt/requestfactory/client/impl/AbstractLongRequest.java M user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java A user/src/com/google/gwt/requestfactory/client/impl/AbstractVoidRequest.java A user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStore.java A user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java A user/src/com/google/gwt/requestfactory/client/impl/RecordKey.java M user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java A user/src/com/google/gwt/requestfactory/client/impl/ValueStoreJsonImpl.java M user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java A user/src/com/google/gwt/requestfactory/shared/Instance.java M user/src/com/google/gwt/requestfactory/shared/Receiver.java M user/src/com/google/gwt/requestfactory/shared/RecordListRequest.java M user/src/com/google/gwt/requestfactory/shared/RecordRequest.java M user/src/com/google/gwt/requestfactory/shared/RequestFactory.java D user/src/com/google/gwt/requestfactory/shared/SyncRequest.java D user/src/com/google/gwt/valuestore/client/DeltaValueStoreJsonImpl.java D user/src/com/google/gwt/valuestore/client/RecordKey.java D user/src/com/google/gwt/valuestore/client/ValueStoreJsonImpl.java D user/src/com/google/gwt/valuestore/shared/DeltaValueStore.java M user/src/com/google/gwt/valuestore/shared/SyncResult.java M user/src/com/google/gwt/valuestore/shared/ValueStore.java A user/test/com/google/gwt/requestfactory/RequestFactoryTest.gwt.xml A user/test/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImplTest.java M user/test/com/google/gwt/valuestore/ValueStoreSuite.java D user/test/com/google/gwt/valuestore/ValueStoreTest.gwt.xml D user/test/com/google/gwt/valuestore/client/DeltaValueStoreJsonImplTest.java M user/test/com/google/gwt/valuestore/shared/impl/RecordJsoImplTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Split LogManager class into an set of Impl classes so that any LogManager calls (issue638802)
LGTM http://gwt-code-reviews.appspot.com/638802/diff/1/2 File user/src/com/google/gwt/logging/LogImpl.gwt.xml (right): http://gwt-code-reviews.appspot.com/638802/diff/1/2#newcode11 user/src/com/google/gwt/logging/LogImpl.gwt.xml:11: correct indentation http://gwt-code-reviews.appspot.com/638802/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Add two new ClientBundle annotations: (issue714801)
http://gwt-code-reviews.appspot.com/714801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] No longer require RPCs to contain a 'Content-Length' HTTP request header, thus (issue727801)
Reviewers: jat, Description: No longer require RPCs to contain a 'Content-Length' HTTP request header, thus enabling support for XHR with 'Transfer-Encoding: Chunked'. Review by: j...@google.com Please review this at http://gwt-code-reviews.appspot.com/727801/show Affected files: M user/src/com/google/gwt/user/server/rpc/RPCServletUtils.java M user/test/com/google/gwt/user/server/rpc/RPCServletUtilsTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors