Re: GWT Widget styling using CSS and UiBinder

2011-07-08 Thread vik
Thanks for the reply Rob. I did try the piece of code you have pasted
even previously but it did not work. Even a simple rule like a color
change or a bg-color change within all the parenthesis don't work.
This technique doesn't work if I put it in the ui.xml nor does it work
in a .css file referred as a CSSResource interface. Again, the
examples online are incomplete. If possible, please share a working
example. Thank you again!

Vikram

On Jul 7, 9:12 pm, Rob Coops rco...@gmail.com wrote:
 On Thu, Jul 7, 2011 at 11:09 AM, vik vmgu...@gmail.com wrote:
  Can somebody please post a simple example on how to style a 'fairly-
  complex' widget like the gwt-DatePicker with different colors and
  assets? There are a few examples online for the date picker but they
  either are incomplete or don't use the UiBinder technique. I would
  like to use the UiBinder ui.xml files to store information as in
  colors, bg images etc. Thanks!

  --
  You received this message because you are subscribed to the Google Groups
  Google Web Toolkit group.
  To post to this group, send email to google-web-toolkit@googlegroups.com.
  To unsubscribe from this group, send email to
  google-web-toolkit+unsubscr...@googlegroups.com.
  For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.

 Hi Vik,

 I would suggest using the build in styles
 CSS Style Rules

 .gwt-DatePicker { }
 .datePickerMonthSelector { the month selector widget }
 .datePickerMonth { the month in the month selector widget }
 .datePickerPreviousButton { the previous month button }
 .datePickerNextButton { the next month button }
 .datePickerDays { the portion of the picker that shows the days }
 .datePickerWeekdayLabel { the label over weekdays }
 .datePickerWeekendLabel { the label over weekends }
 .datePickerDay { a single day }
 .datePickerDayIsToday { today's date }
 .datePickerDayIsWeekend { a weekend day }
 .datePickerDayIsFiller { a day in another month }
 .datePickerDayIsValue { the selected day }
 .datePickerDayIsDisabled { a disabled day }
 .datePickerDayIsHighlighted { the currently highlighted day }
 .datePickerDayIsValueAndHighlighted { the highlighted day if it is also
 selected }

 Since with UIBinder you can only assign a single style name and as far as I
 know this is not automatically used to replace the datePicker part of the
 default styles you are pretty much stuck with these once. Though I would not
 put it past the Google team to be smart enough to do that I fear that this
 might just not work at the moment. To be able to do this and still add you
 own style use: addStyleNames.

 Regards,

 Rob

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: GWT Designer Eclipse Problem

2011-07-08 Thread Navindian
Even I have tried a lot to get GWT Designer working. Can anybody suggest the
right usage of GWT Designer?

On Sat, Jun 4, 2011 at 3:51 PM, Noor baken...@gmail.com wrote:

 Hi,

 I am using Ubuntu , Eclipse 3.5 with GWT designer. But when I placing
 a control on the my interface, the whole interface is becomming black,
 I have installed Eclipse 3.6 and getting the same problem

 Snapshot: http://i.stack.imgur.com/Z8jwD.png

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Google plugin for Eclipse withou WindowBuilder (GWT Designer)

2011-07-08 Thread Sebastian
Forget about it, the new update on the Designers beta Version fixed the
problem. It now runs like a charm

2011/7/6 Sebastian open.sebast...@gmail.com

 Hello Vrto,

 may I ask which Ubuntu Version do you use? Is it 32 or 64 Bit? I am
 using 11.04 with AMD64 and can´t get the Designer running at all
 (Eclipse Indigo). I ask beacause it is a clean Installation and I
 supposed that the failure was on the Ubuntu side.

 2011/6/16 Vrto michal.vrt...@gmail.com

 BTW, I've seen your Google IO 2011 presentation (n1) and I was
 surprised how fast GWT designer worked on your Windows machine (and it
 looked virtualized from Mac OS X if I remember correctly!). Is it
 possible that it's slower on Linux? With Eclipse on Sun's JRE? I guess
 I will try it with fresh install of Indigio, where my Eclipse
 installation will not be huge monster with billion of plugins if
 that's any better.

 On Jun 16, 10:41 pm, Eric Clayberg clayb...@google.com wrote:
  I would be curious as to how the latest GWT Designer build feels to
  you...
 
  http://code.google.com/webtoolkit/tools/download-gwtdesigner-beta.html
 
  On Jun 16, 1:08 pm, Vrto michal.vrt...@gmail.com wrote:
 
 
 
 
 
 
 
   I disabled that of course, but when Eclipse stars it does always stuff
   like updatinggwtdesignerpaletten, building somegwtdesigner
   stuff and I am minimalist I just dont want that heh :)
 
   On Jun 16, 7:02 pm, Renato Beserra renatobese...@gmail.com wrote:
 
I don't like theGWTDesignereither, but how does it cause you
 problems?
 
Is it opening your classes by default or something?
 
2011/6/16 Vrto michal.vrt...@gmail.com
 
 Hello, I like Google Plugin for Eclipse, but I don't likeGWT
Designer. It's slow, buggy, keeps updating itself, loads terribly
 load
 and so on. Is there any chance of releasing google plugin
 withoutGWT
Designer?
 
 Thanks!
 
 --
 You received this message because you are subscribed to the Google
 Groups
 Google Web Toolkit group.
 To post to this group, send email to
 google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.
 
--
Renato Beserra Sousa

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: GWT Designer Eclipse Problem

2011-07-08 Thread Sebastian
The same here with Ubuntu 11.04 x64 and Eclipse Indigo. My installed
libWebKit Versions are libwebkitgtk-1.0.so.0.6.0  and
libwebkitgtk-3.0.so.0.6.0.
Tried the workaround but had no luck with it.

2011/7/7 Alexander Mitin alexander.mi...@gmail.com

 Try this workaround:
 1. Open terminal and change dir to /usr/lib
 2. Do sudo ln -s libwebkitgtk-1.0.so.0.6.0 libwebkit-1.0.so.2 command,
 where libwebkitgtk-1.0.so.0.6.0 is the webkit lib file, it's name
 could be different in version numbers.
 3. Restart Eclipse.

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Gwt touch ui

2011-07-08 Thread Gal Dolber
Is anyone doing some open source work on gwt + touch ui?

This demo is totally incredible
http://dev.sencha.com/deploy/touch/examples/kitchensink/

We must have this implemented with gwt

-- 
Guit: Elegant, beautiful, modular and *production ready* gwt applications.

http://code.google.com/p/guit/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Gwt touch ui

2011-07-08 Thread Alain Ekambi
gwt4air 2.2 will actually have a Gwt Touch module
Stay tuned :)

2011/7/8 Gal Dolber gal.dol...@gmail.com

 Is anyone doing some open source work on gwt + touch ui?

 This demo is totally incredible
 http://dev.sencha.com/deploy/touch/examples/kitchensink/

 We must have this implemented with gwt

 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/




  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




-- 

GWT API for  non Java based platforms
http://code.google.com/p/gwt4air/
http://www.gwt4air.appspot.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: GWT Widget styling using CSS and UiBinder

2011-07-08 Thread Rob Coops
Here is what I did to test this:

!DOCTYPE ui:UiBinder SYSTEM http://dl.google.com/gwt/DTD/xhtml.ent;
ui:UiBinder xmlns:ui=urn:ui:com.google.gwt.uibinder
 xmlns:g=urn:import:com.google.gwt.user.client.ui
xmlns:p1=urn:import:com.google.gwt.user.datepicker.client
g:HTMLPanel
 p1:DatePicker/
/g:HTMLPanel
/ui:UiBinder

(can't be more basic then that)

And in my css file I have simply added the following lines:
.gwt-DatePicker { font-size: 40pt; }
.datePickerMonthSelector { color: red; }
.datePickerMonth { font-weight: bold; }

I did this in a new project where I did nothing more then simply alter the
.css file and create this one UiBinder bit of code, adding it directly to
the root layout panel (I like standards mode :-) I am not using the
CSSResource interface and I found that if you do the following the styles
are ignored:

!DOCTYPE ui:UiBinder SYSTEM http://dl.google.com/gwt/DTD/xhtml.ent;
ui:UiBinder xmlns:ui=urn:ui:com.google.gwt.uibinder
 xmlns:g=urn:import:com.google.gwt.user.client.ui
xmlns:p1=urn:import:com.google.gwt.user.datepicker.client
ui:style
 .gwt-DatePicker { font-size: 40pt; }
.datePickerMonthSelector { color: red; }
 .datePickerMonth { font-weight: bold; }
.datePickerPreviousButton {  }
.datePickerNextButton {  }
 .datePickerDays {  }
.datePickerWeekdayLabel {  }
.datePickerWeekendLabel {  }
 .datePickerDay {  }
.datePickerDayIsToday {  }
.datePickerDayIsWeekend {  }
 .datePickerDayIsFiller {  }
.datePickerDayIsValue {  }
.datePickerDayIsDisabled {  }
 .datePickerDayIsHighlighted {  }
.datePickerDayIsValueAndHighlighted {  }
 /ui:style
g:HTMLPanel
p1:DatePicker/
 /g:HTMLPanel
/ui:UiBinder

Now personally I am very very much against inline styles or any styles other
then in a separate stylesheet so I actually don't mind that this does not
work. Though I do not see why it wouldn't as the classes are applied to the
elements so the UiBinder should not ignore this code just because it is not
assigned later on using addStyleNames or setStyleName but it seems
that optimization has removed this bit of code from the final product as it
sees it as never used. (Unless I am totally crazy and doing this completely
wrong)

As far as examples and documentation goes I agree the GWT documentation is
though extensive very much a trail and error thing which quite often feels
incomplete or assuming a bit more knowledge of the GWT framework then a
beginner with it can have.

Anyway the styles do get applied though it might be that using CSSResource
the file is loaded to early and the default style sheet from GWT gets
loaded after overwriting your styles at least that is the only reason I can
come up with why it would not work in your case.

Hope this helps,

Rob


On Fri, Jul 8, 2011 at 8:17 AM, vik vmgu...@gmail.com wrote:

 Thanks for the reply Rob. I did try the piece of code you have pasted
 even previously but it did not work. Even a simple rule like a color
 change or a bg-color change within all the parenthesis don't work.
 This technique doesn't work if I put it in the ui.xml nor does it work
 in a .css file referred as a CSSResource interface. Again, the
 examples online are incomplete. If possible, please share a working
 example. Thank you again!

 Vikram

 On Jul 7, 9:12 pm, Rob Coops rco...@gmail.com wrote:
  On Thu, Jul 7, 2011 at 11:09 AM, vik vmgu...@gmail.com wrote:
   Can somebody please post a simple example on how to style a 'fairly-
   complex' widget like the gwt-DatePicker with different colors and
   assets? There are a few examples online for the date picker but they
   either are incomplete or don't use the UiBinder technique. I would
   like to use the UiBinder ui.xml files to store information as in
   colors, bg images etc. Thanks!
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google Web Toolkit group.
   To post to this group, send email to
 google-web-toolkit@googlegroups.com.
   To unsubscribe from this group, send email to
   google-web-toolkit+unsubscr...@googlegroups.com.
   For more options, visit this group at
  http://groups.google.com/group/google-web-toolkit?hl=en.
 
  Hi Vik,
 
  I would suggest using the build in styles
  CSS Style Rules
 
  .gwt-DatePicker { }
  .datePickerMonthSelector { the month selector widget }
  .datePickerMonth { the month in the month selector widget }
  .datePickerPreviousButton { the previous month button }
  .datePickerNextButton { the next month button }
  .datePickerDays { the portion of the picker that shows the days }
  .datePickerWeekdayLabel { the label over weekdays }
  .datePickerWeekendLabel { the label over weekends }
  .datePickerDay { a single day }
  .datePickerDayIsToday { today's date }
  .datePickerDayIsWeekend { a weekend day }
  .datePickerDayIsFiller { a day in another month }
  .datePickerDayIsValue { the selected day }
  .datePickerDayIsDisabled { a disabled day }
  .datePickerDayIsHighlighted { the currently highlighted day }
  .datePickerDayIsValueAndHighlighted { the 

Re: CellTable with SimplePager displaying GAE datastore data in async

2011-07-08 Thread Ioan Agopian
What framework are you using to connect to the datastore?

I've not used JDO or JPA, but in Objectify you can set an offset and a
limit on a query. In onRangeChanged you can get them like this:
Range range = display.getVisibleRange();
Integer offset = range.getStart();
Integer limit = range.getLength();

So there's no need to work with cursors. If this functionality is not
exposed through your datastore layer you could always use the low
level api.

On Jul 7, 7:47 pm, George Agiasoglou george.agiasog...@newsint.co.uk
wrote:
 Hi there,

 I have a celltable which displays data from GAE datastore using an
 AsyncDataProvider.

 Everything works fine up to the last page. So if pageSize is 10 and the
 results are 35, doing 1-10, 11-20, 21-30 and back works fine. In order to do
 this I store cursors so that I can continue from where I left off or go
 back.

 If however, I go to the last page and the range changes to display 25-35 and
 then back like so, 35-25, 25-15, 15-5 etc the cursors are rendered useless.

 Have you comes across this problem? What are your experiences?

 Maybe I am not using SimplePager properly? I am not complaining how the
 SimplePager is implemented, and I do understand the fact it manages to
 always maintain the same number of records in View and keep the hight
 constant.

 Will the only solution be to write my own custom pager?

 Thanks,
 George

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Gwt touch ui

2011-07-08 Thread Gal Dolber
Hi Alain,
touch support with flash? do you mean only for android devices?

On Fri, Jul 8, 2011 at 3:27 AM, Alain Ekambi jazzmatad...@googlemail.comwrote:

 gwt4air 2.2 will actually have a Gwt Touch module
 Stay tuned :)

 2011/7/8 Gal Dolber gal.dol...@gmail.com

  Is anyone doing some open source work on gwt + touch ui?

 This demo is totally incredible
 http://dev.sencha.com/deploy/touch/examples/kitchensink/

 We must have this implemented with gwt

 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/




  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




 --

 GWT API for  non Java based platforms
 http://code.google.com/p/gwt4air/
 http://www.gwt4air.appspot.com/


  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




-- 
Guit: Elegant, beautiful, modular and *production ready* gwt applications.

http://code.google.com/p/guit/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Gwt touch ui

2011-07-08 Thread Alain Ekambi
Not Flash.
Pure Gwt based solution

2011/7/8 Gal Dolber gal.dol...@gmail.com

 Hi Alain,
 touch support with flash? do you mean only for android devices?

 On Fri, Jul 8, 2011 at 3:27 AM, Alain Ekambi 
 jazzmatad...@googlemail.comwrote:

 gwt4air 2.2 will actually have a Gwt Touch module
 Stay tuned :)

 2011/7/8 Gal Dolber gal.dol...@gmail.com

  Is anyone doing some open source work on gwt + touch ui?

 This demo is totally incredible
 http://dev.sencha.com/deploy/touch/examples/kitchensink/

 We must have this implemented with gwt

 --
 Guit: Elegant, beautiful, modular and *production ready* gwt
 applications.

 http://code.google.com/p/guit/




  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com
 .
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




 --

 GWT API for  non Java based platforms
 http://code.google.com/p/gwt4air/
 http://www.gwt4air.appspot.com/


  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/




  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




-- 

GWT API for  non Java based platforms
http://code.google.com/p/gwt4air/
http://www.gwt4air.appspot.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Gwt touch ui

2011-07-08 Thread Gal Dolber
great news! thanks Alain

On Friday, July 8, 2011, Alain Ekambi jazzmatad...@googlemail.com wrote:
 Not Flash.Pure Gwt based solution

 2011/7/8 Gal Dolber gal.dol...@gmail.com

 Hi Alain,touch support with flash? do you mean only for android devices?
 On Fri, Jul 8, 2011 at 3:27 AM, Alain Ekambi jazzmatad...@googlemail.com 
 wrote:
 gwt4air 2.2 will actually have a Gwt Touch moduleStay tuned :)




 2011/7/8 Gal Dolber gal.dol...@gmail.com




 Is anyone doing some open source work on gwt + touch ui?
 This demo is totally 
 incredible http://dev.sencha.com/deploy/touch/examples/kitchensink/






 We must have this implemented with gwt
 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/








 --
 You received this message because you are subscribed to the Google Groups 
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-web-toolkit?hl=en.


 --

 GWT API for  non Java based platforms
 http://code.google.com/p/gwt4air/http://www.gwt4air.appspot.com/









 --
 You received this message because you are subscribed to the Google Groups 
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-web-toolkit?hl=en.


 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/








 --
 You received this message because you are subscribed to the Google Groups 
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-web-toolkit?hl=en.


 --

 GWT API for  non Java based platforms
 http://code.google.com/p/gwt4air/
 http://www.gwt4air.appspot.com/





 --
 You received this message because you are subscribed to the Google Groups 
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
Guit: Elegant, beautiful, modular and *production ready* gwt applications.

http://code.google.com/p/guit/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Recursive Editors

