latos / wave-protocol

Automatically exported from code.google.com/p/wave-protocol
0 stars 0 forks source link

GWT 2.1 Adoption #122

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
GWT 2.1 RC1 is out - with exciting features like MVP support. How about 
updating the corresponding GWT libraries?

Original issue reported on code.google.com by vega113 on 21 Oct 2010 at 5:50

GoogleCodeExporter commented 8 years ago
Or let's put it this way - are there any objections to update the GWT jars to 
version 2.1 RC1 ?

Original comment by vega113 on 22 Oct 2010 at 6:03

GoogleCodeExporter commented 8 years ago
Can you give more details on what the differences are? Is there anything that 
needs to change besides just the jars? Did you get it working with 2.1RC1 on 
your end?

Original comment by ljvderijk on 22 Oct 2010 at 8:28

GoogleCodeExporter commented 8 years ago
I am talking about 2 jars in the /wave-protocol/third_party/codegen/gwt
folder
i.e
gwt-dev.jar
gwt-user.jar
the current version is 2.1.0M2

What's new in 2.1 RC1: 
http://code.google.com/webtoolkit/doc/trunk/ReleaseNotes.html
I am in particular interested in the "MVP Framework" feature - to implement 
navigation between login and main pages.
Also "Data Presentation Widgets" i.e. cell widgets can be used to implement the 
WaveList panel, i.e. currently the panel that holds the List with waves titles 
is an HTMLPanel and each element (wave title) is a dynamically created div 
element. Cell widget can provide a better implementation (similar to the one in 
GWT Showcase - 
http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellList) - cell lists 
can quickly render large custom lists.

Original comment by vega113 on 22 Oct 2010 at 9:21

GoogleCodeExporter commented 8 years ago
Redirecting to our GWT guru.

Original comment by ljvderijk on 23 Oct 2010 at 9:03

GoogleCodeExporter commented 8 years ago

Is there another reason besides the Place & Activity API that an upgraded set 
of jars would be useful to Wave In A Box?  I have no objection to upgrading 
jars just for the sake of an upgrade (in particular, there are some bugs in 
2.1.0M2 that I believe are now fixed on GWT trunk), but beyond that, there 
doesn't appear to be any need.  In particular, I don't think it's worth 
upgrading the jars just to get the Place & Activity APIs, or any of the new 
widgets.

The Place & Activity documentation states:
"What about apps with multiple panels in the same window whose state should all 
be saved together in a single URL? GWT 2.1 does not attempt to provide a 
generic implementation of a composite Place."

The main application logic of the web client would not benefit from these APIs. 
 The login-page flow perhaps, but to me that seems over-engineered, and not 
worth updating the jars and introducing a potentially large download chunk just 
for that.

MVP is definitely the right kind of pattern to be using in an application like 
wave-in-a-box, but you don't need new GWT jars for that: plain old code is more 
than sufficient.

The CellList example is interesting, but IMO it has poor scrolling behaviour 
(just drag the scrollbar around in the Showcase example and you'll see what I 
mean).  It's great for getting some paging behaviour with a small amount of 
application work, I assume, but there is an alternative implementation that 
gives good scrolling interaction that is not too hard to implement directly. 

The Google Wave client tried many alternatives for paging content in the search 
panel, comparing the performance of widget vs non-widget, element rotation vs 
full-list reset, element recycling vs disposal etc, as well as general 
performance measurements like widget APIs vs DOM APIs vs HTML string building, 
and there were some surprising results, which made it not a trivial problem to 
find the best implementation.  Perhaps we can re-use some of that knowledge for 
the Wave-In-A-Box search panel (I don't have the results handy however, but I'm 
not convinced that GWT's CellList is implemented using the best-performing 
mechanism).  I'd encourage you to play around with these kind of alternatives 
too.

The best direction for Wave-In-A-Box is one that reduces, rather than 
increases, the use of Widgets.

Original comment by hearn...@google.com on 26 Oct 2010 at 12:58

GoogleCodeExporter commented 8 years ago
Thanks for your answer. 
I think you are right regarding applicability of Place & Activity API.
Regarding the CellList - GWT release notes mention that: "Cell Widgets allow 
developers to create highly efficient views on top of large data sets... They 
build up chunks of HTML that is injected into the DOM" - so the use of CellList 
does not increase use of Widgets. 
The current implementation of WaveList panel does not have any pagination at 
all, so I thought that an out of the BOX GWT mechanism would be a great 
enhancement. Moreover, even if the implementation has poor scrolling - there's 
a chance that it will be fixed in future releases.

Original comment by vega113 on 26 Oct 2010 at 8:09

GoogleCodeExporter commented 8 years ago
Final version of GWT 2.1 is released
http://googlewebtoolkit.blogspot.com/2010/10/announcing-final-release-of-gwt-21.
html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/NWLT+(Goo
gle+Web+Toolkit+Blog)

Original comment by vega113 on 1 Nov 2010 at 6:52

GoogleCodeExporter commented 8 years ago
GWT jars were updated to version 2.1.1

Original comment by vega113 on 21 Jan 2011 at 7:43