2011-07-08 Thread Thomas Broyer
You need a *subeditor* for the foos. I.e. have FooEditor (implements 
EditorFoo) contain a subeditor for @Path(foos), of type 
CompositeEditorListFoo, Foo, FooEditor (or ListEditorFoo, FooEditor).

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/26WK2KqKsfcJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: RequestFactory: Usage of the EntityService / EntityLocator / ServiceLocator pattern

2011-07-08 Thread Thomas Broyer
ServiceLocator is the only mean you can use instance methods in your 
service, instead of static methods. It's up to you to choose. I believe both 
will continue to be supported (I can't see any reason it wouldn't be)

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/MXXfpIHlzn0J.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Thomas Broyer


On Thursday, July 7, 2011 5:46:44 PM UTC+2, Eugen Paraschiv wrote:

 Yes, I am aware that if I don't include the tokenizer in the mapping, it 
 works fine. The problem with that is that it's an all or nothing solution, 
 whereas I'm looking for a programatic way of choosing when the navigation 
 should add a new history item and when it should not. It seems to be a very 
 simple thing to do - a flag in the PlaceChangeEvent (support for this seems 
 to exist in various other gwt projects - GWTP for instance). 
 I'll also try to give more detail on my use case: 
 I'm navigating to a new Place/Activity with the url looking like this: 
 abc:null. This page has a list of items, which can be selected, and this 
 selection changes the URL as well, adding the id at the end - abc:1, abc:2. 
 This happens automatically and so what I'm getting is two events added to 
 the history - first abc:null and then, automatically abc:1. That messes with 
 the history completely - back now clearly won't work (will go to abc:null). 
 So, what I'd like to do is make the first navigation (to abc:null) not add 
 it's event to history (because I know that selection will add a history 
 entry anyways). If I could do that, then a single entry would end up in 
 history and the world will be right again :).


How about fixing the root issue? namely that you're firing a second place 
change automatically just after the abc:null. as I understand it, your 
abc:null place means the list of items with the first one selected, 
which is different from the item of id 1, with the list of items where it'd 
be selected (that'd be the definition of abc:1). 

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/bwG6qU0ZwTYJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: CellTable with SimplePager displaying GAE datastore data in async

2011-07-08 Thread George Agiasoglou
Hi Ioan, thank you for your reply.

Indeed I use objectify and to be honest I have not used the offset ever, 
however, when I was looking what's the best feature to use I stamped upon 
this 
thread 
https://groups.google.com/d/topic/objectify-appengine/tkC103e2ILQ/discussion 
and so I have only used cursors so far.

I may have to rethink my strategy, since I do not expect to have more than 
8000-1 records and offset sounds appealing. I will let you know if it 
works out!


Thanks,
George

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/dcAuokGXrgkJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Abduxkur Ablimit
you said:first abc:null and then, automatically abc:1. That messes with the 
history completely - back now clearly won't work (will go to abc:null).  this 
is because of ur ABCActivity is not singlton, if it is singlton it wont call 
the method(probably initial method) which will setPlaceName(null); OR this 
method is called in activity's start method, because when you request an 
activity it will call the start method,but in same activity's different place.  




From: Thomas Broyer t.bro...@gmail.com
To: google-web-toolkit@googlegroups.com
Sent: Friday, July 8, 2011 4:46 PM
Subject: Re: Aw: Is it possible to go to a new Place without inserting a new 
history item?




On Thursday, July 7, 2011 5:46:44 PM UTC+2, Eugen Paraschiv wrote:
Yes, I am aware that if I don't include the tokenizer in the mapping, it works 
fine. The problem with that is that it's an all or nothing solution, whereas 
I'm looking for a programatic way of choosing when the navigation should add a 
new history item and when it should not. It seems to be a very simple thing to 
do - a flag in the PlaceChangeEvent (support for this seems to exist in various 
other gwt projects - GWTP for instance). 
I'll also try to give more detail on my use case: 
I'm navigating to a new Place/Activity with the url looking like this: 
abc:null. This page has a list of items, which can be selected, and this 
selection changes the URL as well, adding the id at the end - abc:1, abc:2. 
This happens automatically and so what I'm getting is two events added to the 
history - first abc:null and then, automatically abc:1. That messes with the 
history completely - back now clearly won't work (will go to abc:null). 
So, what I'd like to do is make the first navigation (to abc:null) not add 
it's event to history (because I know that selection will add a history entry 
anyways). If I could do that, then a single entry would end up in history and 
the world will be right again :).


How about fixing the root issue? namely that you're firing a second place 
change automatically just after the abc:null. as I understand it, your 
abc:null place means the list of items with the first one selected, which 
is different from the item of id 1, with the list of items where it'd be 
selected (that'd be the definition of abc:1). 
-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/bwG6qU0ZwTYJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: RequestFactory: Usage of the EntityService / EntityLocator / ServiceLocator pattern

2011-07-08 Thread Alexander Orlov
On Jul 8, 10:42 am, Thomas Broyer t.bro...@gmail.com wrote:
 ServiceLocator is the only mean you can use instance methods in your
 service, instead of static methods. It's up to you to choose. I believe both

I'm rather interested in what's the more elegant way to manage
persistence via RF.

-Alex

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: RequestFactory: Usage of the EntityService / EntityLocator / ServiceLocator pattern

2011-07-08 Thread Thomas Broyer
All things 'static' are generally seen as not elegant in Java, so using a 
ServiceLocator would make more elegant. YMMV.

Also, elegant doesn't necessarily match with pragmatic, so there might 
be additional costs to making things elegant.

If you ask me, I'd go with instance methods and a ServiceLocator (and 
dependency injection), because it makes testing the service with mock 
dependencies easier (less error prone, make it possible to test in parallel 
with different dependency mocks, etc.)

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/dPztG5JCrSkJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: GWT 2.4 - Mobile Web App

2011-07-08 Thread Joe Chahoud
Okay, I have found that the ScrollPanel implements already touch events and 
do a scroll event on mobile devices.

However, I have found that on IPhone4, the scrolling is smooth, fast, 
whereas on Android Froyo and Android Gingerbread, the scrolling isn't fast, 
it just slides vertically or horizontally but hardly.
Sometimes, suddenly it moves fast and scrolls as on IPhone device, then it 
just hangs and gets back to the slow scrolling.

Is there any fix for that or shall I wait for the final Release of GWT 2.4 ?
Thank's!

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/9LH7uE2WN_IJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Linking multiple GWT applciations..

2011-07-08 Thread Alex Dobjanschi
So you want to have a single app (your dashboard, but independently develop 
each game as a totally separated gwt app, is that right? Total flexibility, 
no?

First, there have been countless questions about how to communicate between 
2 (supposedly) independent GWT apps. 
Secondly, this design, despite being flexible in theory, is by far tight in 
practice. Imagine you want to add a 3rd game, you will have to do another IF 
and full build of the dashboard, just to show it up.

What I recommend is have a lightweight dashboard, with just a GameData 
widget (that contains the link to the actual JS, an image, etc). When you 
click on one, you should either navigate (be redirected) to an Url, OR 
inject the JS and have it look for a specific contained (like div 
id=gameSpace).

Regards,
Alex

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/Fgl6kEIZ8UIJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Application will not run outside dev mode (gwt 2.3)

2011-07-08 Thread Jens
Hi

Ok, I managed to locate and fix the problem, which I suspect is a GWT
bug.

What it had was something like this:

public final static MyRpcServiceAsync rpc =
GWT.create(MyRpcService.class);

public void onModuleLoad() {
rpc.bootstrap(new AsyncCallbackBootstrap() { ...

public void onSuccess(Bootstrap b) {
RootPanel rootPanel = RootPanel.get();
rootPanel.add(...);
...
}
}

That failed outside devmode, but when i changed that to (changing
rootPanel from local to class variable):

public final static MyRpcServiceAsync rpc =
GWT.create(MyRpcService.class);
private RootPanel rootPanel;

public void onModuleLoad() {
rootPanel = RootPanel.get();
rpc.bootstrap(new AsyncCallbackBootstrap() { ...

public void onSuccess(Bootstrap b) {
rootPanel.add(...);
...
}
}

That took me a while to figure out.

Best regards Jens


On Jul 7, 9:06 am, Jens djar...@gmail.com wrote:
 Yes, I ran the GWT compiler to ensure the source for both hosted mode
 and non hosted mode would be the same.

 I have tested 5 setups:

 1) Development mode (gwt internal jetty) with ?gwt.codesvr
 2) Development mode (external server, tomcat) with ?gwt.codesvr
 3) Development mode (gwt internal jetty) without ?gwt.codesvr but with
 a gwt compile in eclipse
 4) Development mode (external server, tomcat) without ?gwt.codesvr but
 with a gwt compile in eclipse
 5) External tomcat server deployed as a war (where the war is simply a
 zip of the war dir in eclipse)

 1)  2) Works as expected
 3)  4) gives the Uncaught TypeError: Cannot read property
 'com_google_gwt_user_client_rpc_impl_RemoteServiceProxy_serializer' of
 undefined error
 5) gives me an Uncaught TypeError: Cannot read property 'f' of
 undefined

 My guess is that some changes i made in the rpc methods trigger this.

 Best regards Jens

 On Jul 6, 9:08 pm, Magno Machado magn...@gmail.com wrote:







  Did you ran GWT Compiler and are the compiled files (the *.cache.html,
  module.nocache.js and etc) updated? Or are you simply running devmode and
  removing the ?gwt.codesvr from the url?

  On Wed, Jul 6, 2011 at 1:13 PM, Jens djar...@gmail.com wrote:
   Hi

   I have an application that i have been working on for a while, but now
   suddenly the application will not run outside dev mode.

   If i remove the gwt.codesvr=127.0.0.1:9997 from my url, the
   application stops working (it will not bootstrap).

   After digging a bit around i found the following javascript stacktrace
   in chrome:

   Uncaught TypeError: Cannot read property
   'com_google_gwt_user_client_rpc_impl_RemoteServiceProxy_serializer' of
   undefined
   (anonymous function) FDA307FC33B43DADD6B98D9EE42A955C.cache.html:976
   gwtOnLoad FDA307FC33B43DADD6B98D9EE42A955C.cache.html:22850
   maybeStartModule myapp.nocache.js:40
   allocationrule.onScriptLoad myapp.nocache.js:273
   (anonymous function)FDA307FC33B43DADD6B98D9EE42A955C.cache.html:22858

   Any clues on what going on here?

   Best regards Jens

   --
   You received this message because you are subscribed to the Google Groups
   Google Web Toolkit group.
   To post to this group, send email to google-web-toolkit@googlegroups.com.
   To unsubscribe from this group, send email to
   google-web-toolkit+unsubscr...@googlegroups.com.
   For more options, visit this group at
  http://groups.google.com/group/google-web-toolkit?hl=en.

  --
  Magno Machado 
  Paulohttp://blog.magnomachado.com.brhttp://code.google.com/p/emballo/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Eugen Paraschiv
I get where you're coming from with this, but consider this scenario:
I now have the following entities in the list: 1, 2, 3, so the first element
in the list would be 1. When going to the list, I would go to abc:1 which is
fine - 1 will be selected and nothing else will happen (a place changed
event will still be fired, but GWT will figure out that I'm navigating to
the same place and ignore it). But then, 1 is deleted and so the list is 2,
3..., so the hardcoded navigation to 1 doesn't work any more. I cannot keep
recalculating the URLs based on the first element of the list, because that
would mean HTTP requests and queries just to navigate somewhere. What's
worse is that 1 2 3 are id's so it will be dependent on the id generation
strategy I'm using - if for instance 1 is deleted, then it may be reused for
a new entity (it won't but just for the sake of the argument), which would
lead to invalid bookmarks.
Perhaps the solution is to consider abc:null as a place where no element is
selected and then let the user select the element.
Thanks for the feedback.
Eugen.

On Fri, Jul 8, 2011 at 11:46 AM, Thomas Broyer t.bro...@gmail.com wrote:



 On Thursday, July 7, 2011 5:46:44 PM UTC+2, Eugen Paraschiv wrote:

 Yes, I am aware that if I don't include the tokenizer in the mapping, it
 works fine. The problem with that is that it's an all or nothing solution,
 whereas I'm looking for a programatic way of choosing when the navigation
 should add a new history item and when it should not. It seems to be a very
 simple thing to do - a flag in the PlaceChangeEvent (support for this seems
 to exist in various other gwt projects - GWTP for instance).
 I'll also try to give more detail on my use case:
 I'm navigating to a new Place/Activity with the url looking like this:
 abc:null. This page has a list of items, which can be selected, and this
 selection changes the URL as well, adding the id at the end - abc:1, abc:2.
 This happens automatically and so what I'm getting is two events added to
 the history - first abc:null and then, automatically abc:1. That messes with
 the history completely - back now clearly won't work (will go to abc:null).
 So, what I'd like to do is make the first navigation (to abc:null) not add
 it's event to history (because I know that selection will add a history
 entry anyways). If I could do that, then a single entry would end up in
 history and the world will be right again :).


 How about fixing the root issue? namely that you're firing a second place
 change automatically just after the abc:null. as I understand it, your
 abc:null place means the list of items with the first one selected,
 which is different from the item of id 1, with the list of items where it'd
 be selected (that'd be the definition of abc:1).

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-web-toolkit/-/bwG6qU0ZwTYJ.

 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Eugen Paraschiv
That is true. In my case however, making the activity a singleton introduces
a degree of complexity into the system, and I would rather not deal with
that complexity unless I have to. If your use case is such that you need the
client-side caching and you have done proper profiling and reached this
conclusion, good, but to use singletons for performance reasons (I'm
guessing that's the idea behind the singleton activities) seems to be a
premature optimization in my case.
Thanks for the answer and the help.
Eugen.

On Fri, Jul 8, 2011 at 12:24 PM, Abduxkur Ablimit sugar...@yahoo.comwrote:

 you said:first abc:null and then, automatically abc:1. That messes with
 the history completely - back now clearly won't work (will go to abc:null). 
 this is because of ur ABCActivity is not singlton, if it is singlton it wont
 call the method(probably initial method) which will setPlaceName(null); OR
 this method is called in activity's start method, because when you request
 an activity it will call the start method,but in same activity's different
 place.

 --
 *From:* Thomas Broyer t.bro...@gmail.com

 *To:* google-web-toolkit@googlegroups.com
 *Sent:* Friday, July 8, 2011 4:46 PM
 *Subject:* Re: Aw: Is it possible to go to a new Place without inserting a
 new history item?



 On Thursday, July 7, 2011 5:46:44 PM UTC+2, Eugen Paraschiv wrote:

 Yes, I am aware that if I don't include the tokenizer in the mapping, it
 works fine. The problem with that is that it's an all or nothing solution,
 whereas I'm looking for a programatic way of choosing when the navigation
 should add a new history item and when it should not. It seems to be a very
 simple thing to do - a flag in the PlaceChangeEvent (support for this seems
 to exist in various other gwt projects - GWTP for instance).
 I'll also try to give more detail on my use case:
 I'm navigating to a new Place/Activity with the url looking like this:
 abc:null. This page has a list of items, which can be selected, and this
 selection changes the URL as well, adding the id at the end - abc:1, abc:2.
 This happens automatically and so what I'm getting is two events added to
 the history - first abc:null and then, automatically abc:1. That messes with
 the history completely - back now clearly won't work (will go to abc:null).
 So, what I'd like to do is make the first navigation (to abc:null) not add
 it's event to history (because I know that selection will add a history
 entry anyways). If I could do that, then a single entry would end up in
 history and the world will be right again :).


 How about fixing the root issue? namely that you're firing a second place
 change automatically just after the abc:null. as I understand it, your
 abc:null place means the list of items with the first one selected,
 which is different from the item of id 1, with the list of items where it'd
 be selected (that'd be the definition of abc:1).
 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-web-toolkit/-/bwG6qU0ZwTYJ.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Thomas Broyer


On Friday, July 8, 2011 12:57:01 PM UTC+2, Eugen Paraschiv wrote:

 I get where you're coming from with this, but consider this scenario: 
 I now have the following entities in the list: 1, 2, 3, so the first 
 element in the list would be 1. When going to the list, I would go to abc:1 
 which is fine - 1 will be selected and nothing else will happen (a place 
 changed event will still be fired, but GWT will figure out that I'm 
 navigating to the same place and ignore it). But then, 1 is deleted and so 
 the list is 2, 3..., so the hardcoded navigation to 1 doesn't work any more.


That's what you're doing right now, not what I'm suggesting.
 

 I cannot keep recalculating the URLs based on the first element of the 
 list, because that would mean HTTP requests and queries just to navigate 
 somewhere.


Why would you recalculate the URLs? (see below)

When you go to abc:null, it shows the list and 'selects' the first one (be 
it abc:1, or abc:2, it depends what the list contains)
When you go to abc:1, it shows the first item (if it exists) and also 
shows the list with that item selected.

Where you might have issues is if your list and detail are two distinct 
activities, but then again, it's a design flaw: you're not navigating to 
abc:1, you're navigating to abc:null (which happens to also display 
abc:1), firing a subsequent navigation to abc:1 is IMO a mistake, and 
that's what you should try to fix, rather than workaround the consequences.
There are several possible fixes:
 - abc:null triggers a special details activity (or more probably a details 
activity in a special state) that waits for an event on the EventBus before 
doing anything. the list activity, when loading from abc:null, dispatches 
such an event pointing to the first item in the list.
 - calculating places, as you said, each time you want to go to the 
list, to actually go to the first item in the list instead.
and there are probably others.
 

 What's worse is that 1 2 3 are id's so it will be dependent on the id 
 generation strategy I'm using - if for instance 1 is deleted, then it may be 
 reused for a new entity (it won't but just for the sake of the argument), 
 which would lead to invalid bookmarks.


That's another issue, dependent on your PlaceTokenizer and ID generation 
stategy. It's up to you to define whether a given URL can be reused or 
not.
 

 Perhaps the solution is to consider abc:null as a place where no element is 
 selected and then let the user select the element.


It'd make things much easier for sure!
but the event-based approach above shouldn't be that hard to implement I 
guess.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/SOaVQv1lrxcJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Aw: Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Jens

Am Freitag, 8. Juli 2011 12:57:01 UTC+2 schrieb Eugen Paraschiv:

 Perhaps the solution is to consider abc:null as a place where no element is 
 selected and then let the user select the element. 


Thats what I do when a user visits a place the first time after a fresh app 
start. Once the user selects something I go to the new place that reflects 
the selection. In addition I update the menu item link that leads to that 
place. That way the user can navigate away..but when he comes back to that 
place he sees the last selection he has done. So basically I only do 
placeController.goTo(..) when the state changes inside a place. All other 
navigation is done directly with Hyperlink instances with the history token 
as url (so all my navigation widgets listen to PlaceChangeEvent and update 
the corresponding hyperlink).

For example I have a side menu which contains new Hyperlink(#employees). 
Once an employee is selected in the list the side menu item url gets updated 
to #/employees/selected id. Thus the selection is saved inside the 
hyperlink itself.

That was a nice solution for me and maybe for you too. Just imagine if you 
select an item automatically, it may occur the case that the user is not 
interested to see that automatically selected item and then you have also 
done some additional http requests just to load the one the user is not 
interested in.

-- J.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/Q1uRZLsPglgJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Aw: Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Jens
And what about user experience? If the user actually bookmarks abc:null and 
the app treats abc:null as select the first entry in the list then the 
selection may change over time if some editing is done (adding/removing 
items). If the user is unexperienced and is not interested in the url 
thing it is maybe confusing that a bookmark gives different results over 
time.
That can not be solved by a nifty url history token because the 
interpretation of that token is the problem in that case. The only solution 
would be to not use something like abc:null and instead to figure out which 
item is the first in the list to be able to select it on an id basis prior 
the actual place change. Or am I missing something?

Because of the user experience with bookmarking we do not select anything 
like the first entry in that list/dropdown whatever by default in our app.


-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/zGVFz_WFWKEJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Eugen Paraschiv
Good point about the user experience - it does have a potentially high
degree of inconsistency if I make abc:null select the first entry, same as
abc:1 this time and abc:2 the next. I will do as you suggest, abc:null will
select nothing, and it will be up to the user to actually select something
from the list. Initially I tried not to do that so that I wouldn't have to
implement an unselected state for some of the widgets, but I'm seeing now
that the complexity added to navigation and state management simply isn't
worth it.
Thanks again for the help and suggestions.
Eugen.

On Fri, Jul 8, 2011 at 2:39 PM, Jens jens.nehlme...@gmail.com wrote:

 And what about user experience? If the user actually bookmarks abc:null and
 the app treats abc:null as select the first entry in the list then the
 selection may change over time if some editing is done (adding/removing
 items). If the user is unexperienced and is not interested in the url
 thing it is maybe confusing that a bookmark gives different results over
 time.
 That can not be solved by a nifty url history token because the
 interpretation of that token is the problem in that case. The only solution
 would be to not use something like abc:null and instead to figure out which
 item is the first in the list to be able to select it on an id basis prior
 the actual place change. Or am I missing something?

 Because of the user experience with bookmarking we do not select anything
 like the first entry in that list/dropdown whatever by default in our app.


  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-web-toolkit/-/zGVFz_WFWKEJ.

 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Aw: Is it possible to go to a new Place without inserting a new history item?

2011-07-08 Thread Eugen Paraschiv
To answer some of your feedback - there is a single Activity for the entire 
page. About the calculation of the URL, the reason behind URL recalculation 
each time was to be able to navigate to abc:id directly and bypass the 
entire problem with first going to abc:null and handling that scenario. The 
solution I try out is making abc:null unselected - no item will be selected 
at that point. 
Thanks for the feedback. I will keep the event based solution in mind for 
more complex scenarios. 
Eugen. 

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/f0cTfHp88nAJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: GWT + Spring Security

2011-07-08 Thread Renato Beserra
Hi Kevin, thanks for your answer.

I tried to do it on the interface my server-side code uses as the
implementation contract but I was using a JSR-250 annotation @RolesAllowed,
which wasn't on my client scope.

I just tried the @PreAuthorize annotation and it seems to work on the
client-side. Do I need the DispatcherServlet in order to make the annotation
works?





2011/7/7 Kevin Jordan ke...@kjordan.net

 It's been a while since I've set mine up to do this, but when you say
 you're setting them in the interface on the client side, are you
 trying them on the Async interface or the interface your server-side
 code implements off of?  If you do it on the interface your server-
 side code uses as the implementation contract, it will automatically
 get those for spring security to check on the server-side and if you
 set them up with spring doing the intercepting of the URL with
 something such as org.springframework.web.servlet.DispatcherServlet
 and in its myservletnamefromwebxml-servlets.xml, do something like
 ?xml version=1.0 encoding=UTF-8?
 beans xmlns=http://www.springframework.org/schema/beans;
   xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
   xmlns:util=http://www.springframework.org/schema/util;
   xsi:schemaLocation=
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/security

 http://www.springframework.org/schema/security/spring-security-3.0.xsd
   http://www.springframework.org/schema/util
 http://www.springframework.org/schema/util/spring-util-3.0.xsd;

bean id=urlMapping
 class=org.gwtwidgets.server.spring.GWTHandler
property name=mappings
map
entry key=/myService.rpc
 value-ref=MyRPCService /
/map
/property
   /bean
 /beans

 Note that I'm using the GWTHandler bean from gwt-sl (http://
 sourceforge.net/projects/gwt-widget/files/GWT%20Server%20Library/) to
 do the URL mapping since it does better integration with GWT than
 spring's built-in handlers do.

 You may also want to look into gwtsecurity to send better exceptions
 to your client: http://code.google.com/p/gwtsecurity/

 On Jul 7, 1:02 pm, Renato Beserra renatobese...@gmail.com wrote:
  Thanks for your answer.
 
  I considered something like that, but every restricted rpc method
  implementation has to call another method, with its own interface secured
 by
  annotations, right?
 
  2011/7/7 Juan Pablo Gardella gardellajuanpa...@gmail.com
 
 
 
 
 
 
 
 
 
   Hi Renato,
 
   I have a service layer, so in this method I use JSR250
   http://en.wikipedia.org/wiki/JSR_250annotations, Spring security can
   work with this API. In client side I don't protect the invocations. In
   server side, spring security throws an exception, if try to access to a
   protected method, and travel to the client. I wrap it in a class and
 show an
   alert to the user.
 
   Juan
 
   2011/7/7 Renato Beserra renatobese...@gmail.com
 
   Hi,
 
   I am integrating a GWT application with Spring Security and I got a
 great
   example on a previous thread -
  
 http://groups.google.com/group/google-web-toolkit/browse_thread/threa
 
   But now I want to secure my rpc calls, but i have a problem: Spring
   Security provides some annotations that i should use on the method
   declaration. But in GWT RPC the interface should be defined on client
 side,
   so the annotation is not valid.
 
   Is there a simpler solution other than making my rpc implementation to
   call a secured method on the server-side?
 
   Thanks in advance.
 
   --
   Renato Beserra Sousa
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google Web Toolkit group.
   To post to this group, send email to
 google-web-toolkit@googlegroups.com.
   To unsubscribe from this group, send email to
   google-web-toolkit+unsubscr...@googlegroups.com.
   For more options, visit this group at
  http://groups.google.com/group/google-web-toolkit?hl=en.
 
--
   You received this message because you are subscribed to the Google
 Groups
   Google Web Toolkit group.
   To post to this group, send email to
 google-web-toolkit@googlegroups.com.
   To unsubscribe from this group, send email to
   google-web-toolkit+unsubscr...@googlegroups.com.
   For more options, visit this group at
  http://groups.google.com/group/google-web-toolkit?hl=en.
 
  --
  Renato Beserra Sousa

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




-- 
Renato Beserra Sousa

-- 
You 

Re: RequestFactory: Usage of the EntityService / EntityLocator / ServiceLocator pattern

2011-07-08 Thread Alexander Orlov
On Jul 8, 11:51 am, Thomas Broyer t.bro...@gmail.com wrote:
 If you ask me, I'd go with instance methods and a ServiceLocator (and
 dependency injection),

Is there anywhere a concrete code sample for this pattern? I'm
considering to use Dep. Injection too.

Thx again for the info!

-Alex

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: CellTable with SimplePager displaying GAE datastore data in async

2011-07-08 Thread George Agiasoglou
Ioan it works fine, thank you!

-George

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/UtFKujFHj4kJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: RequestFactory: Usage of the EntityService / EntityLocator / ServiceLocator pattern

2011-07-08 Thread Thomas Broyer
See http://wanderingcanadian.posterous.com/guiced-up-gwt-requestfactory and 
https://github.com/mgenov/injecting-request-factory

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/IBjlEqCX0fgJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Working with GWT 2.3 and MyBatis

2011-07-08 Thread Fabricio Pizzichillo
Hello.
The problem is a missing XML file where the configuration database,
and so gives
an error of IO.
bye

Fabricio

2011/6/28 Geraldo Lopes geraldo...@gmail.com

 Gwt is persistent agnostic.

 It looks like your client code is referencing server code.
 When you compile the client code it gets translated to javascript, and
 run in the browser, and because of this there are restrictions to
 which code can be translated.


 http://code.google.com/intl/en/webtoolkit/doc/latest/DevGuideCodingBasics.html#DevGuideJavaCompatibility

 Hope this helps,

 Geraldo Lopes de Souza

 On 28 jun, 10:30, peter faulk mikesw...@gmail.com wrote:
  I am new to using GWT, and I am trying to get some simple persistence
  going using MyBatis.  Under the server folder/directory, I have a
  connection factory source file that simply reads from a
  configuration.xml in order to create a MyBatis SqlSessionFactory
  object.  In my project .gwt.xml, I path set for for both server and
  client.  I have both the mybatis-3.0.5.jar and the mybatis-3.0.5-
  sources.jar in my classpath and in the WEB-INF\lib directory.  When
  run the GWT Compile Project, I see the following errors in my
  ConnectionFactory.java:
 
  org.apache.ibatis.io.Resources cannot be resolved
  org.apache.ibatis.session.SqlSessionFactory cannot be resolved
 
  It is clear that the jar file is not being recognized or picked up
  during compilation.

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: GWT + Spring Security

2011-07-08 Thread Kevin Jordan
You'll need to have your service invoked as a Spring Bean somehow to
make the annotations take effect.  It won't work as just a servlet
entry in your web.xml.  DispatcherServlet is one of the easiest way to
make it do that.

On Jul 8, 7:11 am, Renato Beserra renatobese...@gmail.com wrote:
 Hi Kevin, thanks for your answer.

 I tried to do it on the interface my server-side code uses as the
 implementation contract but I was using a JSR-250 annotation @RolesAllowed,
 which wasn't on my client scope.

 I just tried the @PreAuthorize annotation and it seems to work on the
 client-side. Do I need the DispatcherServlet in order to make the annotation
 works?

 2011/7/7 Kevin Jordan ke...@kjordan.net









  It's been a while since I've set mine up to do this, but when you say
  you're setting them in the interface on the client side, are you
  trying them on the Async interface or the interface your server-side
  code implements off of?  If you do it on the interface your server-
  side code uses as the implementation contract, it will automatically
  get those for spring security to check on the server-side and if you
  set them up with spring doing the intercepting of the URL with
  something such as org.springframework.web.servlet.DispatcherServlet
  and in its myservletnamefromwebxml-servlets.xml, do something like
  ?xml version=1.0 encoding=UTF-8?
  beans xmlns=http://www.springframework.org/schema/beans;
            xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
            xmlns:util=http://www.springframework.org/schema/util;
            xsi:schemaLocation=
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/security

 http://www.springframework.org/schema/security/spring-security-3.0.xsd
           http://www.springframework.org/schema/util
 http://www.springframework.org/schema/util/spring-util-3.0.xsd;

         bean id=urlMapping
  class=org.gwtwidgets.server.spring.GWTHandler
                 property name=mappings
                         map
                                 entry key=/myService.rpc
  value-ref=MyRPCService /
                         /map
                 /property
        /bean
  /beans

  Note that I'm using the GWTHandler bean from gwt-sl (http://
  sourceforge.net/projects/gwt-widget/files/GWT%20Server%20Library/) to
  do the URL mapping since it does better integration with GWT than
  spring's built-in handlers do.

  You may also want to look into gwtsecurity to send better exceptions
  to your client:http://code.google.com/p/gwtsecurity/

  On Jul 7, 1:02 pm, Renato Beserra renatobese...@gmail.com wrote:
   Thanks for your answer.

   I considered something like that, but every restricted rpc method
   implementation has to call another method, with its own interface secured
  by
   annotations, right?

   2011/7/7 Juan Pablo Gardella gardellajuanpa...@gmail.com

Hi Renato,

I have a service layer, so in this method I use JSR250
http://en.wikipedia.org/wiki/JSR_250annotations, Spring security can
work with this API. In client side I don't protect the invocations. In
server side, spring security throws an exception, if try to access to a
protected method, and travel to the client. I wrap it in a class and
  show an
alert to the user.

Juan

2011/7/7 Renato Beserra renatobese...@gmail.com

Hi,

I am integrating a GWT application with Spring Security and I got a
  great
example on a previous thread -

 http://groups.google.com/group/google-web-toolkit/browse_thread/threa

But now I want to secure my rpc calls, but i have a problem: Spring
Security provides some annotations that i should use on the method
declaration. But in GWT RPC the interface should be defined on client
  side,
so the annotation is not valid.

Is there a simpler solution other than making my rpc implementation to
call a secured method on the server-side?

Thanks in advance.

--
Renato Beserra Sousa

--
You received this message because you are subscribed to the Google
  Groups
Google Web Toolkit group.
To post to this group, send email to
  google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at
   http://groups.google.com/group/google-web-toolkit?hl=en.

 --
You received this message because you are subscribed to the Google
  Groups
Google Web Toolkit group.
To post to this group, send email to
  google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at
   http://groups.google.com/group/google-web-toolkit?hl=en.

   --
   Renato Beserra Sousa

  --
  You received this message because you are subscribed to 

Re: GWT + Spring Security

2011-07-08 Thread Renato Beserra
You just solved my doubt. The DispatcherServlet looks very simple with your
explanation and I will try to use it.

Thank you very much!

Best Regards,

2011/7/8 Kevin Jordan ke...@kjordan.net

 You'll need to have your service invoked as a Spring Bean somehow to
 make the annotations take effect.  It won't work as just a servlet
 entry in your web.xml.  DispatcherServlet is one of the easiest way to
 make it do that.

 On Jul 8, 7:11 am, Renato Beserra renatobese...@gmail.com wrote:
  Hi Kevin, thanks for your answer.
 
  I tried to do it on the interface my server-side code uses as the
  implementation contract but I was using a JSR-250 annotation
 @RolesAllowed,
  which wasn't on my client scope.
 
  I just tried the @PreAuthorize annotation and it seems to work on the
  client-side. Do I need the DispatcherServlet in order to make the
 annotation
  works?
 
  2011/7/7 Kevin Jordan ke...@kjordan.net
 
 
 
 
 
 
 
 
 
   It's been a while since I've set mine up to do this, but when you say
   you're setting them in the interface on the client side, are you
   trying them on the Async interface or the interface your server-side
   code implements off of?  If you do it on the interface your server-
   side code uses as the implementation contract, it will automatically
   get those for spring security to check on the server-side and if you
   set them up with spring doing the intercepting of the URL with
   something such as org.springframework.web.servlet.DispatcherServlet
   and in its myservletnamefromwebxml-servlets.xml, do something like
   ?xml version=1.0 encoding=UTF-8?
   beans xmlns=http://www.springframework.org/schema/beans;
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
 xmlns:util=http://www.springframework.org/schema/util;
 xsi:schemaLocation=
http://www.springframework.org/schema/beans
  
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
 
  http://www.springframework.org/schema/security/spring-security-3.0.xsd
http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-3.0.xsd;
 
  bean id=urlMapping
   class=org.gwtwidgets.server.spring.GWTHandler
  property name=mappings
  map
  entry key=/myService.rpc
   value-ref=MyRPCService /
  /map
  /property
 /bean
   /beans
 
   Note that I'm using the GWTHandler bean from gwt-sl (http://
   sourceforge.net/projects/gwt-widget/files/GWT%20Server%20Library/) to
   do the URL mapping since it does better integration with GWT than
   spring's built-in handlers do.
 
   You may also want to look into gwtsecurity to send better exceptions
   to your client:http://code.google.com/p/gwtsecurity/
 
   On Jul 7, 1:02 pm, Renato Beserra renatobese...@gmail.com wrote:
Thanks for your answer.
 
I considered something like that, but every restricted rpc method
implementation has to call another method, with its own interface
 secured
   by
annotations, right?
 
2011/7/7 Juan Pablo Gardella gardellajuanpa...@gmail.com
 
 Hi Renato,
 
 I have a service layer, so in this method I use JSR250
 http://en.wikipedia.org/wiki/JSR_250annotations, Spring security
 can
 work with this API. In client side I don't protect the invocations.
 In
 server side, spring security throws an exception, if try to access
 to a
 protected method, and travel to the client. I wrap it in a class
 and
   show an
 alert to the user.
 
 Juan
 
 2011/7/7 Renato Beserra renatobese...@gmail.com
 
 Hi,
 
 I am integrating a GWT application with Spring Security and I got
 a
   great
 example on a previous thread -
 
  http://groups.google.com/group/google-web-toolkit/browse_thread/threa..
 ..
 
 But now I want to secure my rpc calls, but i have a problem:
 Spring
 Security provides some annotations that i should use on the method
 declaration. But in GWT RPC the interface should be defined on
 client
   side,
 so the annotation is not valid.
 
 Is there a simpler solution other than making my rpc
 implementation to
 call a secured method on the server-side?
 
 Thanks in advance.
 
 --
 Renato Beserra Sousa
 
 --
 You received this message because you are subscribed to the Google
   Groups
 Google Web Toolkit group.
 To post to this group, send email to
   google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.
 
  --
 You received this message because you are subscribed to the Google
   Groups
 Google Web Toolkit group.
 To post to this group, send email to
   

Re: secure widgets

2011-07-08 Thread Alberto Sarubbi
looks to me like a dead end for developing security sensitive UI with
GWT.

thank you Robert.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Youtube iFrame z-index problem

2011-07-08 Thread jhulford
Presumably you're using Internet Explorer...which has issues showing
HTML elements over other objects on the page that are rendered
natively by the OS (iframes, flash, select boxes, etc).

To get around this limitation, GWT utilizes a hack where you put an
iframe shim behind the popup panel's contents so the shim iframe
obscures the other one.  See the code in PopupImplIE6 for how its used
- there's also a link in the code to a blog posting w/ a fuller
explanation.

On Jul 7, 10:16 am, tobirius t.herrm...@alkacon.com wrote:
 I am struggling to put UI elements above an embedded youtube iframe.
 No z-index seems large enough to get on top of the iframe.
 Only when using a PopupPanel it seems to be possible to show content
 above the iframe. I wonder how this is done. What is so special about
 the PopupPanel that it is always on top?

 Greetings, Tobias

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: secure widgets

2011-07-08 Thread David Chandler
In order to write a secure rich Web app, you need to think in terms of
protecting the data, not the UI itself. This is true for any JS
application, not just GWT.

/dmc

On Fri, Jul 8, 2011 at 9:44 AM, Alberto Sarubbi asaru...@gmail.com wrote:
 looks to me like a dead end for developing security sensitive UI with
 GWT.

 thank you Robert.

 --
 You received this message because you are subscribed to the Google Groups 
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-web-toolkit?hl=en.





-- 
David Chandler
Developer Programs Engineer, GWT+GAE
w: http://code.google.com/
b: http://turbomanage.wordpress.com/
b: http://googlewebtoolkit.blogspot.com/
t: @googledevtools

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Recursive Editors

2011-07-08 Thread Jeff Larsen
Thanks Thomas and Gal.  Now I'm getting. 

[ERROR] [editorsampleproject] - Cycle detected in editor graph. Editor type 
com.google.gwt.editor.client.adapters.ListEditor at path foos can be reached 
again at path foos..foos



I'm probably just going to abandon this and just manually get/set the 
objects. It isn't that much work since the object is recursive. I could've 
written it by hand a long time ago, but thought this was a good deep dive 
into editors. 

Seperate question because I *know *I'm going to need this in the future 
somewhere. How do you implement an editor on a Set? 

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/_ULlinHJC40J.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Why no GWT for Calendar API?

2011-07-08 Thread Jeffrey Chimene
On 7/7/2011 8:38 PM, Jim Douglas wrote:
 With 328 stars, it's the most popular open issue:

 http://code.google.com/p/google-web-toolkit/issues/detail?id=603

Thanks, but I'm asking about a GWT binding for the Google Calendar API,
not j.u.Calendar.

Cheers,
jec

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: secure widgets

2011-07-08 Thread Williame
Agreed.  What the client sends to the server can be the wild west.  Never 
trust it.

My recipe, YMMV, but my apps hide display of access limited objects on the 
client side(all are there in the js) but more to avoid confusion to users 
than as a security measure.  The real security is on the server side that 
they cannot alter with js live editing tools or faked GET/POST/RPC requests. 
 When they first login I get access privs from the datastore and put them 
into the server session attribs as well as pass them back to the client to 
control widget display per access.

Client side:

if (hasAccess(clientSession, const.SUPER))
  showWidget();


Server side:

public boolean doSomething() throws AccessException
  {
  HttpSession sess = getThreadLocalRequest().getSession();

  if (hasAccess(sess,const.SUPER))
return(doSuperThing());
  else
throw new AccessException(Access denied!);
  }

Comments welcome.  Always looking for a better mousetrap.  :-)

-William

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/7eCBXy3XPOMJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Why no GWT for Calendar API?

2011-07-08 Thread Jim Douglas
Hmm, ok.  Well, I see that the request was closed as not planned:

http://code.google.com/p/gwt-google-apis/issues/detail?id=157

And this response from 2008 suggests working with the Java API on the
server or the JavaScript API on the client:

http://groups.google.com/group/google-web-toolkit/browse_thread/thread/1c8e9ef01528a9f0

I wouldn't want to try to work out the JSNI bindings for that, though.

On Jul 8, 7:26 am, Jeffrey Chimene jchim...@gmail.com wrote:
 On 7/7/2011 8:38 PM, Jim Douglas wrote:

  With 328 stars, it's the most popular open issue:

 http://code.google.com/p/google-web-toolkit/issues/detail?id=603

 Thanks, but I'm asking about a GWT binding for the Google Calendar API,
 not j.u.Calendar.

 Cheers,
 jec

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Why no GWT for Calendar API?

2011-07-08 Thread Jeffrey Chimene
On 7/8/2011 7:47 AM, Jim Douglas wrote:
 Hmm, ok.  Well, I see that the request was closed as not planned:

 http://code.google.com/p/gwt-google-apis/issues/detail?id=157

 And this response from 2008 suggests working with the Java API on the
 server or the JavaScript API on the client:

 http://groups.google.com/group/google-web-toolkit/browse_thread/thread/1c8e9ef01528a9f0

 I wouldn't want to try to work out the JSNI bindings for that, though.

Thank-you for the search-fu! I'd considered the javascript solution, but
it's the older API. This is an interesting discontinuity in the solution
space.

Cheers,
jec

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: secure widgets

2011-07-08 Thread will0
In protecting the data as David rightly suggests, you can protect the UI by 
returning SC_UNAUTHORIZED if an unauthenticated user attempts to access any 
remote service. I've overridden the RequestFactory onResponseReceived 
function which redirects to a login page if the response is SC_UNAUTHORIZED.

See my answer on StackOverflow:
http://stackoverflow.com/questions/6508238/gwt-authentication-for-some-part-of-application-using-gwt-login-page/6511218#6511218

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/dyG-MeKIFnQJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Why no GWT for Calendar API?

2011-07-08 Thread zundel
There is a third party binding to the GData api for calendar:  
http://code.google.com/p/gwt-gdata/

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/_XQHOsWfIvgJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Getting absolute paths an Editor from a Violation picked up from RequestContext onViolation

2011-07-08 Thread will0

I'm using round-trip validation for my entities - i.e. I pick up any 
violations from RequestContext.onViolation then populate errors in the UI 
via an EditorVisitor.
This mostly works well except I can't figure out how to get absolute paths 
of sub-editors from a violation.

In my EditorVisitor I've had to implement a hack to get the last section of 
the path:

  public T void endVisit(EditorContextT ctx) {
String path = ctx.getAbsolutePath();

//here's the hack
if (path.contains(.)) {
  path = path.split(\\.)[1];
}

for (Violation violation : errors) {
  if (path.equals(violation.getPath())) {
ctx.getEditorDelegate().recordError(violation.getMessage(), null, null);
  }
}  
  }

Clearly this will cause issues when sub-editors and editors have the same 
property names. Does anyone know if there's a way to work out the absolute 
path of an editor from a violation?

Thanks,

Will

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/qVcMjKfSy78J.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Youtube iFrame z-index problem

2011-07-08 Thread KevMo
By default flash will display on top of everything else, regardless of
any z-index  Try adding ?wmode=Opaque to the end of you iFrame src
URL.

On Jul 7, 7:16 am, tobirius t.herrm...@alkacon.com wrote:
 I am struggling to put UI elements above an embedded youtube iframe.
 No z-index seems large enough to get on top of the iframe.
 Only when using a PopupPanel it seems to be possible to show content
 above the iframe. I wonder how this is done. What is so special about
 the PopupPanel that it is always on top?

 Greetings, Tobias

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Linking multiple GWT applciations..

2011-07-08 Thread Gautam Kowshik
Thanks for the comments Alex and Robert,
  I'm aware that this decoupling is against GWT's philosophy.
The reason I'm still trying to keep it separate is because these are
actually separate projects (each game) with different developers
working on each part with separate svn code repos. The game code
changes very rapidly. The pseudo code I mentioned in the post was just
a crude illustration of the logic, although the design would be
something more polymorphic.

The portal's fundamental requirement is to be not only be able to
dynamically load each game on-demand, but also to be able to send game
client commands viz. launch, play, pause, quit, add-player, and, also
have game server side control e.g register-checkpoint-callback, fetch-
progress-report. I have the flexibility to have all games run off the
same Tomcat server process along with the portal, but I'd like to keep
their entry points and services separate from the portal's. The client
side communication between portal and game should NOT be over HTTP,
similarly server side communication between portal and game should NOT
be over the wire. So it is in fact a tight/native portal-to-game
integration that is needed.

So what I'm really asking here is just project code modularisation. As
in, I just need the flexibility to be able to develop code
independently and be able to integrate the games when deploying the
portal. The games need to be able to run in their own entry points so
their devs can test them out independently without needing the portal.
And I should be able to fetch the latest code for all games and test
the portal. Rebuilding/redeploying all the code is not a major concern
for us.


 Some deeper design details 
For the game plugin interface I have defined a client side interface
(IPortalGameClient) and server side interface (IPortalGameServer) to
abstract out all client and server communication between portal and
game. Any game that wishes to plug into the portal needs to implement
the client and server interfaces. On the portal client side a
GameProxy (which also implements the IPortalGameClient) is used to
talk to the Game client that can handle failure-retries, caching, etc.
The portal needs to do the heavy lifting of managing sessions, player
logins, check-pointing, resuming after failure, etc.


Whew! I rambled on there .. sorry bout that. Appreciate any help on
figuring this out.

thanks,
-Gautam.

On Jul 8, 3:33 am, Alex Dobjanschi alex.dobjans...@gmail.com wrote:
 So you want to have a single app (your dashboard, but independently develop
 each game as a totally separated gwt app, is that right? Total flexibility,
 no?

 First, there have been countless questions about how to communicate between
 2 (supposedly) independent GWT apps.
 Secondly, this design, despite being flexible in theory, is by far tight in
 practice. Imagine you want to add a 3rd game, you will have to do another IF
 and full build of the dashboard, just to show it up.

 What I recommend is have a lightweight dashboard, with just a GameData
 widget (that contains the link to the actual JS, an image, etc). When you
 click on one, you should either navigate (be redirected) to an Url, OR
 inject the JS and have it look for a specific contained (like div
 id=gameSpace).

 Regards,
 Alex

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: TabLayoutPanel selectTab() not working correctly

2011-07-08 Thread Mark Wengranowski
Making some progress but still having the same problem. If i change my
onClick event to onMouseDown it works.

Why it works on the mousedown and not the onclick im not sure. It
seems to be something to do with the order that events are being
triggered. If i call the add function to add a tab to the tabpanel and
then call selectTab() to change the to the new tab in the onclick
handler the selectTab() doesn't change the value. Maybe it's getting
overridden by an event that is fired in the tabpanel?

If i put it into to a onMouseOut event it works because the tab has
been added and appears on the screen before i move my mouse and the
onmouseout event is triggered.

I would greatly appreciate some insight into why this might be
happening.

Thanks,
-Mark

On Jul 7, 9:08 am, Mark Wengranowski m...@greatlittlebox.com wrote:
 Hi everyone,

 I'm having a wierd problem with a TabLayoutPanel where the selectTab()
 function does not work when called from my custom header composite.

 So far this is what i've done.

 1. Create a new UI binder composiete that has a tablayoutpanel
 2. Create a custom header UI binder composite which consists of 3
 labels. the labels are used for a url, close tab button, and new tab
 button.
 3. Add the custom header to the tablayoutpanel
 4. Created onClick events for the new tab label and the close tab
 label.

 What's weird is that if i call  mylayoutpanel.selectTab(1) from inside
 my custom header with the onclick events it will not set the index or
 change the selected tab on the layoutpanel. I can call many other
 functions on mylayoutpanel such as setVisible(false) and they work
 just fine.

 If i Call selectTab() from the class that contains the tablayoutpanel
 it works just fine. I've followed it through the debugger and all of
 the references seem to be there. is there something im missing?

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Encountered a problem while deploying

2011-07-08 Thread SwaminathanG
Hi,

When i deployed a project created with smartGWT, i got this following error


Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/clonefiles?app_id=pojomarketversion=1;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=
http://code.google.com/appengine/community.html;report/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html


See the deployment console for more details
Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/clonefiles?app_id=pojomarketversion=1;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=
http://code.google.com/appengine/community.html;report/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html

Regards,
Swaminathan.G

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: secure widgets

2011-07-08 Thread Alberto Sarubbi
we actually protect EVERY call to our server validating the user
rights before proceeding to the service execution.

it just doesn't seem right to show a user a button that he can't click
because he don't have the permission to do.
it sounds more logical not showing the button at all.
of course, validations on server side will catch any click on a
forbidden button, then comes the question: why would i show
the button then?..


thanks for the advice people. may be i just don't get right the js gui
development yet :)

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Why no GWT for Calendar API?

2011-07-08 Thread Thomas Broyer
You don't need JSNI, there's a 
JsDatehttp://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/core/client/JsDate.htmlclass.

Also, have a look at GodaTime, or JodaTime-GWT. The JodaTime is much cleaner 
and easier to use, and close to what's coming to Java 8 (JSR-310, alpha code 
at threeten.sourceforge.net)

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/YQARJjHMGOAJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Google plugin for Eclipse withou WindowBuilder (GWT Designer)

2011-07-08 Thread Eric Clayberg
Glad to hear that!

On Jul 8, 2:21 am, Sebastian open.sebast...@gmail.com wrote:
 Forget about it, the new update on the Designers beta Version fixed the
 problem. It now runs like a charm

 2011/7/6 Sebastian open.sebast...@gmail.com







  Hello Vrto,

  may I ask which Ubuntu Version do you use? Is it 32 or 64 Bit? I am
  using 11.04 with AMD64 and can´t get the Designer running at all
  (Eclipse Indigo). I ask beacause it is a clean Installation and I
  supposed that the failure was on the Ubuntu side.

  2011/6/16 Vrto michal.vrt...@gmail.com

  BTW, I've seen your Google IO 2011 presentation (n1) and I was
  surprised how fast GWT designer worked on your Windows machine (and it
  looked virtualized from Mac OS X if I remember correctly!). Is it
  possible that it's slower on Linux? With Eclipse on Sun's JRE? I guess
  I will try it with fresh install of Indigio, where my Eclipse
  installation will not be huge monster with billion of plugins if
  that's any better.

  On Jun 16, 10:41 pm, Eric Clayberg clayb...@google.com wrote:
   I would be curious as to how the latest GWT Designer build feels to
   you...

  http://code.google.com/webtoolkit/tools/download-gwtdesigner-beta.html

   On Jun 16, 1:08 pm, Vrto michal.vrt...@gmail.com wrote:

I disabled that of course, but when Eclipse stars it does always stuff
like updatinggwtdesignerpaletten, building somegwtdesigner
stuff and I am minimalist I just dont want that heh :)

On Jun 16, 7:02 pm, Renato Beserra renatobese...@gmail.com wrote:

 I don't like theGWTDesignereither, but how does it cause you
  problems?

 Is it opening your classes by default or something?

 2011/6/16 Vrto michal.vrt...@gmail.com

  Hello, I like Google Plugin for Eclipse, but I don't likeGWT
 Designer. It's slow, buggy, keeps updating itself, loads terribly
  load
  and so on. Is there any chance of releasing google plugin
  withoutGWT
 Designer?

  Thanks!

  --
  You received this message because you are subscribed to the Google
  Groups
  Google Web Toolkit group.
  To post to this group, send email to
  google-web-toolkit@googlegroups.com.
  To unsubscribe from this group, send email to
  google-web-toolkit+unsubscr...@googlegroups.com.
  For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.

 --
 Renato Beserra Sousa

  --
  You received this message because you are subscribed to the Google Groups
  Google Web Toolkit group.
  To post to this group, send email to google-web-toolkit@googlegroups.com.
  To unsubscribe from this group, send email to
  google-web-toolkit+unsubscr...@googlegroups.com.
  For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Getting absolute paths an Editor from a Violation picked up from RequestContext onViolation

2011-07-08 Thread Thomas Broyer
Why aren't you using 
RequestFactoryEditorDriver#setViolationshttp://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/requestfactory/client/RequestFactoryEditorDriver.html#setViolations(java.lang.Iterable)
?

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/h9dkVf18BuYJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: secure widgets

2011-07-08 Thread David Chandler
Agreed! Don't show the button if the user doesn't have permissions. But also
check perms on the server to protect against hackers.

/dmc

On Fri, Jul 8, 2011 at 2:54 PM, Alberto Sarubbi asaru...@gmail.com wrote:

 we actually protect EVERY call to our server validating the user
 rights before proceeding to the service execution.

 it just doesn't seem right to show a user a button that he can't click
 because he don't have the permission to do.
 it sounds more logical not showing the button at all.
 of course, validations on server side will catch any click on a
 forbidden button, then comes the question: why would i show
 the button then?..


 thanks for the advice people. may be i just don't get right the js gui
 development yet :)

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




-- 
David Chandler
Developer Programs Engineer, GWT+GAE
w: http://code.google.com/
b: http://turbomanage.wordpress.com/
b: http://googlewebtoolkit.blogspot.com/
t: @googledevtools

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Pluggable modules

2011-07-08 Thread manstis
Great, success. Thanks.

So I conclude it is impossible to pass a Java object from one GWT
application client space, through JSNI to another GWT application
client space even with the XS linker option.

It only appears possible using JavaScriptObject subclasses, i.e.
JScript overlays.

I might need to bother you again, but I have lots to keep trying
now :)

Thanks again.

Mike

On Jul 5, 6:14 pm, lemaiol lema...@gmail.com wrote:
 I do not know really well gwt-exporter, but having a look at your
 question in SO, I have the feeling that you need somehow to pass real
 JS objects as parameters. I would try inheriting from
 JavaScritpObject:

 public class Person extends JavaScriptObject {
     protected Person() {
         // GWT JSO compliance requirement
     }

     // Use this factory method to create the entities
     public static Person create(String name, int age) {
        Person result = JSObject.create().cast(); // Maybe the name of
 the class JSObject used here is wrong (not compiled code!)
        result.setName(name);
        result.setAge(age);
     }

     public native String getName() /*-{
         return this.name; // the use of this is here required!!
     }-*/;

     public native void setName(String name) /*-{
         this.name = name;
     }-*/;
 ...

 }

 Hope it helps!
 Berto

 On Jul 4, 10:27 am, manstis michael.ans...@gmail.com wrote:

  Hi Berto,

  I've stuck everything on github; git://github.com/manstis/gwt-plugins.git

  plugin - the plugin
  pluginserver - the framework
  plugincommon contains my common model

  There's only about 10 files in all; so it's not so ominous.

  I thought this would be easier than trying to explain directly - I'm
  not expecting you to fix anything, it's just so you can see what I
  have and give some suggestions.

  As it stands, I can pass the common model class to the framework,
  but all attributes are 
  undefined:http://stackoverflow.com/questions/6535303/gwt-gwt-exporter-passing-o...

  If you decided to try and run it; plugin and pluginserver WARs can be
  deployed to Tomcat (I use 6.0) and select the URL for the server
  portion.

  Cheers,

  Mike

  On Jul 3, 10:14 am,lemaiollema...@gmail.com wrote:

   Hi Mike,

   How are the modules loaded and how are they invoked?

   Berto

   On Jun 22, 2:10 pm, manstis michael.ans...@gmail.com wrote: Great, 
   lots to play with :)

Before I look into writing my own JSNI bridge, I've still been trying
to use gwt-exporter, but.

I've three GWT applications:-
(1) Plugin (inherits Common)
(2) Backend (inherits Common)
(3) Common

Plugin

Contains:-

  ...
  echoButton.addClickHandler(new ClickHandler() {

    public void onClick(ClickEvent event) {
      //Debugging statements shown -- shows 'callback' is not null
      PluginCallbackString callback = getPluginCallback();
      Window.alert(Plugin.onModuleLoad.onClick.callback is  +
(callback != null ? not  : ) + null);

      echo(text.getText(), callback);
    }

  });
  ...

  private native void echo(String text, PluginCallbackString
callback) /*-{
    //Debugging statements shown -- shows 'callback' is not null
    alert(Plugin.echo.callback is  + (callback != null ? not  :
) + null);

    $wnd.com.anstis.pluginserver.CommonService.echo(text, callback);
  }-*/;

Backend

Contains:-

  public void onModuleLoad() {
    //Use gwt-exporter to generate the JSNI for CommonService.class
    GWT.create(CommonService.class);
  }

CommonService is:-

  @Export
  public class CommonService implements Exportable {

    private static final EchoServiceAsync echoService =
GWT.create(EchoService.class);

    public static void echo(String input, PluginCallbackString
callback) {
      //Debugging statements shown -- shows 'callback' is null
      Window.alert(CommonService.echo.callback is  + (callback !=
null ? not  : ) + null);
      try {

        //The guts of the method, invoke a GWT-RPC call -- RTE, as
'callback' is null
        echoService.echo(input, callback);

      } catch (Exception e) {
        e.fillInStackTrace();
        e.printStackTrace(System.out);
        Window.alert(e.getMessage());
      }
    }

  }

Common

Simply defines PluginCallback, as follows:-

  public class PluginCallbackT implements AsyncCallbackT {
    public void onFailure(Throwable caught) {}
    public void onSuccess(T result) {}
  }

My problem is that the PluginCallback instance is proven to be non-
null in Plugin (both Java and JSNI methods), but is reported as null
in Backends CommonService.

Somewhere it is getting munged, but I only pass a Java Object from
Plugin to JSNI (echo) to Java (CommonService) so don't understand
why it's being nulled?!?!

Any ideas (I'll post 

Re: Pluggable modules

2011-07-08 Thread manstis
Should anybody else search for something similar and stumbles across
this thread there is a working example at 
git://github.com/manstis/gwt-plugins.git

On Jul 8, 8:50 pm, manstis michael.ans...@gmail.com wrote:
 Great, success. Thanks.

 So I conclude it is impossible to pass a Java object from one GWT
 application client space, through JSNI to another GWT application
 client space even with the XS linker option.

 It only appears possible using JavaScriptObject subclasses, i.e.
 JScript overlays.

 I might need to bother you again, but I have lots to keep trying
 now :)

 Thanks again.

 Mike

 On Jul 5, 6:14 pm, lemaiol lema...@gmail.com wrote:

  I do not know really well gwt-exporter, but having a look at your
  question in SO, I have the feeling that you need somehow to pass real
  JS objects as parameters. I would try inheriting from
  JavaScritpObject:

  public class Person extends JavaScriptObject {
      protected Person() {
          // GWT JSO compliance requirement
      }

      // Use this factory method to create the entities
      public static Person create(String name, int age) {
         Person result = JSObject.create().cast(); // Maybe the name of
  the class JSObject used here is wrong (not compiled code!)
         result.setName(name);
         result.setAge(age);
      }

      public native String getName() /*-{
          return this.name; // the use of this is here required!!
      }-*/;

      public native void setName(String name) /*-{
          this.name = name;
      }-*/;
  ...

  }

  Hope it helps!
  Berto

  On Jul 4, 10:27 am, manstis michael.ans...@gmail.com wrote:

   Hi Berto,

   I've stuck everything on github; git://github.com/manstis/gwt-plugins.git

   plugin - the plugin
   pluginserver - the framework
   plugincommon contains my common model

   There's only about 10 files in all; so it's not so ominous.

   I thought this would be easier than trying to explain directly - I'm
   not expecting you to fix anything, it's just so you can see what I
   have and give some suggestions.

   As it stands, I can pass the common model class to the framework,
   but all attributes are 
   undefined:http://stackoverflow.com/questions/6535303/gwt-gwt-exporter-passing-o...

   If you decided to try and run it; plugin and pluginserver WARs can be
   deployed to Tomcat (I use 6.0) and select the URL for the server
   portion.

   Cheers,

   Mike

   On Jul 3, 10:14 am,lemaiollema...@gmail.com wrote:

Hi Mike,

How are the modules loaded and how are they invoked?

Berto

On Jun 22, 2:10 pm, manstis michael.ans...@gmail.com wrote: Great, 
lots to play with :)

 Before I look into writing my own JSNI bridge, I've still been trying
 to use gwt-exporter, but.

 I've three GWT applications:-
 (1) Plugin (inherits Common)
 (2) Backend (inherits Common)
 (3) Common

 Plugin
 
 Contains:-

   ...
   echoButton.addClickHandler(new ClickHandler() {

     public void onClick(ClickEvent event) {
       //Debugging statements shown -- shows 'callback' is not null
       PluginCallbackString callback = getPluginCallback();
       Window.alert(Plugin.onModuleLoad.onClick.callback is  +
 (callback != null ? not  : ) + null);

       echo(text.getText(), callback);
     }

   });
   ...

   private native void echo(String text, PluginCallbackString
 callback) /*-{
     //Debugging statements shown -- shows 'callback' is not null
     alert(Plugin.echo.callback is  + (callback != null ? not  :
 ) + null);

     $wnd.com.anstis.pluginserver.CommonService.echo(text, callback);
   }-*/;

 Backend
 
 Contains:-

   public void onModuleLoad() {
     //Use gwt-exporter to generate the JSNI for CommonService.class
     GWT.create(CommonService.class);
   }

 CommonService is:-

   @Export
   public class CommonService implements Exportable {

     private static final EchoServiceAsync echoService =
 GWT.create(EchoService.class);

     public static void echo(String input, PluginCallbackString
 callback) {
       //Debugging statements shown -- shows 'callback' is null
       Window.alert(CommonService.echo.callback is  + (callback !=
 null ? not  : ) + null);
       try {

         //The guts of the method, invoke a GWT-RPC call -- RTE, as
 'callback' is null
         echoService.echo(input, callback);

       } catch (Exception e) {
         e.fillInStackTrace();
         e.printStackTrace(System.out);
         Window.alert(e.getMessage());
       }
     }

   }

 Common
 
 Simply defines PluginCallback, as follows:-

   public class PluginCallbackT implements AsyncCallbackT {
     public void onFailure(Throwable caught) {}
     public void onSuccess(T result) {}
   }

 My problem is that the 

Spring Security with GWT

2011-07-08 Thread Sven
Hi people,

I am using GWT 2.3 and Spring Security 3. To explain my application
structure a little bit. My WebContent folder contains:

WebContent/
-WEB-INF/
-login.html
-logout.html
-secure/
---index.html

Starting my application and trying to access 
http://127.0.0.1.:/secure/index.html
redirects me to http://127.0.0.1.:/login.html... That's the way it
should be. After entering my credentials I get taken to my secured
index.html. There I have a navigation bar containing a FormPanel which
fires a POST j_spring_security_logout.

My configuration says that in this case I should get taken to
http://127.0.0.1.:/logout.html.
The security log shows that the security chain is processing a
redirect to this page. But the strange behaviour I stay on the secured
index page in FF or IE.

Obviously something blocks the redirect or do I have a general
missunderstanding?

Here some parts of my security file:

security:http auto-config=true
security:intercept-url pattern=/secure/index.html
requires-channel=http access=IS_AUTHENTICATED_FULLY 
/
security:form-login 
login-processing-url=/j_spring_security_check
login-page=/login.html 
default-target-url=/secure/index.html
authentication-failure-url=/logout.html /
security:access-denied-handler
error-page=/login.html /
security:logout logout-success-url=/logout.html/
/security:http

The log file after pressing logout button:

org.springframework.security.web.FilterChainProxy - Converted URL to
lowercase, from: '/j_spring_security_logout'; to: '/
j_spring_security_logout'
DEBUG 23:25:06,632 [btpool0-1]
org.springframework.security.web.FilterChainProxy - Candidate is: '/
j_spring_security_logout'; pattern is /**; matched=true
DEBUG 23:25:06,632 [btpool0-1]
org.springframework.security.web.FilterChainProxy - /
j_spring_security_logout at position 1 of 11 in additional filter
chain; firing Filter: 'ChannelProcessingFilter'
DEBUG 23:25:06,632 [btpool0-1]
security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource
- Converted URL to lowercase, from: '/j_spring_security_logout'; to: '/
j_spring_security_logout'
DEBUG 23:25:06,633 [btpool0-1]
security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource
- Candidate is: '/j_spring_security_logout'; pattern is /secure/
index.html; matched=false
DEBUG 23:25:06,633 [btpool0-1]
org.springframework.security.web.FilterChainProxy - /
j_spring_security_logout at position 2 of 11 in additional filter
chain; firing Filter: 'SecurityContextPersistenceFilter'
DEBUG 23:25:06,633 [btpool0-1]
springframework.security.web.context.HttpSessionSecurityContextRepository
- Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT:
'org.springframework.security.core.context.SecurityContextImpl@441d0230:
Authentication:
org.springframework.security.authentication.UsernamePasswordAuthenticationToken@441d0230:
Principal: org.springframework.security.core.userdetails.User@36ebcb:
Username: user; Password: [PROTECTED]; Enabled: true;
AccountNonExpired: true; credentialsNonExpired: true;
AccountNonLocked: true; Granted Authorities: ROLE_USER; Credentials:
[PROTECTED]; Authenticated: true; Details:
org.springframework.security.web.authentication.WebAuthenticationDetails@0:
RemoteIpAddress: 127.0.0.1; SessionId: 1mkhid3rhfysw; Granted
Authorities: ROLE_USER'
DEBUG 23:25:06,633 [btpool0-1]
org.springframework.security.web.FilterChainProxy - /
j_spring_security_logout at position 3 of 11 in additional filter
chain; firing Filter: 'LogoutFilter'
DEBUG 23:25:06,633 [btpool0-1]
security.web.authentication.logout.LogoutFilter - Logging out user
'org.springframework.security.authentication.UsernamePasswordAuthenticationToken@441d0230:
Principal: org.springframework.security.core.userdetails.User@36ebcb:
Username: user; Password: [PROTECTED]; Enabled: true;
AccountNonExpired: true; credentialsNonExpired: true;
AccountNonLocked: true; Granted Authorities: ROLE_USER; Credentials:
[PROTECTED]; Authenticated: true; Details:
org.springframework.security.web.authentication.WebAuthenticationDetails@0:
RemoteIpAddress: 127.0.0.1; SessionId: 1mkhid3rhfysw; Granted
Authorities: ROLE_USER' and transferring to logout destination
DEBUG 23:25:06,633 [btpool0-1]
security.web.authentication.logout.SimpleUrlLogoutSuccessHandler -
Using default Url: /logout.html
DEBUG 23:25:06,633 [btpool0-1]
org.springframework.security.web.DefaultRedirectStrategy - Redirecting
to '/logout.html'
DEBUG 23:25:06,633 [btpool0-1]
springframework.security.web.context.HttpSessionSecurityContextRepository
- SecurityContext is empty or anonymous - context will not be stored
in HttpSession.
DEBUG 23:25:06,633 [btpool0-1]
springframework.security.web.context.SecurityContextPersistenceFilter
- SecurityContextHolder now cleared, as request processing 

Re: secure widgets

2011-07-08 Thread Rob Coops
The idea behind security is simple, trust no one and trust nothing... only
when who ever tries to access and authenticates them self and
is authorized to access what ever it is the are attempting to access allow
this action.

So try and hide anything that a user should not have access to. This will
prevent them form attempting to access this and limits the number of errors
or warnings you will have to show.
Always check the credentials on every single call don't assume that due to
the user having access to a button they must have the rights check these
rights instead.
If at all possible do not provide access at all the more access you have to
give the more likely it is this will be abused. If you think you are being
paranoid you need to look for another job you can never be paranoid enough
;-)

In all honesty I think that GWT is not a very good platform for secure
applications for the simple reason that a lot of the hiding of functionality
happens on the wrong system (the client side). Now there is a lot to say
against security trough obscurity but look at it this way if you had never
seen or heard a bout an iPhone or iPad would you want one? Exactly 99% of
the people would say no to that and that means a big reduction in the number
of people that might try and get one...

If you are working on a system that should be as secure as possible I would
advocate against GWT simply because as originally said most of the hiding of
functionality happens on the wrong system which means that attackers gain a
lot of knowledge that would otherwise be just that bit harder to come by. Of
course there is nothing stopping them from gaining this knowledge anyway,
but every hurdle is one more reason to leave your site for what it is and
try to mess with your neighbors site instead.

No matter how many people advocate against the obscurity argument less
information is the reason wars have been lost and in this day and age where
information makes Google... restricting access to information means slightly
more security for your site no matter which way you look at it.


On Fri, Jul 8, 2011 at 9:09 PM, David Chandler drfibona...@google.comwrote:

 Agreed! Don't show the button if the user doesn't have permissions. But
 also check perms on the server to protect against hackers.

 /dmc

 On Fri, Jul 8, 2011 at 2:54 PM, Alberto Sarubbi asaru...@gmail.comwrote:

 we actually protect EVERY call to our server validating the user
 rights before proceeding to the service execution.

 it just doesn't seem right to show a user a button that he can't click
 because he don't have the permission to do.
 it sounds more logical not showing the button at all.
 of course, validations on server side will catch any click on a
 forbidden button, then comes the question: why would i show
 the button then?..


 thanks for the advice people. may be i just don't get right the js gui
 development yet :)

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.




 --
 David Chandler
 Developer Programs Engineer, GWT+GAE
 w: http://code.google.com/
 b: http://turbomanage.wordpress.com/
 b: http://googlewebtoolkit.blogspot.com/
 t: @googledevtools

  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-toolkit@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: Getting absolute paths an Editor from a Violation picked up from RequestContext onViolation

2011-07-08 Thread will0
I guess because I was using SimpleBeanEditorDriver which doesn't have that 
method (until 2.4 is released I now see). Thanks for pointing it out.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/5C6SsxZygYUJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Simulating button click in DialogBox with key event?

2011-07-08 Thread jscheller
I know I'm missing something obvious here, but what's the current
correct approach to catching a keyboard event to close a DialogBox or
do something similar (i.e., simulate clicking the Save or OK
button)?

I found an older example that uses onNativePreviewEvent() that seems
to be unsupported now, and I've got some other mischief running in a
class derived from FocusPanel that overrides onKeyPress(), but but I
can't seem to get anything working with anything derived from
DialogBox...

Thoughts or advice appreciated.

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



[gwt-contrib] Why are symbolMaps files not gzipped?

2011-07-08 Thread Thomas Broyer
The subject says it all: why are symbolMaps files not gzipped?

Each permutation produces, for our project, a 41Mb file. Fortunately we're 
only producing 2 permutations, but it still makes more than 80M that we 
don't (yet?) use, and there's no switch to turn them off.
Gzipping brings the file size from 41M down to 1.4M! and because this used 
for logging, and because most people will probably log only errors (and 
maybe warnings) in production, I think the size outweighs the performance 
here.
Not to mention that this has caused issues when it was introduced, with 
people keeping the default of generating them to war/WEB-INF and being 
refused upload of their app to AppEngine (files too big), and then wondering 
whether it was safe to simply not deploy them.

So, would gzipping be an issue? or in other words, is it worth providing a 
patch for that?

Thanks in advance

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

[gwt-contrib] Re: This patch substantially reduces the overhead of Java types in the output by minimizing vtable s... (issue1447821)

2011-07-08 Thread jbrosenberg


http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
(right):

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java#newcode516
dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:516: }
else {
maybe a little cleaner to break the control flow into:

else if (currentClass == program.getIndexedType(Array)) {
  ...
} else {
  ...
}

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java#newcode521
dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:521: }
else {
comment explaining why?

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
File dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
(right):

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java#newcode2161
dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java:2161: //
don't implement, fall through to Object.getClass()
why do arrays need to be different (add to comment?)

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java#newcode2763
dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java:2763:
private static final long AST_VERSION = 2;
do we need to bump this version, since array classes will now be
serialized differently?

http://gwt-code-reviews.appspot.com/1447821/

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


[gwt-contrib] Re: JsoNormalizer did not give unique names to devirtualized (issue1467812)

2011-07-08 Thread jbrosenberg

I'm not sure why the JsNamer classes (e.g. JsPrettyNamer) don't already
do the right thing (don't they?).  They definitely do have naming
disambiguation logic, etc.  Is there something more fundamental here?


http://gwt-code-reviews.appspot.com/1467812/diff/1/dev/core/src/com/google/gwt/dev/jjs/impl/JsoDevirtualizer.java
File dev/core/src/com/google/gwt/dev/jjs/impl/JsoDevirtualizer.java
(right):

http://gwt-code-reviews.appspot.com/1467812/diff/1/dev/core/src/com/google/gwt/dev/jjs/impl/JsoDevirtualizer.java#newcode198
dev/core/src/com/google/gwt/dev/jjs/impl/JsoDevirtualizer.java:198: }
whitespace

http://gwt-code-reviews.appspot.com/1467812/diff/1/dev/core/test/com/google/gwt/dev/jjs/impl/JsoDevirtualizerTest.java
File dev/core/test/com/google/gwt/dev/jjs/impl/JsoDevirtualizerTest.java
(right):

http://gwt-code-reviews.appspot.com/1467812/diff/1/dev/core/test/com/google/gwt/dev/jjs/impl/JsoDevirtualizerTest.java#newcode67
dev/core/test/com/google/gwt/dev/jjs/impl/JsoDevirtualizerTest.java:67:
static class Jso2 extends JavaScriptObject implements Iface2 {,
break up into 2 lines for readability

http://gwt-code-reviews.appspot.com/1467812/diff/1/dev/core/test/com/google/gwt/dev/jjs/impl/JsoDevirtualizerTest.java#newcode79
dev/core/test/com/google/gwt/dev/jjs/impl/JsoDevirtualizerTest.java:79:
// The salient point in the results below is that the JSO method used
for
s/val1 and val1/val1 and val2
s/val2 and val3/val3 and val4
s/name the/name than the

http://gwt-code-reviews.appspot.com/1467812/

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


[gwt-contrib] [google-web-toolkit] r10423 committed - Updating npapi plugin to remove gwtId from Jso objects (idenity fix),...

2011-07-08 Thread codesite-noreply

Revision: 10423
Author:   cod...@google.com
Date: Thu Jul  7 08:33:00 2011
Log:  Updating npapi plugin to remove gwtId from Jso objects (idenity  
fix),

adds a second map in LocalObjects.

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

http://code.google.com/p/google-web-toolkit/source/detail?r=10423

Added:
 /trunk/plugins/npapi/NPVariantUtil.h
 /trunk/user/test/com/google/gwt/core/client/JsIdentityTest.java
Modified:
 /trunk/plugins/npapi/JavaObject.cpp
 /trunk/plugins/npapi/LocalObjectTable.h
 /trunk/plugins/npapi/NPVariantWrapper.h
 /trunk/plugins/npapi/ScriptableInstance.cpp
 /trunk/plugins/npapi/ScriptableInstance.h
 /trunk/plugins/npapi/prebuilt/gwt-dev-plugin/background.html
 /trunk/user/test/com/google/gwt/core/CoreSuite.java

===
--- /dev/null
+++ /trunk/plugins/npapi/NPVariantUtil.hThu Jul  7 08:33:00 2011
@@ -0,0 +1,132 @@
+#ifndef _H_NPVariantUtil
+#define _H_NPVariantUtil
+
+#include Debug.h
+#include mozincludes.h
+
+/**
+ * Wraps an NPVariant and provides various helper functions
+ */
+class NPVariantUtil {
+public:
+  static int isBoolean(const NPVariant variant) {
+return NPVARIANT_IS_BOOLEAN(variant);
+  }
+
+  static bool getAsBoolean(const NPVariant variant) {
+return NPVARIANT_TO_BOOLEAN(variant);
+  }
+
+  // Return true if the variant is holding a regular integer or an  
integral double.

+  static int isInt(const NPVariant variant) {
+if (NPVARIANT_IS_INT32(variant)) {
+  return 1;
+} else if (NPVARIANT_IS_DOUBLE(variant)) {
+  // As of http://trac.webkit.org/changeset/72974 we get doubles for  
all

+  // numerical variants out of V8.
+  double d = NPVARIANT_TO_DOUBLE(variant);
+  int i = static_castint(d);
+  // Verify that d is an integral value in range.
+  return (d == static_castdouble(i));
+} else {
+  return 0;
+}
+  }
+
+  static int getAsInt(const NPVariant variant) {
+if (isInt(variant)) {
+  if (NPVARIANT_IS_INT32(variant)) {
+return NPVARIANT_TO_INT32(variant);
+  } else if (NPVARIANT_IS_DOUBLE(variant)) {
+return static_castint(NPVARIANT_TO_DOUBLE(variant));
+  }
+}
+
+Debug::log(Debug::Error)  getAsInt: variant  
+  NPVariantUtil::toString(variant)  not int  Debug::flush;
+return 0;
+  }
+
+  static int isNull(const NPVariant variant) {
+return NPVARIANT_IS_NULL(variant);
+  }
+
+  static int isObject(const NPVariant variant) {
+return NPVARIANT_IS_OBJECT(variant);
+  }
+
+  static NPObject* getAsObject(const NPVariant variant) {
+if (NPVARIANT_IS_OBJECT(variant)) {
+  return NPVARIANT_TO_OBJECT(variant);
+}
+Debug::log(Debug::Error)  getAsObject: variant not object   
Debug::flush;

+return 0;
+  }
+
+  static int isString(const NPVariant variant) {
+return NPVARIANT_IS_STRING(variant);
+  }
+
+  static const NPString* getAsNPString(const NPVariant variant) {
+if (NPVARIANT_IS_STRING(variant)) {
+  return NPVARIANT_TO_STRING(variant);
+}
+Debug::log(Debug::Error)  getAsNPString: variant not string   
Debug::flush;

+return 0;
+  }
+
+  static std::string toString(const NPVariant variant) {
+std::string retval;
+// TODO(jat): remove sprintfs
+char buf[40];
+NPObject* npObj;
+switch (variant.type) {
+  case NPVariantType_Void:
+retval = undef;
+break;
+  case NPVariantType_Null:
+retval = null;
+break;
+  case NPVariantType_Bool:
+retval = bool(;
+retval += (NPVARIANT_TO_BOOLEAN(variant) ? true : false);
+retval += ')';
+break;
+  case NPVariantType_Int32:
+retval = int(;
+snprintf(buf, sizeof(buf), %d), NPVARIANT_TO_INT32(variant));
+retval += buf;
+break;
+  case NPVariantType_Double:
+retval = double(;
+snprintf(buf, sizeof(buf), %g), NPVARIANT_TO_DOUBLE(variant));
+retval += buf;
+break;
+  case NPVariantType_String:
+{
+  retval = string(;
+  NPString str = NPVARIANT_TO_STRING(variant);
+  retval += std::string(str.UTF8Characters, str.UTF8Length);
+  retval += ')';
+}
+break;
+  case NPVariantType_Object:
+npObj = NPVARIANT_TO_OBJECT(variant);
+snprintf(buf, sizeof(buf), obj(class=%p, , npObj-_class);
+retval = buf;
+snprintf(buf, sizeof(buf), count=%d, , npObj-referenceCount);
+retval += buf;
+snprintf(buf, sizeof(buf), %p), npObj);
+retval += buf;
+break;
+  default:
+snprintf(buf, sizeof(buf), Unknown type %d, variant.type);
+retval = buf;
+break;
+}
+return retval;
+  }
+
+};
+
+#endif
===
--- /dev/null
+++ /trunk/user/test/com/google/gwt/core/client/JsIdentityTest.java	Thu  
Jul  7 08:33:00 2011

@@ -0,0 +1,196 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Licensed under the Apache 

[gwt-contrib] Re: Fix JsInliner, to properly handle name scope tracking after multi-level inlining. Was causing l... (issue1472803)

2011-07-08 Thread jbrosenberg

I've deleted that comment (it was incorrect).  The issue turns out to be
an interaction between the JsInliner and JsObfuscateNamer.  The issue is
with how JsInliner manages the scope for names that are hoisted to new
scopes via inlining.  This fix solves the test-cases provided in the
original issue (and duplicate issues).

http://gwt-code-reviews.appspot.com/1472803/

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


[gwt-contrib] [google-web-toolkit] r10424 committed - Un-breaking the code due to failed test case with htmlunit...

2011-07-08 Thread codesite-noreply

Revision: 10424
Author:   cod...@google.com
Date: Thu Jul  7 10:09:23 2011
Log:  Un-breaking the code due to failed test case with htmlunit

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

Deleted:
 /trunk/plugins/npapi/NPVariantUtil.h
 /trunk/user/test/com/google/gwt/core/client/JsIdentityTest.java
Modified:
 /trunk/plugins/npapi/JavaObject.cpp
 /trunk/plugins/npapi/LocalObjectTable.h
 /trunk/plugins/npapi/NPVariantWrapper.h
 /trunk/plugins/npapi/ScriptableInstance.cpp
 /trunk/plugins/npapi/ScriptableInstance.h
 /trunk/plugins/npapi/prebuilt/gwt-dev-plugin/background.html
 /trunk/user/test/com/google/gwt/core/CoreSuite.java

===
--- /trunk/plugins/npapi/NPVariantUtil.hThu Jul  7 08:33:00 2011
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef _H_NPVariantUtil
-#define _H_NPVariantUtil
-
-#include Debug.h
-#include mozincludes.h
-
-/**
- * Wraps an NPVariant and provides various helper functions
- */
-class NPVariantUtil {
-public:
-  static int isBoolean(const NPVariant variant) {
-return NPVARIANT_IS_BOOLEAN(variant);
-  }
-
-  static bool getAsBoolean(const NPVariant variant) {
-return NPVARIANT_TO_BOOLEAN(variant);
-  }
-
-  // Return true if the variant is holding a regular integer or an  
integral double.

-  static int isInt(const NPVariant variant) {
-if (NPVARIANT_IS_INT32(variant)) {
-  return 1;
-} else if (NPVARIANT_IS_DOUBLE(variant)) {
-  // As of http://trac.webkit.org/changeset/72974 we get doubles for  
all

-  // numerical variants out of V8.
-  double d = NPVARIANT_TO_DOUBLE(variant);
-  int i = static_castint(d);
-  // Verify that d is an integral value in range.
-  return (d == static_castdouble(i));
-} else {
-  return 0;
-}
-  }
-
-  static int getAsInt(const NPVariant variant) {
-if (isInt(variant)) {
-  if (NPVARIANT_IS_INT32(variant)) {
-return NPVARIANT_TO_INT32(variant);
-  } else if (NPVARIANT_IS_DOUBLE(variant)) {
-return static_castint(NPVARIANT_TO_DOUBLE(variant));
-  }
-}
-
-Debug::log(Debug::Error)  getAsInt: variant  
-  NPVariantUtil::toString(variant)  not int  Debug::flush;
-return 0;
-  }
-
-  static int isNull(const NPVariant variant) {
-return NPVARIANT_IS_NULL(variant);
-  }
-
-  static int isObject(const NPVariant variant) {
-return NPVARIANT_IS_OBJECT(variant);
-  }
-
-  static NPObject* getAsObject(const NPVariant variant) {
-if (NPVARIANT_IS_OBJECT(variant)) {
-  return NPVARIANT_TO_OBJECT(variant);
-}
-Debug::log(Debug::Error)  getAsObject: variant not object   
Debug::flush;

-return 0;
-  }
-
-  static int isString(const NPVariant variant) {
-return NPVARIANT_IS_STRING(variant);
-  }
-
-  static const NPString* getAsNPString(const NPVariant variant) {
-if (NPVARIANT_IS_STRING(variant)) {
-  return NPVARIANT_TO_STRING(variant);
-}
-Debug::log(Debug::Error)  getAsNPString: variant not string   
Debug::flush;

-return 0;
-  }
-
-  static std::string toString(const NPVariant variant) {
-std::string retval;
-// TODO(jat): remove sprintfs
-char buf[40];
-NPObject* npObj;
-switch (variant.type) {
-  case NPVariantType_Void:
-retval = undef;
-break;
-  case NPVariantType_Null:
-retval = null;
-break;
-  case NPVariantType_Bool:
-retval = bool(;
-retval += (NPVARIANT_TO_BOOLEAN(variant) ? true : false);
-retval += ')';
-break;
-  case NPVariantType_Int32:
-retval = int(;
-snprintf(buf, sizeof(buf), %d), NPVARIANT_TO_INT32(variant));
-retval += buf;
-break;
-  case NPVariantType_Double:
-retval = double(;
-snprintf(buf, sizeof(buf), %g), NPVARIANT_TO_DOUBLE(variant));
-retval += buf;
-break;
-  case NPVariantType_String:
-{
-  retval = string(;
-  NPString str = NPVARIANT_TO_STRING(variant);
-  retval += std::string(str.UTF8Characters, str.UTF8Length);
-  retval += ')';
-}
-break;
-  case NPVariantType_Object:
-npObj = NPVARIANT_TO_OBJECT(variant);
-snprintf(buf, sizeof(buf), obj(class=%p, , npObj-_class);
-retval = buf;
-snprintf(buf, sizeof(buf), count=%d, , npObj-referenceCount);
-retval += buf;
-snprintf(buf, sizeof(buf), %p), npObj);
-retval += buf;
-break;
-  default:
-snprintf(buf, sizeof(buf), Unknown type %d, variant.type);
-retval = buf;
-break;
-}
-return retval;
-  }
-
-};
-
-#endif
===
--- /trunk/user/test/com/google/gwt/core/client/JsIdentityTest.java	Thu  
Jul  7 08:33:00 2011

+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may  
not
- * use this file 

[gwt-contrib] [google-web-toolkit] r10425 committed - Integrating r3302 from GWT 1.5 back into trunk. The change fixes a bu...

2011-07-08 Thread codesite-noreply

Revision: 10425
Author:   jlaba...@google.com
Date: Thu Jul  7 10:26:33 2011
Log:  Integrating r3302 from GWT 1.5 back into trunk.  The change fixes  
a bug in Tree where opening a TreeItem while another node is selected  
causes the Tree to scroll to scroll to the selected node (opening an item  
does not select a node).  The original fix was committed directly to the  
GWT 1.5 branch.


Since I had the file open, I added @Overrides to get rid of compiler  
warnings.  The only actual change is line 659.


Issue: 1467

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

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

Modified:
 /trunk/user/src/com/google/gwt/user/client/ui/Tree.java

===
--- /trunk/user/src/com/google/gwt/user/client/ui/Tree.java	Wed Feb 16  
10:10:39 2011
+++ /trunk/user/src/com/google/gwt/user/client/ui/Tree.java	Thu Jul  7  
10:26:33 2011

@@ -300,6 +300,7 @@
* @see  
com.google.gwt.user.client.ui.HasWidgets#add(com.google.gwt.user.client.ui.Widget)

* @param widget widget to add.
*/
+  @Override
   public void add(Widget widget) {
 addItem(widget);
   }
@@ -309,18 +310,22 @@
*
* @see #add(Widget)
*/
+  @Override
   public void add(IsWidget w) {
 this.add(asWidgetOrNull(w));
   }

+  @Override
   public HandlerRegistration addBlurHandler(BlurHandler handler) {
 return addDomHandler(handler, BlurEvent.getType());
   }

+  @Override
   public HandlerRegistration addCloseHandler(CloseHandlerTreeItem  
handler) {

 return addHandler(handler, CloseEvent.getType());
   }

+  @Override
   public HandlerRegistration addFocusHandler(FocusHandler handler) {
 return addDomHandler(handler, FocusEvent.getType());
   }
@@ -328,6 +333,7 @@
   /**
* @deprecated Use {@link #addFocusHandler} instead
*/
+  @Override
   @Deprecated
   public void addFocusListener(FocusListener listener) {
 ListenerWrapper.WrappedFocusListener.add(this, listener);
@@ -349,6 +355,7 @@
* @param itemHtml the html of the item to be added
* @return the item that was added
*/
+  @Override
   public TreeItem addItem(SafeHtml itemHtml) {
 return root.addItem(itemHtml);
   }
@@ -358,6 +365,7 @@
*
* @param item the item to be added
*/
+  @Override
   public void addItem(TreeItem item) {
 root.addItem(item);
   }
@@ -367,6 +375,7 @@
*
* @param isItem the wrapper of item to be added
*/
+  @Override
   public void addItem(IsTreeItem isItem) {
 root.addItem(isItem);
   }
@@ -377,6 +386,7 @@
* @param widget the widget to be added
* @return the new item
*/
+  @Override
   public TreeItem addItem(Widget widget) {
 return root.addItem(widget);
   }
@@ -386,6 +396,7 @@
*
* @see #addItem(Widget)
*/
+  @Override
   public TreeItem addItem(IsWidget w) {
 return this.addItem(asWidgetOrNull(w));
   }
@@ -394,23 +405,28 @@
* @deprecated Use {@link #addKeyDownHandler}, {@link #addKeyUpHandler}  
and

* {@link #addKeyPressHandler} instead
*/
+  @Override
   @Deprecated
   public void addKeyboardListener(KeyboardListener listener) {
 ListenerWrapper.WrappedKeyboardListener.add(this, listener);
   }

+  @Override
   public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
 return addDomHandler(handler, KeyDownEvent.getType());
   }

+  @Override
   public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
 return addDomHandler(handler, KeyPressEvent.getType());
   }

+  @Override
   public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) {
 return addDomHandler(handler, KeyUpEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseDownHandler(MouseDownHandler handler)  
{

 return addHandler(handler, MouseDownEvent.getType());
   }
@@ -420,35 +436,43 @@
* {@link #addMouseDownHandler}, {@link #addMouseUpHandler}  
and

* {@link #addMouseOutHandler} instead
*/
+  @Override
   @Deprecated
   public void addMouseListener(MouseListener listener) {
 ListenerWrapper.WrappedMouseListener.add(this, listener);
   }

+  @Override
   public HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler)  
{

 return addDomHandler(handler, MouseMoveEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
 return addDomHandler(handler, MouseOutEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseOverHandler(MouseOverHandler handler)  
{

 return addDomHandler(handler, MouseOverEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseUpHandler(MouseUpHandler handler) {
 return addDomHandler(handler, MouseUpEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseWheelHandler(MouseWheelHandler  
handler) {

 return addDomHandler(handler, MouseWheelEvent.getType());

[gwt-contrib] Re: Integrating r3302 from GWT 1.5 back into trunk. The change fixes a bug in Tree where opening a ... (issue1467813)

2011-07-08 Thread jlabanca

committed as r10425

http://gwt-code-reviews.appspot.com/1467813/

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


[gwt-contrib] Re: Implements UiBinder rendering for Cells. (issue1466809)

2011-07-08 Thread jlabanca


http://gwt-code-reviews.appspot.com/1466809/diff/3020/user/src/com/google/gwt/uibinder/client/AbstractUiRenderer.java
File user/src/com/google/gwt/uibinder/client/AbstractUiRenderer.java
(right):

http://gwt-code-reviews.appspot.com/1466809/diff/3020/user/src/com/google/gwt/uibinder/client/AbstractUiRenderer.java#newcode38
user/src/com/google/gwt/uibinder/client/AbstractUiRenderer.java:38:
public boolean isParentOrRenderer(Element parent) {
Can this use UiRendererUtilsImpl#findRootElement()?  Seems like the code
is very similar.

http://gwt-code-reviews.appspot.com/1466809/diff/3020/user/src/com/google/gwt/uibinder/client/UiRendererUtilsImpl.java
File user/src/com/google/gwt/uibinder/client/UiRendererUtilsImpl.java
(right):

http://gwt-code-reviews.appspot.com/1466809/diff/3020/user/src/com/google/gwt/uibinder/client/UiRendererUtilsImpl.java#newcode155
user/src/com/google/gwt/uibinder/client/UiRendererUtilsImpl.java:155:
int endOfFirstTag = html.indexOf();
This still needs to handle self closing (ends in /) Strings:
div id=placeholder /

You can copy the code from RenderableStamper.stamp():
if (html.charAt(endOfFirstTag - 1) == '/') {
  endOfFirstTag--;
}

http://gwt-code-reviews.appspot.com/1466809/diff/3020/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
File user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
(right):

http://gwt-code-reviews.appspot.com/1466809/diff/3020/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java#newcode1441
user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java:1441: 
jMethod.getParameterTypes().length = 1
You should also handle the case where render() is declared without any
parameters.  This conditional would skip over the no-arg case without
throwing an error.

http://gwt-code-reviews.appspot.com/1466809/

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


[gwt-contrib] [google-web-toolkit] r10427 committed - Update bootstrap requestfactory-apt.jar to r10426.

2011-07-08 Thread codesite-noreply

Revision: 10427
Author:   gwt.mirror...@gmail.com
Date: Fri Jul  8 07:03:55 2011
Log:  Update bootstrap requestfactory-apt.jar to r10426.

http://code.google.com/p/google-web-toolkit/source/detail?r=10427

Modified:
 /tools/lib/requestfactory/requestfactory-apt.jar

===
--- /tools/lib/requestfactory/requestfactory-apt.jar	Fri Jul  1 12:22:05  
2011
+++ /tools/lib/requestfactory/requestfactory-apt.jar	Fri Jul  8 07:03:55  
2011

Binary file, no diff available.

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


[gwt-contrib] Re: Implements UiBinder rendering for Cells. (issue1466809)

2011-07-08 Thread rchandia

http://gwt-code-reviews.appspot.com/1466809/

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


[gwt-contrib] Use erasure to handle wildcard types in RfValidator. (issue1467814)

2011-07-08 Thread bobv

Reviewers: pquitslund,

Description:
Use erasure to handle wildcard types in RfValidator.
Restore FindRequest to 2.4 parameterization.
Patch by: bobv
Review by: pquitslund


Please review this at http://gwt-code-reviews.appspot.com/1467814/

Affected files:
  M  
user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java
  M  
user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java

  M user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java
  M  
user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java



Index:  
user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java

===
---  
user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java	 
(revision 10426)
+++  
user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java	 
(working copy)

@@ -62,6 +62,12 @@
 if (state.types.isAssignable(x, state.entityProxyType)
 || state.types.isAssignable(x, state.valueProxyType)) {
   // FooProxy - FooDomain
+  /*
+   * TODO(bobv): This if statement should be widened to baseProxy to  
support
+   * heterogenous collections of any proxy type. The BaseProxy  
interface
+   * would also need to be annotated with an @ProxyFor mapping. This  
can be
+   * done once RFIV is removed, since it only allows homogenous  
collections.

+   */
   TypeElement domainType =  
state.getClientToDomainMap().get(state.types.asElement(x));

   if (domainType == null) {
 return defaultAction(x, state);
@@ -120,10 +126,7 @@
   @Override
   public TypeMirror visitWildcard(WildcardType x, State state) {
 // Convert ? extends FooProxy to FooDomain
-if (x.getExtendsBound() != null) {
-  return x.getExtendsBound().accept(this, state);
-}
-return defaultAction(x, state);
+return state.types.erasure(x).accept(this, state);
   }

   /**
Index:  
user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java

===
---  
user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java	 
(revision 10426)
+++  
user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java	 
(working copy)

@@ -105,7 +105,7 @@
   @Override
   public Boolean visitWildcard(WildcardType t, State state) {
 // Allow List? extends FooProxy
-return t.getExtendsBound() != null  t.getExtendsBound().accept(this,  
state);

+return state.types.erasure(t).accept(this, state);
   }

   @Override
Index:  
user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java

===
--- user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java	 
(revision 10426)
+++ user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java	 
(working copy)

@@ -102,10 +102,7 @@

   @Override
   public TypeMirror visitWildcard(WildcardType x, State state) {
-if (x.getExtendsBound() != null) {
-  return x.getExtendsBound().accept(this, state);
-}
-return state.objectType;
+return state.types.erasure(x).accept(this, state);
   }

   @Override
Index:  
user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java

===
---  
user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java	 
(revision 10426)
+++  
user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java	 
(working copy)

@@ -31,5 +31,5 @@
   /**
* Use the implicit lookup in passing EntityProxy types to service  
methods.

*/
-  RequestEntityProxy find(EntityProxyId? extends EntityProxy proxy);
+  RequestEntityProxy find(EntityProxyId? proxy);
 }
\ No newline at end of file


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


[gwt-contrib] Re: Implements UiBinder rendering for Cells. (issue1466809)

2011-07-08 Thread jlabanca

LGTM

http://gwt-code-reviews.appspot.com/1466809/

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


[gwt-contrib] Re: Use erasure to handle wildcard types in RfValidator. (issue1467814)

2011-07-08 Thread rchandia

On 2011/07/08 15:40:34, bobv wrote:

LGTM

http://gwt-code-reviews.appspot.com/1467814/

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


[gwt-contrib] Re: Implements UiBinder rendering for Cells. (issue1466809)

2011-07-08 Thread rchandia

http://gwt-code-reviews.appspot.com/1466809/

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


[gwt-contrib] Re: Fix JsInliner, to properly handle name scope tracking after multi-level inlining. Was causing l... (issue1472803)

2011-07-08 Thread zundel

lgtm

http://gwt-code-reviews.appspot.com/1472803/

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


Re: [gwt-contrib] Re: RR: Retiring Safari 3 in a future release of GWT

2011-07-08 Thread Eric Ayers
Any other sentiments?

On Tue, Jul 5, 2011 at 10:04 AM, Jeff Larsen larse...@gmail.com wrote:

 Good riddance. I wish it was possible to do the same with IE versions  9.


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




-- 
Eric Ayers | Software Engineer | zun...@google.com | +1 404 487 9229

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

[gwt-contrib] Bypass RfValidatorTest when no JDK is available. (issue1465810)

2011-07-08 Thread bobv

Reviewers: rchandia,

Description:
Bypass RfValidatorTest when no JDK is available.
Patch by: bobv
Review by: rchandia


Please review this at http://gwt-code-reviews.appspot.com/1465810/

Affected files:
  M user/test/com/google/web/bindery/requestfactory/apt/RfValidatorTest.java


Index:  
user/test/com/google/web/bindery/requestfactory/apt/RfValidatorTest.java

===
---  
user/test/com/google/web/bindery/requestfactory/apt/RfValidatorTest.java	 
(revision 10426)
+++  
user/test/com/google/web/bindery/requestfactory/apt/RfValidatorTest.java	 
(working copy)

@@ -131,6 +131,10 @@
*/
   private void testGeneratedMessages(Class?... classes) {
 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+if (compiler == null) {
+  // This test is being run without a full JDK
+  return;
+}

 ListJavaFileObject files = new  
ArrayListJavaFileObject(classes.length);

 for (Class? clazz : classes) {


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


[gwt-contrib] Re: Bypass RfValidatorTest when no JDK is available. (issue1465810)

2011-07-08 Thread rchandia

On 2011/07/08 17:35:42, bobv wrote:

LGTM

http://gwt-code-reviews.appspot.com/1465810/

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


[gwt-contrib] [google-web-toolkit] r10428 committed - Use erasure to handle wildcard types in RfValidator....

2011-07-08 Thread codesite-noreply

Revision: 10428
Author:   gwt.mirror...@gmail.com
Date: Fri Jul  8 07:22:32 2011
Log:  Use erasure to handle wildcard types in RfValidator.
Restore FindRequest to 2.4 parameterization.
Patch by: bobv
Review by: rchandia

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

http://code.google.com/p/google-web-toolkit/source/detail?r=10428

Modified:
  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java
  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java
  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java
  
/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java


===
---  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java	 
Fri Jul  8 03:40:53 2011
+++  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/ClientToDomainMapper.java	 
Fri Jul  8 07:22:32 2011

@@ -62,6 +62,12 @@
 if (state.types.isAssignable(x, state.entityProxyType)
 || state.types.isAssignable(x, state.valueProxyType)) {
   // FooProxy - FooDomain
+  /*
+   * TODO(bobv): This if statement should be widened to baseProxy to  
support
+   * heterogenous collections of any proxy type. The BaseProxy  
interface
+   * would also need to be annotated with an @ProxyFor mapping. This  
can be
+   * done once RFIV is removed, since it only allows homogenous  
collections.

+   */
   TypeElement domainType =  
state.getClientToDomainMap().get(state.types.asElement(x));

   if (domainType == null) {
 return defaultAction(x, state);
@@ -120,10 +126,7 @@
   @Override
   public TypeMirror visitWildcard(WildcardType x, State state) {
 // Convert ? extends FooProxy to FooDomain
-if (x.getExtendsBound() != null) {
-  return x.getExtendsBound().accept(this, state);
-}
-return defaultAction(x, state);
+return state.types.erasure(x).accept(this, state);
   }

   /**
===
---  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java	 
Fri Jul  8 03:40:53 2011
+++  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/TransportableTypeVisitor.java	 
Fri Jul  8 07:22:32 2011

@@ -105,7 +105,7 @@
   @Override
   public Boolean visitWildcard(WildcardType t, State state) {
 // Allow List? extends FooProxy
-return t.getExtendsBound() != null  t.getExtendsBound().accept(this,  
state);

+return state.types.erasure(t).accept(this, state);
   }

   @Override
===
---  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java	 
Fri Jul  1 09:12:59 2011
+++  
/trunk/user/src/com/google/web/bindery/requestfactory/apt/TypeSimplifier.java	 
Fri Jul  8 07:22:32 2011

@@ -102,10 +102,7 @@

   @Override
   public TypeMirror visitWildcard(WildcardType x, State state) {
-if (x.getExtendsBound() != null) {
-  return x.getExtendsBound().accept(this, state);
-}
-return state.objectType;
+return state.types.erasure(x).accept(this, state);
   }

   @Override
===
---  
/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java	 
Fri Jul  1 09:12:59 2011
+++  
/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/FindRequest.java	 
Fri Jul  8 07:22:32 2011

@@ -31,5 +31,5 @@
   /**
* Use the implicit lookup in passing EntityProxy types to service  
methods.

*/
-  RequestEntityProxy find(EntityProxyId? extends EntityProxy proxy);
-}
+  RequestEntityProxy find(EntityProxyId? proxy);
+}

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


[gwt-contrib] [google-web-toolkit] r10429 committed - Update bootstrap requestfactory-apt.jar to r10428.

2011-07-08 Thread codesite-noreply

Revision: 10429
Author:   gwt.mirror...@gmail.com
Date: Fri Jul  8 10:51:57 2011
Log:  Update bootstrap requestfactory-apt.jar to r10428.

http://code.google.com/p/google-web-toolkit/source/detail?r=10429

Modified:
 /tools/lib/requestfactory/requestfactory-apt.jar

===
--- /tools/lib/requestfactory/requestfactory-apt.jar	Fri Jul  8 07:03:55  
2011
+++ /tools/lib/requestfactory/requestfactory-apt.jar	Fri Jul  8 10:51:57  
2011

Binary file, no diff available.

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


[gwt-contrib] [google-web-toolkit] r10430 committed - Update 2.4 branch with selective build fixes from trunk....

2011-07-08 Thread codesite-noreply

Revision: 10430
Author:   b...@google.com
Date: Fri Jul  8 07:56:17 2011
Log:  Update 2.4 branch with selective build fixes from trunk.

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

Modified:
  
/releases/2.4/user/src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java
  
/releases/2.4/user/test/com/google/web/bindery/requestfactory/server/BoxesAndPrimitivesJreTest.java
  
/releases/2.4/user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java


===
---  
/releases/2.4/user/src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java	 
Tue Apr 19 06:04:28 2011
+++  
/releases/2.4/user/src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java	 
Fri Jul  8 07:56:17 2011

@@ -30,6 +30,6 @@
  */
 @Documented
 @Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
+@Target({ElementType.METHOD, ElementType.TYPE})
 public @interface SkipInterfaceValidation {
 }
===
---  
/releases/2.4/user/test/com/google/web/bindery/requestfactory/server/BoxesAndPrimitivesJreTest.java	 
Mon Apr 18 16:25:25 2011
+++  
/releases/2.4/user/test/com/google/web/bindery/requestfactory/server/BoxesAndPrimitivesJreTest.java	 
Fri Jul  8 07:56:17 2011

@@ -24,6 +24,7 @@
 import com.google.web.bindery.requestfactory.shared.Request;
 import com.google.web.bindery.requestfactory.shared.RequestContext;
 import com.google.web.bindery.requestfactory.shared.Service;
+import  
com.google.web.bindery.requestfactory.shared.SkipInterfaceValidation;


 import java.util.Arrays;
 import java.util.logging.Logger;
@@ -32,6 +33,7 @@
  * A JRE version of {@link BoxesAndPrimitivesTest} with additional  
validation

  * tests.
  */
+@SkipInterfaceValidation
 public class BoxesAndPrimitivesJreTest extends BoxesAndPrimitivesTest {

   @Service(ServiceImpl.class)
===
---  
/releases/2.4/user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java	 
Sat Jun 11 03:17:07 2011
+++  
/releases/2.4/user/test/com/google/web/bindery/requestfactory/server/RequestFactoryInterfaceValidatorTest.java	 
Fri Jul  8 07:56:17 2011

@@ -42,6 +42,7 @@
 /**
  * JRE tests for {@link RequestFactoryInterfaceValidator}.
  */
+@SkipInterfaceValidation
 public class RequestFactoryInterfaceValidatorTest extends TestCase {
   static class ClinitEntity {
 static ClinitEntity findClinitEntity(@SuppressWarnings(unused)  
String key) {


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


[gwt-contrib] RFC: Breaking change to CellTable

2011-07-08 Thread John LaBanca
If you do not use Cell Widgets, you can ignore this email.

*
We recently introduced a new ElementBuilder
APIhttp://code.google.com/p/google-web-toolkit/source/detail?r=10412
for
building elements using either DOM manipulation or string concatenation with
innerHTML.  It allows us to optimize for different browsers, and it even
opens the door for server side rendering.  We've found that on some
browsers, DOM manipulation is getting faster than innerHTML (due to the cost
of actually building the HTML string).
*

So, we want to integrate ElementBuilder into CellTable/DataGrid/CellList.
 The problem is that Cell Widgets currently assume that their contents will
be built using a SafeHtmlBuilder, which isn't compatible with the
ElementBuilder API.  In the current flow, we call *renderRowValues()* to
build a SafeHtml string, then call one of *
replaceAllChildren/replaceChildren()* to render the SafeHtml string into the
CellTable.  I plan to replace *renderRowValues()* with a new
CellTableBuilder (name to be determined) interface that lets you build zero
or more rows for each row value using the ElementBuilder API, allowing the
use of colspans and rowspans.  This provides a lot of flexibility to create
customized CellTables.

Below is my proposal, which reduces this to a a couple of breaking changes
that should not affect many people:

   - renderRowValues() will be deprecated and will throw an
   UnsupportedOperationException if called.  However, CellTable will still call
   the code and catch the UnsupportedOperationException.  If we DO NOT catch
   the UnsupportedOperationException, then we proceed through the legacy stack,
   calling replaceAllChildren/replaceChildren with the generated HTML string.
This handles the case where user code overrides renderRowValues() and DOES
   NOT call super.renderRowValues().
   - replaceAllChildren/replaceChildren(ListR values, SafeHtml html) will
   be repurposed to mean build and replace.  By default, we pass null as the
   value of the SafeHtml string and note in the JavaDoc that it is a dead
   variable, and only there for legacy reasons to prevent API changes.
replaceAllChildren/replaceChildren will use the CellTableBuilder to build
   the table rows, then it will replace the rows.
   - However, if renderRowValues() does not throw an
   UnsupportedOperationException, then the HTML is passed in and we use the
   existing implementation.  This allows existing subclasses of AbstractHasData
   to continue working normally.  In fact, CellList will use this exact
   process.

This leaves two potential breaking situations.  First, if you currently
override renderRowValues() and call super.renderRowValues(), you'll trigger
an UnsupportedOperationException, which is ignored.  As a temporary
workaround, we'll introduce a deprecated final protected method
renderRowValuesLegacy().  Subclasses can override renderRowValues() and call
super.renderRowValues().  I expect that this is a very rare usecase, but
renderRowValuesLegacy will be dead-code eliminated by the compiler anyway.

The other breaking situation is if you override
replaceAllChildren/replaceChildren and try to operate on the SafeHtml
argument, which is now null.  In this case, you will have to update your
code accordingly (or override renderRowValues).

This is a bit hacky, but I prefer it over other options it because it does
not require any actual API changes, and the affected methods are protected
and I don't think a lot of people will override them.

John LaBanca | GWT Software Engineer | jlaba...@google.com

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

[gwt-contrib] Re: Adding all supported element builders to the ElementBuilder API. This is a follow-on change for... (issue1463812)

2011-07-08 Thread rchandia

On 2011/07/07 19:40:35, jlabanca wrote:

LGTM. Did not check *all* methods and classes, though.

http://gwt-code-reviews.appspot.com/1463812/

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


[gwt-contrib] Re: This patch substantially reduces the overhead of Java types in the output by minimizing vtable s... (issue1447821)

2011-07-08 Thread cromwellian


http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
(right):

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java#newcode516
dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:516: }
else {
On 2011/07/08 11:24:25, jbrosenberg wrote:

maybe a little cleaner to break the control flow into:



else if (currentClass == program.getIndexedType(Array)) {
   ...
} else {
   ...
}


Done.

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java#newcode521
dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:521: }
else {
On 2011/07/08 11:24:25, jbrosenberg wrote:

comment explaining why?


Done.

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
File dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
(right):

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java#newcode2161
dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java:2161: //
don't implement, fall through to Object.getClass()
On 2011/07/08 11:24:25, jbrosenberg wrote:

why do arrays need to be different (add to comment?)


Done.

http://gwt-code-reviews.appspot.com/1447821/diff/6053/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java#newcode2763
dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java:2763:
private static final long AST_VERSION = 2;
On 2011/07/08 11:24:25, jbrosenberg wrote:

do we need to bump this version, since array classes will now be

serialized

differently?


Done.

http://gwt-code-reviews.appspot.com/1447821/

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


[gwt-contrib] Re: This patch substantially reduces the overhead of Java types in the output by minimizing vtable s... (issue1447821)

2011-07-08 Thread cromwellian

http://gwt-code-reviews.appspot.com/1447821/

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


[gwt-contrib] Re: This patch substantially reduces the overhead of Java types in the output by minimizing vtable s... (issue1447821)

2011-07-08 Thread jbrosenberg

LGTM


http://gwt-code-reviews.appspot.com/1447821/diff/20001/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
(right):

http://gwt-code-reviews.appspot.com/1447821/diff/20001/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java#newcode516
dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:516: }
else {
Heh, I think I was thinking the else above could be changed to an else
if, to save a level of parens (no biggy, since this class is likely to
go away altogether once we are sure the new GwtAstBuilder will stick,
which is looking very likely at present)

http://gwt-code-reviews.appspot.com/1447821/

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


[gwt-contrib] [google-web-toolkit] r10432 committed - Fix JsInliner, to properly handle name scope tracking after multi-leve...

2011-07-08 Thread codesite-noreply

Revision: 10432
Author:   jbrosenb...@google.com
Date: Fri Jul  8 10:47:24 2011
Log:  Fix JsInliner, to properly handle name scope tracking after  
multi-level inlining.  Was causing local variable name collisions after  
obfuscation.

Fixes issue 5936.

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

http://code.google.com/p/google-web-toolkit/source/detail?r=10432

Modified:
 /trunk/dev/core/src/com/google/gwt/dev/js/JsInliner.java
 /trunk/dev/core/test/com/google/gwt/dev/js/JsInlinerTest.java

===
--- /trunk/dev/core/src/com/google/gwt/dev/js/JsInliner.java	Tue May 31  
05:03:27 2011
+++ /trunk/dev/core/src/com/google/gwt/dev/js/JsInliner.java	Fri Jul  8  
10:47:24 2011

@@ -762,6 +762,47 @@
   return v.refersToName();
 }
   }
+
+  /**
+   * Collect names in a hoisted statement that are local to the original
+   * scope.  These names will need to be copied to the destination scope
+   * once the statement becomes hoisted.
+   */
+  private static class HoistedNameVisitor extends JsVisitor {
+private final JsScope toScope;
+private final JsScope fromScope;
+private final ListJsName hoistedNames;
+
+public HoistedNameVisitor(JsScope toScope, JsScope fromScope) {
+  this.toScope = toScope;
+  this.fromScope = fromScope;
+  this.hoistedNames = new ArrayListJsName();
+}
+
+public ListJsName getHoistedNames() {
+  return hoistedNames;
+}
+
+/*
+ * We need to hoist names that are only visible in fromScope, but not  
in

+ * toScope (i.e. we don't want to hoist names that are visible to both
+ * scopes, such as a global). Also, we don't want to hoist names that  
have a

+ * staticRef, which indicates a formal parameter, or a function name.
+ */
+@Override
+public boolean visit(JsNameRef nameRef, JsContext ctx) {
+  JsName name = nameRef.getName();
+  JsName fromScopeName = fromScope.findExistingName(name.getIdent());
+  JsName toScopeName = toScope.findExistingName(name.getIdent());
+  if (name.getStaticRef() == null
+   name == fromScopeName
+   name != toScopeName
+   !hoistedNames.contains(name)) {
+hoistedNames.add(name);
+  }
+  return true;
+}
+  }

   /**
* Collect all of the idents used in an AST node. The collector can be
@@ -1097,10 +1138,11 @@
 statements = Collections.emptyList();
   }

-  ListJsExpression hoisted = new ArrayListJsExpression(
-  statements.size());
+  ListJsExpression hoisted = new  
ArrayListJsExpression(statements.size());
   JsExpression thisExpr = ((JsNameRef)  
x.getQualifier()).getQualifier();

-  ListJsName localVariableNames = new ArrayListJsName();
+  HoistedNameVisitor hoistedNameVisitor =
+  new HoistedNameVisitor(callerFunction.getScope(),  
invokedFunction.getScope());

+
   boolean sawReturnStatement = false;

   for (JsStatement statement : statements) {
@@ -1128,10 +1170,16 @@
  * distinct objects, it would not be possible to substitute  
different

  * JsNameRefs at different call sites.
  */
-JsExpression h = hoistedExpression(statement, localVariableNames);
+JsExpression h = hoistedExpression(statement);
 if (h == null) {
   return x;
 }
+
+/*
+ * Visit the statement to find names that will be moved to the  
caller's

+ * scope from the invoked function.
+ */
+hoistedNameVisitor.accept(statement);

 if (isReturnStatement(statement)) {
   sawReturnStatement = true;
@@ -1140,6 +1188,11 @@
   hoisted.add(h);
 }
   }
+
+  /*
+   * Get the referenced names that need to be copied to the caller's  
scope.

+   */
+  ListJsName hoistedNames = hoistedNameVisitor.getHoistedNames();

   /*
* If the inlined method has no return statement, synthesize an  
undefined

@@ -1179,7 +1232,7 @@
   // Perform the name replacement
   NameRefReplacerVisitor v = new NameRefReplacerVisitor(thisExpr,
   x.getArguments(), invokedFunction.getParameters());
-  for (ListIteratorJsName nameIterator =  
localVariableNames.listIterator(); nameIterator.hasNext();) {
+  for (ListIteratorJsName nameIterator =  
hoistedNames.listIterator(); nameIterator.hasNext();) {

 JsName name = nameIterator.next();

 /*
@@ -1210,7 +1263,7 @@
   op = v.accept(op);

   // Normalize any nested comma expressions that we may have generated.
-  op = (new CommaNormalizer(localVariableNames)).accept(op);
+  op = (new CommaNormalizer(hoistedNames)).accept(op);

   /*
* Compare the relative complexity of the original invocation versus  
the

@@ -1224,13 +1277,13 @@
 return x;
   }

-  if (callerFunction == programFunction  localVariableNames.size()   
0) {

+  if (callerFunction == programFunction  hoistedNames.size() 

[gwt-contrib] After an enum is ordinalized, any static methods generated as staticImpl's should no longer be c... (issue1467815)

2011-07-08 Thread jbrosenberg

Reviewers: cromwellian, scottb, zundel,

Description:
After an enum is ordinalized, any static methods generated as
staticImpl's should no longer be considered as such, since there is no
longer an instantated instance being passed as the first arg to the
method (this instance has been transformed into an ordinal int).

This was causing some clinit's not to be generated, since method calls
to staticImpl's don't force a clinit, since it is assumed that the
passed in instance argument will cause the clinit to be generated.


Please review this at http://gwt-code-reviews.appspot.com/1467815/

Affected files:
  M dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
  M dev/core/src/com/google/gwt/dev/jjs/impl/EnumOrdinalizer.java


Index: dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java
===
--- dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java   (revision 10425)
+++ dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java   (working copy)
@@ -1017,6 +1017,13 @@
 this.typesByQueryId = typesByQueryId;
   }

+  public void removeStaticImplMapping(JMethod staticImpl) {
+JMethod instanceMethod = staticToInstanceMap.remove(staticImpl);
+if (instanceMethod != null) {
+  instanceToStaticMap.remove(instanceMethod);
+}
+  }
+
   public void setRunAsyncs(ListJRunAsync runAsyncs) {
 this.runAsyncs = Lists.normalizeUnmodifiable(runAsyncs);
   }
Index: dev/core/src/com/google/gwt/dev/jjs/impl/EnumOrdinalizer.java
===
--- dev/core/src/com/google/gwt/dev/jjs/impl/EnumOrdinalizer.java	(revision  
10425)
+++ dev/core/src/com/google/gwt/dev/jjs/impl/EnumOrdinalizer.java	(working  
copy)

@@ -663,10 +663,24 @@
 return false;
   }

-  // cleanup clinit method for ordinalizable enums
   if (canBeOrdinal(x)) {
-// method 0 is always the clinit
+/*
+ * Cleanup clinit method for ordinalizable enums. Note, method 0 is
+ * always the clinit.
+ */
 updateClinit(x.getMethods().get(0));
+
+/*
+ * Remove any static impl mappings for any methods in an ordinal  
enum
+ * class. An ordinalized enum will no longer have an instance  
passed as
+ * the first argument for a static impl (it will just be an int).  
This
+ * is needed to preserve proper assumptions about static impls by  
other
+ * optimizers (e.g. we might need to insert a clinit, when it  
wouldn't

+ * be needed if a method call still had a static impl target).
+ */
+for (JMethod method : x.getMethods()) {
+  program.removeStaticImplMapping(method);
+}
   }
   return true;
 }


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


[gwt-contrib] Re: After an enum is ordinalized, any static methods generated as staticImpl's should no longer be c... (issue1467815)

2011-07-08 Thread cromwellian

LGTM, needs test?


http://gwt-code-reviews.appspot.com/1467815/

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


[gwt-contrib] Re: Implements UiBinder rendering for Cells. (issue1466809)

2011-07-08 Thread stephen . haberman




 Is it okay to make that public?
I think it is OK. We usually publish them in the Wiki, but Docs is

getting so good that I wanted to try it this way.

Using docs makes sense. Will it eventually be made public? Perhaps
copy/pasted over into the wiki for posterity?



http://gwt-code-reviews.appspot.com/1466809/

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