[gwt-contrib] Re: Code Review: Updated SliderBar to use the new event handling

2009-03-02 Thread Emily Crutcher
LGTM

On Mon, Mar 2, 2009 at 7:49 AM, Uwe Maurer uwe.mau...@google.com wrote:

 Hi,

 I moved the SliderBar to com.google.gwt.gen2.picker.client package,
 and the demo to the corresponding package.

 I added methods to use the new event handling to the Slider Bar, and
 removed the old event methods.
 I added style injection via Gen2CssInjector. (and added the images and
 css to com.google/gwt/gen2/widgetbase/public)

 The patch is in the attached file.

 Thanks,
 Uwe

 On Fri, Feb 27, 2009 at 5:13 PM, Emily Crutcher e...@google.com wrote:
  The changes look great. Thank you for doing this.  Any chance you could
 you
  create a gen2 version of SliderBar and deprecate the widgetideas version
  instead on modifying the widgetideas version in place?
  We are slowly retiring the old widgetideas package in favor of the gen2
  package hierarchy, so every time we would have to make a breaking API
 change
  to a widgetideas widget, we try to deprecate the old one and move the new
  one into a gen2 package instead.
  In this case, as the slider is a way to pick a value from a range, it
 would
  go into the gen2.picker.client package.
 
  Cheers,
  Emily
  On Fri, Feb 27, 2009 at 10:32 AM, Uwe Maurer uwe.mau...@google.com
 wrote:
 
  Hi,
 
  I added methods to use the new event handling to the Slider Bar.
 
  Also I changed to order of the two public interfaces to make CheckStyle
  happy.
 
  Thanks,
  Uwe
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Code Review: Updated SliderBar to use the new event handling

2009-02-27 Thread Emily Crutcher
The changes look great. Thank you for doing this.  Any chance you could you
create a gen2 version of SliderBar and deprecate the widgetideas version
instead on modifying the widgetideas version in place?
We are slowly retiring the old widgetideas package in favor of the gen2
package hierarchy, so every time we would have to make a breaking API change
to a widgetideas widget, we try to deprecate the old one and move the new
one into a gen2 package instead.

In this case, as the slider is a way to pick a value from a range, it would
go into the gen2.picker.client package.

Cheers,

Emily

On Fri, Feb 27, 2009 at 10:32 AM, Uwe Maurer uwe.mau...@google.com wrote:

 Hi,

 I added methods to use the new event handling to the Slider Bar.

 Also I changed to order of the two public interfaces to make CheckStyle
 happy.

 Thanks,
 Uwe




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Make DateBox fire ValueChangeEvent more reliably.

2009-02-27 Thread Emily Crutcher
Thanks for the fast turn around, committed as r4898


2009/2/27 jlaba...@google.com

 LGTM


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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Fixes Issue 3378, adding protected getHandlerCount() to widget.

2009-02-26 Thread Emily Crutcher
Committed at r4885


On Tue, Feb 24, 2009 at 6:16 PM, Ray Ryan rj...@google.com wrote:

 LGTM
 Nah, just rename and submit.


 On Tue, Feb 24, 2009 at 3:13 PM, Emily Crutcher e...@google.com wrote:

 Hmm Any reasons I can think of dissolve under the argument of that
 what I'd look for. Do you want a new patch with the rename?



 On Tue, Feb 24, 2009 at 6:08 PM, rj...@google.com wrote:

 Thanks for the quick response. Only one nit: why not just call the test
 WidgetTest? That's certainly what I'd look for when I wanted to extend
 it.


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




 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Associating Data Transfer Objects (DTOs) with Suggestion Objects

2009-02-24 Thread Emily Crutcher
It could work, though I found when I used this technique with
DatePicker (DatePicker extends AbstractDatePickerMonthSelector,
CalandarView), there was some feedback that having that abstract type layer
was slightly confusing because good OO practice implied that references
should then be typed as AbstractDatePicker, which then brought in the
complexity of the generic types back into the lives of the 90% who did not
care about the parameterized arguments.








On Tue, Feb 24, 2009 at 10:00 AM, Ray Ryan rj...@google.com wrote:

 How about extracting a parameterized super class:
 AbstractSuggestionBoxT extends Suggestion
 SuggestionBox extends AbstractSuggestionBoxSuggestion

 rjrjr

 On Mon, Feb 23, 2009 at 7:15 PM, Emily Crutcher e...@google.com wrote:



 On Mon, Feb 23, 2009 at 7:04 PM, Isaac Truett itru...@gmail.com wrote:


 The API documentation has this to say on the subject:

 [...] To send back a DTO with each suggestion, extend the Suggestion
 interface and define a getter method that has a return value of the
 DTO's type. Define a class that implements this subinterface and use
 it to encapsulate each suggestion.

 To access a suggestion's DTO when the suggestion is selected, add a
 SuggestionHandler to the SuggestBox (see SuggestBox's documentation
 for more information). In the
 SuggestionHandler.onSuggestionSelected(SuggestionEvent event) method,
 obtain the selected Suggestion object from the SuggestionEvent object,
 and downcast the Suggestion object to the subinterface. Then, acces
 the DTO using the DTO getter method that was defined on the
 subinterface.

 See
 http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/SuggestOracle.Suggestion.html

 (the 1.6 version is similar, but with the new event model)

 So the endorsed solution is to extend and cast. Fair enough. This
 probably dates from pre-1.5, and it was good enough for then. But is
 there a reason not to parameterize SuggestBox with T extends
 Suggestion (and SuggestOracleT, SelectionEventT, etc.) now that
 that's an option? Or perhaps make Suggestion implement HasValueT? I
 have an application that uses many SuggestBoxes and many different
 Suggestion subclasses and this would simplify things (and eliminate
 much type-casting).


 I'm not sure parameterizing  SuggestBox itself would be worth it, as most
 people use it without creating new types of suggestions: so the
 parameterization would add clutter for the many and prevent casts for the
 few.  Though, I completely agree it is annoying to have to cast. Perhaps we
 could create a composite-based CustomSuggestBox that is parameterized?





 Any thoughts on this? Horrible side effects that I'm missing?

 - Isaac





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Associating Data Transfer Objects (DTOs) with Suggestion Objects

2009-02-24 Thread Emily Crutcher
If that concern doesn't seem like it would be a problem, then I  definitely
agree with you that creating abstract base classes that have the
parametrized types seems like the best solution.


On Tue, Feb 24, 2009 at 10:54 AM, Ray Ryan rj...@google.com wrote:

 That feedback sounds a bit pedantic and impractical to me. And my job title
 used to be Senior Pedant.


 On Tue, Feb 24, 2009 at 7:44 AM, Emily Crutcher e...@google.com wrote:

 It could work, though I found when I used this technique with
 DatePicker (DatePicker extends AbstractDatePickerMonthSelector,
 CalandarView), there was some feedback that having that abstract type layer
 was slightly confusing because good OO practice implied that references
 should then be typed as AbstractDatePicker, which then brought in the
 complexity of the generic types back into the lives of the 90% who did not
 care about the parameterized arguments.








 On Tue, Feb 24, 2009 at 10:00 AM, Ray Ryan rj...@google.com wrote:

 How about extracting a parameterized super class:
 AbstractSuggestionBoxT extends Suggestion
 SuggestionBox extends AbstractSuggestionBoxSuggestion

 rjrjr

 On Mon, Feb 23, 2009 at 7:15 PM, Emily Crutcher e...@google.com wrote:



 On Mon, Feb 23, 2009 at 7:04 PM, Isaac Truett itru...@gmail.comwrote:


 The API documentation has this to say on the subject:

 [...] To send back a DTO with each suggestion, extend the Suggestion
 interface and define a getter method that has a return value of the
 DTO's type. Define a class that implements this subinterface and use
 it to encapsulate each suggestion.

 To access a suggestion's DTO when the suggestion is selected, add a
 SuggestionHandler to the SuggestBox (see SuggestBox's documentation
 for more information). In the
 SuggestionHandler.onSuggestionSelected(SuggestionEvent event) method,
 obtain the selected Suggestion object from the SuggestionEvent object,
 and downcast the Suggestion object to the subinterface. Then, acces
 the DTO using the DTO getter method that was defined on the
 subinterface.

 See
 http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/SuggestOracle.Suggestion.html

 (the 1.6 version is similar, but with the new event model)

 So the endorsed solution is to extend and cast. Fair enough. This
 probably dates from pre-1.5, and it was good enough for then. But is
 there a reason not to parameterize SuggestBox with T extends
 Suggestion (and SuggestOracleT, SelectionEventT, etc.) now that
 that's an option? Or perhaps make Suggestion implement HasValueT? I
 have an application that uses many SuggestBoxes and many different
 Suggestion subclasses and this would simplify things (and eliminate
 much type-casting).


 I'm not sure parameterizing  SuggestBox itself would be worth it, as
 most people use it without creating new types of suggestions: so the
 parameterization would add clutter for the many and prevent casts for the
 few.  Though, I completely agree it is annoying to have to cast. Perhaps we
 could create a composite-based CustomSuggestBox that is parameterized?





 Any thoughts on this? Horrible side effects that I'm missing?

 - Isaac





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't









 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: review for issue 249 fix

2009-02-24 Thread Emily Crutcher
Thanks for the quick turn around!

commited at r4853


2009/2/24 rj...@google.com

 LGTM


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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Associating Data Transfer Objects (DTOs) with Suggestion Objects

2009-02-23 Thread Emily Crutcher
On Mon, Feb 23, 2009 at 7:04 PM, Isaac Truett itru...@gmail.com wrote:


 The API documentation has this to say on the subject:

 [...] To send back a DTO with each suggestion, extend the Suggestion
 interface and define a getter method that has a return value of the
 DTO's type. Define a class that implements this subinterface and use
 it to encapsulate each suggestion.

 To access a suggestion's DTO when the suggestion is selected, add a
 SuggestionHandler to the SuggestBox (see SuggestBox's documentation
 for more information). In the
 SuggestionHandler.onSuggestionSelected(SuggestionEvent event) method,
 obtain the selected Suggestion object from the SuggestionEvent object,
 and downcast the Suggestion object to the subinterface. Then, acces
 the DTO using the DTO getter method that was defined on the
 subinterface.

 See
 http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/SuggestOracle.Suggestion.html

 (the 1.6 version is similar, but with the new event model)

 So the endorsed solution is to extend and cast. Fair enough. This
 probably dates from pre-1.5, and it was good enough for then. But is
 there a reason not to parameterize SuggestBox with T extends
 Suggestion (and SuggestOracleT, SelectionEventT, etc.) now that
 that's an option? Or perhaps make Suggestion implement HasValueT? I
 have an application that uses many SuggestBoxes and many different
 Suggestion subclasses and this would simplify things (and eliminate
 much type-casting).


I'm not sure parameterizing  SuggestBox itself would be worth it, as most
people use it without creating new types of suggestions: so the
parameterization would add clutter for the many and prevent casts for the
few.  Though, I completely agree it is annoying to have to cast. Perhaps we
could create a composite-based CustomSuggestBox that is parameterized?





 Any thoughts on this? Horrible side effects that I'm missing?

 - Isaac

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR (incubator): Color constructor operator order

2009-02-09 Thread Emily Crutcher
LGTM, thanks for the terrific  turn around time!


On Mon, Feb 9, 2009 at 9:43 AM, Jaime Yap jaime...@google.com wrote:

 Super simple fix. Had the order of operators swapped in one of the
 constructor overloads for Color.
 Affected files:
 src/com/google/gwt/widgetideas/graphics/client/Color.java

 -Jaime




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR : Declassifying RPC / Removing all type names from compilation

2009-02-09 Thread Emily Crutcher

 branch to check the -XdisableClassMetadata flag.

 @ecc, this reduces showcase by about 10%.  I would suspect that in an
 RPC-heavy application, this flag combined with enabling obfuscated
 idents in RPC payloads, should produce similar savings.


WOOT!



 --
 Bob Vawter
 Google Web Toolkit Team

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR : Declassifying RPC / Removing all type names from compilation

2009-02-07 Thread Emily Crutcher
Do you have any numbers of how much this shrinks compiled output, as this
seems like a terrific change!  Thanks for doing it :-).

   Cheers,

   Emily

On Fri, Feb 6, 2009 at 1:21 PM, BobV b...@google.com wrote:


 On Thu, Feb 5, 2009 at 12:28 AM, BobV b...@google.com wrote:
 
 http://google-web-toolkit.googlecode.com/svn/changes/bobv/elide_rpc_type_names_r4602
  Future changes:
   - A compiler flag or optional module to neuter Class.getName().

 I've added an -XdisableClassMetadata flag to this branch.

 This disables:
  - Class.getName() - returns Class$hashCode()
  - Class.getSuperclass() - returns null
  - Class.toString() - returns Object.toString()

 You can still use class.getName() as an equality comparison, but not
 for anything that requires semantic meaning; the relationships between
 the strings will be constant throughout the lifetime of the module.

 A.class == A.class != B.class
 A.class.getName() == A.class.getName() != B.class.getName()

 With this flag enabled, class literal setup for non-enum types is a
 simple JS new operation.  It reduces the total amount of code
 generated in a showcase compile by 10% based on find war -name
 '*.cache.html' -o -name '*.cache.js' | xargs wc.

 --
 Bob Vawter
 Google Web Toolkit Team

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Announcing GWT 1.6 Milestone 1

2009-02-05 Thread Emily Crutcher
Only the current gwt-incubator trunk is validated to work against the
release jar. We'll be releasing a new gwt-incubator jar soon, but I'm still
working on getting all the demos to build and display correctly.

On Thu, Feb 5, 2009 at 12:24 PM, Scott Blum sco...@google.com wrote:

 Hi stuckagain,
 It looks like you are using a version of the incubator jar that is not
 compatible with the milestone build.  Can you start a new thread about that
 and CC e...@google.com?

 I'm not sure why the compiler is trying to load gwt-ll, I will check it
 out, thanks.

 Scott


 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Image doesn’t show when using sa me URL multiple times and using the new event system

2009-02-05 Thread Emily Crutcher
Can you create a test case that is reproducible and add an issue to the
issue tracker? After you do that, feel free to e-mail me the issue id and
I'll take a look.

The strange thing about your problem is that the load listeners are actually
just adapted load handlers now, so getting different behavior is pretty
unexpected.



On Thu, Feb 5, 2009 at 1:21 PM, aris ari09845...@gmail.com wrote:


 Is any one having this problem?
 I just installed the latest version and I have the same problem.
 If I add a random number to each call of each url, it works. But of
 course this is not a real solution…

 Thanks

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



Re: tree item selection issue- removing the box

2009-02-04 Thread Emily Crutcher
I was using the FastTree widget, not the Tree widget unfortunately.

Try googling for selection box, highlight box, focus box. All the
browsers useslightly different ways of removing that box. However, it is
such a pain to remove, that you might be better off figuring out a way to
use different css for your tree.





On Wed, Feb 4, 2009 at 11:43 AM, Jill Singer jillre...@alum.mit.edu wrote:

 in both firefox and ie, when I click on a tree item a dotted box is
 put around the selection.

 since I am using  a static positioning (see

 http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/71349ea300afaa88
 )

 the dotted box is offset from the actual selection, and is thus
 disorienting.

 I would like to remove that box; I have been using firebug to hunt
 down the style I need to change, without any results.

 I found this thread; which says it can be done but doesn't offer any
 solutions:


 Emily Crutcher

  wrote here:
 http://groups.google.com/group/Google-Web-Toolkit-Contributors/browse_thread/thread/a63a973ee627dded

   I noticed a few styling issues:

 - Firefox puts a box around the selected tree item (see attached
 image).  Can it be removed?

  Yes.


 any one know how to do this?

 thanks

 -Jill




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

--~--~-~--~~~---~--~~
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] Re: FastTree gen2 tweaks

2009-02-04 Thread Emily Crutcher
On Wed, Feb 4, 2009 at 10:02 AM, nw...@google.com wrote:

 looks great, thanks for doing this.  I have one minor question/comment.


 http://gwt-code-reviews.appspot.com/2801/diff/1/7
 File src/com/google/gwt/gen2/widgetbase/public/FastTree.css (right):

 http://gwt-code-reviews.appspot.com/2801/diff/1/7#newcode66
 Line 66: background: #e3e8f3 url('%selectionBar%') repeat-x;
 this is the only thing that confuses me, are we no longer injecting the
 images? (as you're doing for the open/close gif's) and if so are we
 still injecting the selectionBar image?


That one should be changed to, thanks for spottint it.  We want to inject
images again, but that should be part of an end-to-end  css solution for
widgets. Will change it and commit.




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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] after the fact code review: bumping up stack needed by gwt incubator's test suite:

2009-02-03 Thread Emily Crutcher
Here is the change:
http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1466

-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: DropDownListBox upgrade

2009-02-03 Thread Emily Crutcher
Committed as r1467


On Mon, Feb 2, 2009 at 6:08 PM, Emily Crutcher e...@google.com wrote:

 Yep, thanks for the review!


 On Mon, Feb 2, 2009 at 5:46 PM, itru...@gmail.com wrote:

 LGTM, with the removal of stray debug code from DropDownPanel.


 http://gwt-code-reviews.appspot.com/2402/diff/1/10
 File src/com/google/gwt/gen2/commonwidget/client/DropDownPanel.java
 (right):

 http://gwt-code-reviews.appspot.com/2402/diff/1/10#newcode37
 Line 37: static int fool;
 Is this debugging code that didn't get removed?


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




 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: after the fact code review: bumping up stack needed by gwt incubator's test suite:

2009-02-03 Thread Emily Crutcher
For the heap, I think that would be a good change. The stack though  in
general, is not something programs should have to mess with.


On Tue, Feb 3, 2009 at 11:59 AM, Freeland Abbott gwt.team.fabb...@gmail.com
 wrote:

 Looks good, but can we make heap and stack be parameters to gwt.junit?  For
 incubator it may not matter, but when you have a second suite you may want
 different memory profiles in each.

 Something like:

 *macrodef name=gwt.junit

...
**attribute name=jvm.heap default=512M /
 **   **attribute name=jvm.stack default=1M /*
...
 *   **jvmarg line=-...@{jvm.heap} -x...@{jvm.stack} /
...


 *and then each use can set its own limits, like so:*

 gwt.junit jvm.heap=1G jvm.stack=256K ... /
 *



 On Tue, Feb 3, 2009 at 11:53 AM, Emily Crutcher e...@google.com wrote:

 Here is the change:
 http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1466

 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: after the fact code review: bumping up stack needed by gwt incubator's test suite:

2009-02-03 Thread Emily Crutcher
Adding heap param:
http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1468

The difference is with heap, the amount of memory is proportional to the
size of the tests and has a significant cost to set to high.

With stack, the size is proportional to nothing user visible, just a matter
of how the gwt serialization happened to work, and the number does not
effect performance in any significant way.


On Tue, Feb 3, 2009 at 12:38 PM, Freeland Abbott gwt.team.fabb...@gmail.com
 wrote:

 I'll LGTM either way, since you've only got one test anyway... but in GWT
 projects, I've seen more than one stack change required recently.


 On Tue, Feb 3, 2009 at 12:33 PM, Emily Crutcher e...@google.com wrote:

 For the heap, I think that would be a good change. The stack though  in
 general, is not something programs should have to mess with.



 On Tue, Feb 3, 2009 at 11:59 AM, Freeland Abbott 
 gwt.team.fabb...@gmail.com wrote:

 Looks good, but can we make heap and stack be parameters to gwt.junit?
 For incubator it may not matter, but when you have a second suite you may
 want different memory profiles in each.

 Something like:

 *macrodef name=gwt.junit

...
**attribute name=jvm.heap default=512M /
 **   **attribute name=jvm.stack default=1M /*
...
 *   **jvmarg line=-...@{jvm.heap} -x...@{jvm.stack} /
...


 *and then each use can set its own limits, like so:*



 gwt.junit jvm.heap=1G jvm.stack=256K ... /
 *



 On Tue, Feb 3, 2009 at 11:53 AM, Emily Crutcher e...@google.com wrote:

 Here is the change:
 http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1466

 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: IE6 and Grid Performance

2009-02-03 Thread Emily Crutcher
One warning for you, the performance characteristics of having a grid be
attached or detached can be very different for Firefox and IE. If you are
trying to use this technique in your own code, you might want to double
check the effect on both browsers.

In terms of gwt-incubator, we are brainstorming on ways to let our users
know which widgets/libraries are relatively stable (if they were perfectly
stable they would have graduated already)  and which are still wildly
fluctuating, once we have a proposal, I will be sending it out on this list,
so stay tuned.

Even for relatively stable widgets though, I think having a facade around
them is probably the smartest way to use them, so I'm glad your group is
using that practice.

  Cheers,

  Emily







On Tue, Feb 3, 2009 at 2:45 PM, David david.no...@gmail.com wrote:

 Hi John,
 I know about incubator and we are using PagingScrollTable in other places
 where the data can be much bigger.

 But the point that I was trying to report: some operations that do bulk
 operations in the Grid can be optimized a bit better by detaching from the
 document and reattaching automatically. Maybe that could somehow be done
 behind the scenes when doing a resize. The out-of-the-box experience would
 be much better - when doing a prototype to see if a technology is stable
 enough to be used, these kind of issues leave a bad impression on people
 trying out what could be achieved.

 Now that I know that it has a huge impact, I will do so myself in my custom
 listbox... and in the next step I will upgrade the component to a
 GridBulkRenderer, but that will have impact on the API of the component
 since it supports custom rendering in the listbox.

 The biggest issue I have with incubator is that with every release we have
 to update our code:
 - Class names change
 - Package names change (gen2)
 - methods are renamed or refactored
 - Event mechanism has changed half way.

 We have a deadline to meet and incubator widgets are just to volatile for
 the moment. The Table we already started using but only after shielding off
 everything about the incubator because we can not afford to change the
 applications all of the time (in total we have at least 5 big GWT projects
 in development and many new ones are being defined for the future).


 David


 On Tue, Feb 3, 2009 at 5:21 PM, John LaBanca jlaba...@google.com wrote:

 The GridBulkRenderer in the GWT incubator allows you to generate a Grid as
 an HTML string, which is much faster than using DOM manipulation as the Grid
 currently does.  You can also use it with the ScrollTable, which add a fixed
 header to a scrolling body.  Or use the PagingScrollTable, which divides the
 rows into mulitple pages.

 You can find these widgets in the incubator project:
 http://code.google.com/p/google-web-toolkit-incubator/


 Thanks,
 John LaBanca
 jlaba...@google.com



 On Tue, Feb 3, 2009 at 11:16 AM, stuckagain david.no...@gmail.comwrote:


 Beloved GWT devs,

 I just finished tracking down a big performance issue in one of our
 application and I really fell that I have to post something about the
 problem here.

 As we all know the Grid is very slow if you need to show a large
 table. But what I did not know is that it makes an extreem big
 difference when the Grid is attached or not.

 I had a Grid with 2000 rows (1 column) populated before attaching the
 widget. That takes about 5 seconds. That is not great, but since this
 is a border case it is good enough since most instances will only use
 less than 10 rows.

 But... we had some logic that reset the grid to contain refreshed
 data, but this time the grid is populated while it was already
 attached to the browser document. It now took 250 SECONDS to show the
 exact some data.

 The easy solution (before switching over to bulk rendering) is to
 simply remove the Grid from the document, populate it with the 2000
 rows and put it back.

 Wouldn't it be nice that the components like the Grid would do such
 things automatically when doing big operations like resize on it ?

 David






 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: let incubator's build.properties use environment variables

2009-01-16 Thread Emily Crutcher
LGTM

On Thu, Jan 15, 2009 at 10:36 PM, fabb...@google.com wrote:

 Reviewers: ecc,

 Description:
 Small tweak to set the env property first, so that user-preference
 properties in build.properties can refer to environment variables, and
 to remove the check on gwt.home, because it's going to be done in
 common.ant.xml anyway (and that might have more find-the-GWT heuristics,
 which would be blocked by an early test in build.xml).

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

 Affected files:
  build.xml


 Index: build.xml
 ===
 --- build.xml   (revision 1415)
 +++ build.xml   (working copy)
 @@ -23,22 +23,13 @@

property name=project.build.properties
 value=${project.root}/build.properties /

 +   property environment=env /
 +
property file=${project.build.properties} /

!-- Also check for global-incubator.properties in the directory
 above --
property file=${project.root}/../global-incubator.properties /
 -
 -   property environment=env /
 -
 -   !--
 -Check for gwt.home.
 ---
 -
 -   condition property=gwt.home value=${env.GWT_HOME}
 -   isset property=env.GWT_HOME /
 -   /condition
 -
 -
 +
!-- import common config --
import file=${project.root}/common.ant.xml /
import file=${project.root}/testsets.ant.xml /





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Question about Log.info,etc. methods

2009-01-16 Thread Emily Crutcher
Both actually, though if we don't change the method names, changing the
order of the parameters without breaking everyone currently using logging
would be almost impossible.


On Fri, Jan 16, 2009 at 11:21 AM, Isaac Truett itru...@gmail.com wrote:


 While I agree entirely regarding the undesirability of single-letter
 method names, I also wonder if perhaps Emily was referring, in part at
 least, to the order of the two parameters, message and category?
 Making that consistent doesn't seem unduly burdensome.



 On Fri, Jan 16, 2009 at 11:17 AM, Freeland Abbott
 gwt.team.fabb...@gmail.com wrote:
  At a speculative guess, Android may be choosing short names to keep the
  compiled class files smaller, since they're such a memory-restricted
  environment (they also like filenames like R.java to contain what amounts
 to
  a dictionary of resource hash-references).  I'm not sure I see Android as
 a
  server platform for GWT apps, so that issue goes away for us in the
 compile
  and obfuscate cycle of client code for the Android browser.
 
  So I second Joel's yuck, and see no reason to override the aesthetic
  objection. ;-)
 
 
 
  On Fri, Jan 16, 2009 at 10:38 AM, Joel Webber j...@google.com wrote:
 
  Log.i()? Yuck.
 
  On Thu, Jan 15, 2009 at 12:54 PM, Emily Crutcher e...@google.com
 wrote:
 
  In some ways, android is now a sister project of gwt.  For our static
  logging, we use methods like
  Log.info(String message, String category) the same method in android is
  Log.i(String category, String message). Is it worth normalizing those
 static
  method calls?
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
 
 
 
 
 
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Question about Log.info,etc. methods

2009-01-16 Thread Emily Crutcher
Currently, none of the  variations that I tried where categories were not
strings maintained the property that all logging messages were completely
compiled away. If you can figure one out, I'd be very interested.

  cheers,

Emily

On Fri, Jan 16, 2009 at 11:44 AM, Isaac Truett itru...@gmail.com wrote:


 What about finding some way to make the parameters type safe? Perhaps
 a simple Category class that wraps a String? Writing Log.info(new
 Category(message), category) would jump out at me as being very
 noticeably wrong. That would avoid the confusion now between
 Log.info() and Log.i(). Is the extra verbosity worth it?


 On Fri, Jan 16, 2009 at 11:30 AM, Emily Crutcher e...@google.com wrote:
  Both actually, though if we don't change the method names, changing the
  order of the parameters without breaking everyone currently using logging
  would be almost impossible.
 
 
  On Fri, Jan 16, 2009 at 11:21 AM, Isaac Truett itru...@gmail.com
 wrote:
 
  While I agree entirely regarding the undesirability of single-letter
  method names, I also wonder if perhaps Emily was referring, in part at
  least, to the order of the two parameters, message and category?
  Making that consistent doesn't seem unduly burdensome.
 
 
 
  On Fri, Jan 16, 2009 at 11:17 AM, Freeland Abbott
  gwt.team.fabb...@gmail.com wrote:
   At a speculative guess, Android may be choosing short names to keep
 the
   compiled class files smaller, since they're such a memory-restricted
   environment (they also like filenames like R.java to contain what
   amounts to
   a dictionary of resource hash-references).  I'm not sure I see Android
   as a
   server platform for GWT apps, so that issue goes away for us in the
   compile
   and obfuscate cycle of client code for the Android browser.
  
   So I second Joel's yuck, and see no reason to override the aesthetic
   objection. ;-)
  
  
  
   On Fri, Jan 16, 2009 at 10:38 AM, Joel Webber j...@google.com wrote:
  
   Log.i()? Yuck.
  
   On Thu, Jan 15, 2009 at 12:54 PM, Emily Crutcher e...@google.com
   wrote:
  
   In some ways, android is now a sister project of gwt.  For our
 static
   logging, we use methods like
   Log.info(String message, String category) the same method in android
   is
   Log.i(String category, String message). Is it worth normalizing
 those
   static
   method calls?
  
  
  
   --
   There are only 10 types of people in the world: Those who
 understand
   binary, and those who don't
  
  
  
  
  
  
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Making listener wrapper public

2009-01-16 Thread Emily Crutcher
How about WrappedClickListener instead then? I want a prefix rather then a
suffix because we don't want these classes to show up prominently when you
do a type search in an ide.


On Fri, Jan 16, 2009 at 2:57 PM, jlaba...@google.com wrote:

 Everything looks good except the names.  If we are making this public,
 then WrapClick sounds weird as a class name.  Generally, class names are
 nouns, but Wrap is a verb.  I suggest changing all of them to
 ClickListenerWrapper (or the equivalent for other listeners).  Event
 ClickWrapper seems a little vague to me.


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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Proposed tweaks to the new event infrastructure

2009-01-15 Thread Emily Crutcher
The reasons we narrow the type is to allow the following:

   1. the ability to have users deprecate their listeners cleanly
   2. the ability to create an internal gwt reporting system that gives
   users feedback on where/what their handlers are used
   3. the ability to, in a later release, create an event propagation system
   for widgets


On Thu, Jan 15, 2009 at 10:01 AM, rj...@google.com wrote:


 http://gwt-code-reviews.appspot.com/2205/diff/1/24
 File user/src/com/google/gwt/user/client/ui/Widget.java (left):

 http://gwt-code-reviews.appspot.com/2205/diff/1/24#oldcode53
 Line 53: public final HandlerManager getHandlers() {
 On 2009/01/15 14:53:37, ecc wrote:

 I think that would be a much larger breaking change if we did not

 override the

 return type here.


 I think it's too soon to think that way with this code. All of its users
 are early adopters who haven't even had access to it in an RC, or
 internal users whom we're perfectly capable of fixing.

 Narrowing the type is the odd thing to do, and if we don't have a
 compelling reason to do it, we shouldn't. IMHO


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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Proposed tweaks to the new event infrastructure

2009-01-15 Thread Emily Crutcher
As most of the code review comments are moot, due to the change in how the
interface is implemented,  capturing the two issues left here:

*gwt.*.foo.Foo* -- has, in general, meant getting the content of the entire
package.

My suggestion is to add another naming convention to get the essential
code:
*gwt.*.foo.FooBase* -- gets just the stuff absolutely needed for the
sub-packages to work.

So, for events
*gwt.event.Even*t -- gets all the currently defined gwt event structure.
*gwt.event.EventBase* - gets the core infrastructure needed.

The only other thing is rather then having DomEvent extend User, why don't
we have DomEvent extend com.google.gwt.user.DOM?



The reason for DefaultHandlerRegistration was because, if you look at the
javadoc, you'll see we've left ourselves the option of actually adding to
that interface.  The purpose of default handler registration was to give
users a way to avoid being broken if/when that happens if they needed to
implement their own handler registration.  We could replace it with a public
DelegatingHandlerRegistration though,or we could say we will definitely not
break the HandlerRegistration interface.




On Thu, Jan 15, 2009 at 3:10 PM, Emily Crutcher e...@google.com wrote:

 Yep, that's a requirement, the only question, in my mind, is how to name
 the modules.


 On Thu, Jan 15, 2009 at 2:09 PM, Ray Cromwell cromwell...@gmail.comwrote:


 Being able to pick out only base events is crucial for me, as trying to
 package the DOM classes in some environments leads to breakage (e.g.
 Android) -Ray



 On Thu, Jan 15, 2009 at 10:45 AM, j...@google.com wrote:



 http://gwt-code-reviews.appspot.com/2205/diff/1/6
 File user/src/com/google/gwt/event/Event.gwt.xml (right):

 http://gwt-code-reviews.appspot.com/2205/diff/1/6#newcode2
 Line 2: source path=shared/
 On 2009/01/15 14:53:37, ecc wrote:
  In almost all other cases in gwt, the module corresponding to the
 package name
  included everything. What about renaming this module to
 EventInfrastructure or
  EventBase if that is no longer true?

 The way things were before, it was impossible to take only the Event
 module, without picking up both the dom and logical packages. That would
 make this entire exercise pointless, because you wouldn't be able to
 reuse common event infrastructure without picking up a dependency on
 User.

 The only solutions to this are (a) what we have here or (b) to get rid
 of the event package hierarchy, which would leave us with something
 like:

 gwt.event.Event
 gwt.domevent.DomEvent
 gwt.logicalevent.LogicalEvent

 I don't care a great deal, but having a structure that makes it
 impossible to pick out the modules you want is unacceptable.

 http://gwt-code-reviews.appspot.com/2205/diff/1/8
 File user/src/com/google/gwt/event/shared/HandlerCollection.java
 (right):

 http://gwt-code-reviews.appspot.com/2205/diff/1/8#newcode23
 Line 23: */
 On 2009/01/15 14:53:37, ecc wrote:
  wording seems slightly awkward, can you rephrase? Something like
 Contains a
  collection of handlers, exposing the ability ...

 It doesn't actually *contain* a collection of handlers, but I've
 reworded it a bit anyway.

 http://gwt-code-reviews.appspot.com/2205/diff/1/7
 File user/src/com/google/gwt/event/shared/HandlerManager.java (right):

 http://gwt-code-reviews.appspot.com/2205/diff/1/7#newcode307
 Line 307:
 On 2009/01/15 14:53:37, ecc wrote:
  would prefer to have this method on a separate util class that is then
 javadoc'd
  to be only used by people implementing new handler collections
  (EventManagementUtil maybe?)
 

 Done.

 http://gwt-code-reviews.appspot.com/2205/diff/1/7#newcode365
 Line 365: HandlerManager.this.removeHandler((TypeEventHandler) type,
 handler);
 On 2009/01/14 22:50:06, rjrjr wrote:
  Why is this an improvement over DefaultHandlerRegistration? We have
 arguably
  less type safety, and no fewer classes.

 Not sure I follow -- DefaultHandlerRegistration assumed and required the
 use of HandlerManager, so you couldn't use them separately. All it
 appeared to do was implement the semantics of an inner class with a lot
 more typing (i.e., it had manually written ctor and fields that are just
 copies of now-final locals (HandlerManager.this, type, handler), and
 both implementations of removeHandler() contain the exact same typecast.
 I can't figure out a single reason for separating it into a top-level
 class.

 http://gwt-code-reviews.appspot.com/2205/diff/1/24
 File user/src/com/google/gwt/user/client/ui/Widget.java (left):

 http://gwt-code-reviews.appspot.com/2205/diff/1/24#oldcode53
 Line 53: public final HandlerManager getHandlers() {
 On 2009/01/15 15:01:08, rjrjr wrote:
  On 2009/01/15 14:53:37, ecc wrote:
   I think that would be a much larger breaking change if we did not
 override the
   return type here.
 
  I think it's too soon to think that way with this code. All of its
 users are
  early adopters who haven't even had access to it in an RC

[gwt-contrib] Re: PopupPanel -- RollDown animation

2009-01-14 Thread Emily Crutcher
Thanks, committed as r4448.

On Wed, Jan 14, 2009 at 10:27 AM, John LaBanca jlaba...@google.com wrote:

 LGTM

 One nit:
 You set  bottom = (int) (progress * offsetHeight), but you could just use
 bottom = top + height or even just bottom = height.

 Thanks,
 John LaBanca
 jlaba...@google.com



 On Tue, Jan 13, 2009 at 2:41 PM, e...@google.com wrote:

 Reviewers: jlabanca,

 Description:
 For SuggestBox and DropDownListBox, porting the RollDown animation class
 from incubator. Testing in the suggest box visual test.

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

 Affected files:
  user/src/com/google/gwt/user/client/ui/PopupPanel.java


 Index: user/src/com/google/gwt/user/client/ui/PopupPanel.java
 ===
 --- user/src/com/google/gwt/user/client/ui/PopupPanel.java  (revision
 4431)
 +++ user/src/com/google/gwt/user/client/ui/PopupPanel.java  (working
 copy)
 @@ -100,7 +100,7 @@
* /ul
*/
   static enum AnimationType {
 -CENTER, ONE_WAY_CORNER
 +CENTER, ONE_WAY_CORNER, ROLL_DOWN
   }

   /**
 @@ -144,7 +144,7 @@

   // Determine if we need to animate
   boolean animate = curPanel.isAnimationEnabled;
 -  if (curPanel.animType == AnimationType.ONE_WAY_CORNER  !showing)
 {
 +  if (curPanel.animType != AnimationType.CENTER  !showing) {
 animate = false;
   }

 @@ -210,17 +210,25 @@
   int bottom = 0;
   int height = (int) (progress * offsetHeight);
   int width = (int) (progress * offsetWidth);
 -  if (curPanel.animType == AnimationType.CENTER) {
 -top = (offsetHeight - height)  1;
 -left = (offsetWidth - width)  1;
 -  } else if (curPanel.animType == AnimationType.ONE_WAY_CORNER) {
 -if (LocaleInfo.getCurrentLocale().isRTL()) {
 -  left = offsetWidth - width;
 -}
 +  switch (curPanel.animType) {
 +case ROLL_DOWN:
 +  right = offsetWidth;
 +  bottom = (int) (progress * offsetHeight);
 +  break;
 +case CENTER:
 +  top = (offsetHeight - height)  1;
 +  left = (offsetWidth - width)  1;
 +  right = left + width;
 +  bottom = top + height;
 +  break;
 +case ONE_WAY_CORNER:
 +  if (LocaleInfo.getCurrentLocale().isRTL()) {
 +left = offsetWidth - width;
 +  }
 +  right = left + width;
 +  bottom = top + height;
 +  break;
   }
 -  right = left + width;
 -  bottom = top + height;
 -
   // Set the rect clipping
   impl.setClip(curPanel.getElement(), getRectString(top, right,
 bottom,
   left));






-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Proposed tweaks to the new event infrastructure

2009-01-14 Thread Emily Crutcher
The general idea of decoupling the handler manager from the actual events
seems like a great goal, and I think we are on the right track, a couple of
problems with the current implementation...

---

Removing getHandlers() unforutnately makes firing most logical events
type-unsafe.  We can decouple the handler manager by making getHandlers()
return the HandlerCollection interface however in order to avoid this
problem.

--

As a user, within my handler, I expect to be able to safely call all methods
on my event. The user, however, cannot safely call setSource and have it
work, but it will appear to work in many circumstances, therefore setting
him/her up for problems later. So having a public setSource() on event seems
like a very bad idea.
For example:
 ...
 MyEvent myEvent =  new MyEvent();
 *myEvent.setSource(childWidget);*
* delegateEvent(childWidget, myEvent)*
seems like valid code but is actually incorrect and prevents us from killing
the event at the correct time.

Making the source an invariant would mean we could no longer cache all of
our dom events and would have to remove the currently supported ability to
delegate events from one widget to another.

Now, personally, I would prefer to have the access method on another class
altogether, as it is still a bit too easy to find on HandlerManager.
However, I would have absolutely no sympathy for a user who tried to
something like this and used a method off of a EventDispatchUtil class.


Assume we have a logical event that is expensive to create (maybe it needs
server information) named ExpensiveEvent.

A composite widget may/may not have to create an ExpensiveEvent on some user
state change, depending upon whether it or any of its children have an
ExpensiveHandler.

isEventHandled() allows the widget to know if it needs to create an
expensive event or not.







On Wed, Jan 14, 2009 at 4:36 PM, Ray Ryan rj...@google.com wrote:



  On Wed, Jan 14, 2009 at 1:18 PM, Joel Webber j...@google.com wrote:

 All,
 I've run into a few snags trying to use the new event system with some
 custom libraries, and would like to propose a few changes that would make it
 easier to reuse the GwtEvent hierarchy without necessarily using all of the
 infrastructure in com.google.gwt.event.*

 When trying to fire GwtEvents without using HandlerManager (don't ask...
 but it is a legitimate use-case), I hit a couple of brick walls. The first
 was that GwtEvent.setSource() was package-protected, so that only
 HandlerManager was intended to be able to call it. This makes it impossible
 to usefully create one on your own.

 To solve this first problem, I simply added a static setEventSource()
 method to HandlerManager. Even though it's in HandlerManager, I can use it
 without pulling in the rest of it, and still not tempt event users to try
 setting the event's source.

public static void setEventSource(GwtEvent? event, Object source) {

 event.setSource(source);

   }


 I don't buy that this is an improvement over just making the method public.
 How do you figure that users will be less tempted to call this than to use
 the instance method?

 If it's that big a concern, let's make source an invariant, and make it a
 constructor argument on GwtEvent.


 The second issue was that HasHandlers had the method getHandlers() that
 returns a HandlerManager. This effectively tightly couples HandlerManager to
 the use of GwtEvent. It also exposes all event sources' HandlerManagers as
 part of their public API, which doesn't seem useful and constrains their
 ability to evolve implementations in the future.

 My proposal for this problem is as follows:

 Create a HandlerCollection interface that HandlerManager implements. This
 makes the use of HandlerManager an implementation detail rather than an API
 decision.


   public interface HandlerCollection {

 boolean isEventHandled(Type? type);

 void fireEvent(GwtEvent? event);

   }

 I then removed getHandlers() from HasHandlers (this interface is now
 empty, and could probably be removed as well).


 Can you go ahead and remove it?


 This method was being used by methods such as ResizeEvent.fire(). I
 propose simply requiring fire() to take the HandlerCollection as an argument
 (DomEvent.fire() already works this way, so it doesn't seem like much of a
 stretch). This keeps the fire() methods from having to call
 source.getHandlers(), and allows us to remove HasHandlers.getHandlers()
 altogether.

   public static void fire(HandlerCollection handlers, HasResizeHandlers
 source,

   int width, int height) { ... }


 I've attached a patch that implements this change. It touches a lot of
 files, but the changes are all pretty simple. I also refactored the Event
 modules slightly, so that it's possible to include only the shared event
 infrastructure, and just the logical and/or dom events (I also fixed the
 fact 

[gwt-contrib] Re: Proposed tweaks to the new event infrastructure

2009-01-14 Thread Emily Crutcher
 this and used a method off of a EventDispatchUtil class.


 But we don't actually recycle events anywhere, do we? This is one of the
 open issues left from the review process as the event stuff was merged in to
 the 1.6 branch last year--why do we have this complicated mechanism that we
 don't actually use?


We recycle all dom events, so we are already in this use case.

It is not that we are pretending it is not public, the method is public, but
for a different set of users: Normal Widget/Event creators should never,
ever, use this method. However, with the decoupling of HandlerManager from
the rest of the event system we have introduced a new class of users
handler management system implementors They, and only they, should need
access to it.







  On Wed, Jan 14, 2009 at 4:36 PM, Ray Ryan rj...@google.com wrote:



  On Wed, Jan 14, 2009 at 1:18 PM, Joel Webber j...@google.com wrote:

 All,
 I've run into a few snags trying to use the new event system with some
 custom libraries, and would like to propose a few changes that would make 
 it
 easier to reuse the GwtEvent hierarchy without necessarily using all of the
 infrastructure in com.google.gwt.event.*

 When trying to fire GwtEvents without using HandlerManager (don't ask...
 but it is a legitimate use-case), I hit a couple of brick walls. The first
 was that GwtEvent.setSource() was package-protected, so that only
 HandlerManager was intended to be able to call it. This makes it impossible
 to usefully create one on your own.

 To solve this first problem, I simply added a static setEventSource()
 method to HandlerManager. Even though it's in HandlerManager, I can use it
 without pulling in the rest of it, and still not tempt event users to try
 setting the event's source.

public static void setEventSource(GwtEvent? event, Object source)
 {

 event.setSource(source);

   }


 I don't buy that this is an improvement over just making the method
 public. How do you figure that users will be less tempted to call this than
 to use the instance method?

 If it's that big a concern, let's make source an invariant, and make it a
 constructor argument on GwtEvent.


 The second issue was that HasHandlers had the method getHandlers() that
 returns a HandlerManager. This effectively tightly couples HandlerManager 
 to
 the use of GwtEvent. It also exposes all event sources' HandlerManagers as
 part of their public API, which doesn't seem useful and constrains their
 ability to evolve implementations in the future.

 My proposal for this problem is as follows:

 Create a HandlerCollection interface that HandlerManager
 implements. This makes the use of HandlerManager an implementation detail
 rather than an API decision.


   public interface HandlerCollection {

 boolean isEventHandled(Type? type);

 void fireEvent(GwtEvent? event);

   }

 I then removed getHandlers() from HasHandlers (this interface is now
 empty, and could probably be removed as well).


 Can you go ahead and remove it?


 This method was being used by methods such as ResizeEvent.fire(). I
 propose simply requiring fire() to take the HandlerCollection as an 
 argument
 (DomEvent.fire() already works this way, so it doesn't seem like much of a
 stretch). This keeps the fire() methods from having to call
 source.getHandlers(), and allows us to remove HasHandlers.getHandlers()
 altogether.

   public static void fire(HandlerCollection handlers, HasResizeHandlers
 source,

   int width, int height) { ... }


 I've attached a patch that implements this change. It touches a lot of
 files, but the changes are all pretty simple. I also refactored the Event
 modules slightly, so that it's possible to include only the shared event
 infrastructure, and just the logical and/or dom events (I also fixed the
 fact that the dom event module didn't have an explicit inherits of
 User.gwt.xml (for the Event class -- mostly a technicality since it will
 always be included practically speaking).


 If you upload the patch to Rietveld, I'll be happy to take the review.


 One other quick question: Does Widget.isEventHandled() actually get used
 anywhere? I can't find any references to it. I can see it perhaps being
 useful for widget implementors, but so far no one does, and it's public,
 which seems a bit odd.


 Please remove it.


 The patch is not 100% tested yet, but I wanted to get feedback before
 taking it any further. This may seem like a pedantic exercise, but I think
 it's important to start taking steps to carefully decouple modules sooner
 rather than later.

 Cheers,
 joel.





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Why do DateBox.Format.parse() and format() need DateBox?

2009-01-13 Thread Emily Crutcher
Daniel,

 You have some good points and what you are describing is almost exactly
the date box we initially had in gwt-incubator.  We ran into a few
significant problems  that made us change to the current design:


   1. DateTimeFormat represents a very sophisticated API,  it was difficult
   for users to replace the formatting/parsing of dates because, to do so they
   needed to understand the internals of the date time format class.
   2. The most desirable default parsing behavior was a hybrid between a
   DateTimeFormat + a fall back to the browser's own parsing algorithms, this
   could not be cleanly modeled using just the DateTimeFormat.
   3. When we used a template method to allow users to override the error
   reporting for date box, we still got a lot of people not finding it, as the
   typical users looked for a setter of some flavor.


On Tue, Jan 13, 2009 at 11:49 AM, dflorey daniel.flo...@gmail.com wrote:


 Seems to be a matter of taste ;-)
 If parse() and format() should be capable of sophisticated error
 handling (like triggering a popup to show the error or whatever) I'd
 prefer to simply implement them as protected methods in DateBox +
 passing DateTimeFormat to cstr instead of Format interface and let
 user customize the behaviour by subclassing DateBox.
 I just wanted to report that it looked strange to me at first sight
 and as I'm totally average this also could confuse others...

 On Jan 13, 5:36 pm, Ray Ryan rj...@google.com wrote:
  DateFormat isn't just a parser, nor even mainly a parser. It lets you
  customize the display of your datebox in response to bad input. And
 because
  we pass DateBox in as a parameter, your DateFormat can be a shared
  flyweight.
  rjrjr
 
 
 
  On Tue, Jan 13, 2009 at 8:08 AM, dflorey daniel.flo...@gmail.com
 wrote:
 
   Hi,
   I'm for the first time using the new 1.6 DateBox.Format feature and I
   wonder why I have to pass a DateBox to the format() and parse()
   methods.
   The DateBox is used in the parse method to display parsing errors.
   I would prefer to let parse() throw an IllegalArgumentException when
   parsing fails and catch this exception in the enclosing parseDate()
   method. This would clean up the DateBox.Format interface.
 
   If you agree I can provide a tiny patch...
 
   Cheers,
   Daniel
 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Why do DateBox.Format.parse() and format() need DateBox?

2009-01-13 Thread Emily Crutcher

 1. DateTimeFormat represents a very sophisticated API,  it was
 difficult
 for users to replace the formatting/parsing of dates because, to do so
 they
 needed to understand the internals of the date time format class.



Try extending DateTimeFormat rather then using the predefined constants to
see this problem.



 2. The most desirable default parsing behavior was a hybrid between a
 DateTimeFormat + a fall back to the browser's own parsing algorithms,
 this
 could not be cleanly modeled using just the DateTimeFormat.

 Where can I find this browser's own parsing algorithms in the current
 code?

The default date formatter includes this code.




 3. When we used a template method to allow users to override the error
 reporting for date box, we still got a lot of people not finding it,
 as the
 typical users looked for a setter of some flavor.
 

 I guess for 99% of usecases the default behaviour of applying an error
 style to the date box is sufficient. The 1% of usecases that want to
 do more sophisticated error handling should be able to override the
 parse() method and catch the exception.
 If I want to do my own error handling right now I have to:
 Implement my own Formatter or subclass DefaultFormat anyway and
 implement/override the parse method and I don't see why this is any
 better than just subclassing DateBox.


People tend to look for set* methods first, so it easier for them to find
the correct methods to override, the actually mechanism is the same.





 
 
 
 
  On Tue, Jan 13, 2009 at 11:49 AM, dflorey daniel.flo...@gmail.com
 wrote:
 
   Seems to be a matter of taste ;-)
   If parse() and format() should be capable of sophisticated error
   handling (like triggering a popup to show the error or whatever) I'd
   prefer to simply implement them as protected methods in DateBox +
   passing DateTimeFormat to cstr instead of Format interface and let
   user customize the behaviour by subclassing DateBox.
   I just wanted to report that it looked strange to me at first sight
   and as I'm totally average this also could confuse others...
 
   On Jan 13, 5:36 pm, Ray Ryan rj...@google.com wrote:
DateFormat isn't just a parser, nor even mainly a parser. It lets you
customize the display of your datebox in response to bad input. And
   because
we pass DateBox in as a parameter, your DateFormat can be a shared
flyweight.
rjrjr
 
On Tue, Jan 13, 2009 at 8:08 AM, dflorey daniel.flo...@gmail.com
   wrote:
 
 Hi,
 I'm for the first time using the new 1.6 DateBox.Format feature and
 I
 wonder why I have to pass a DateBox to the format() and parse()
 methods.
 The DateBox is used in the parse method to display parsing errors.
 I would prefer to let parse() throw an IllegalArgumentException
 when
 parsing fails and catch this exception in the enclosing parseDate()
 method. This would clean up the DateBox.Format interface.
 
 If you agree I can provide a tiny patch...
 
 Cheers,
 Daniel
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Why do DateBox.Format.parse() and format() need DateBox?

2009-01-13 Thread Emily Crutcher
There is an effort planned for next quarter to create the global date
binding/error handling/etc. solution. The problem is that is that we wanted
to introduce a usable date box this release, not next, so we created the
interface that would be least likely to clash with a global solution.


On Tue, Jan 13, 2009 at 1:16 PM, dflorey daniel.flo...@gmail.com wrote:


 One last point before I shut up:
 If there would be another widget supporting the Format interface it
 would make sense to have a dedicated interface. But then again it
 would make no sense to pass a DateBox as this ties the Formatter to
 this particular widget.
 If there would be a abstract Format interface with parse() and format
 () the DateTimeFormat would be a perfect candidate for implementing
 this. This would enable users to come up with simple implementations
 if you this DateTimeFormat is too complex.
 If we do not decouple DateBox and DateBox.Format it is just adding
 unnecessary complexity IMO.

 On Jan 13, 7:10 pm, dflorey daniel.flo...@gmail.com wrote:
  I know this is nitpicking, but some comments inline
 
  On Jan 13, 6:53 pm, Emily Crutcher e...@google.com wrote:
 
   Daniel,
 
You have some good points and what you are describing is almost
 exactly
   the date box we initially had in gwt-incubator.  We ran into a few
   significant problems  that made us change to the current design:
 
  1. DateTimeFormat represents a very sophisticated API,  it was
 difficult
  for users to replace the formatting/parsing of dates because, to do
 so they
  needed to understand the internals of the date time format class.
 
  I don't see the difference. If we would get rid of the Format
  interface we would end up with 3 cstrs:
  DateBox() = same as now
  DateBox(Date date) = same as above, but with initial date set
  DateBox(DatePicker dp, Date date, DateTimeFormat format) = for
  advanced users that want to specify the format
 
  It's even simpler than it is now where I have to write
  new DateBox(new DatePicker(), new Date(), new DefaultFormat
  (DateTimeFormat.getShortDateFormat()) to change the format instead of
  new DateBox(new DatePicker(), new Date(),
  DateTimeFormat.getShortDateFormat())
 
  2. The most desirable default parsing behavior was a hybrid between
 a
  DateTimeFormat + a fall back to the browser's own parsing
 algorithms, this
  could not be cleanly modeled using just the DateTimeFormat.
 
  Where can I find this browser's own parsing algorithms in the current
  code?
 
  3. When we used a template method to allow users to override the
 error
  reporting for date box, we still got a lot of people not finding it,
 as the
  typical users looked for a setter of some flavor.
 
  I guess for 99% of usecases the default behaviour of applying an error
  style to the date box is sufficient. The 1% of usecases that want to
  do more sophisticated error handling should be able to override the
  parse() method and catch the exception.
  If I want to do my own error handling right now I have to:
  Implement my own Formatter or subclass DefaultFormat anyway and
  implement/override the parse method and I don't see why this is any
  better than just subclassing DateBox.
 
 
 
 
 
   On Tue, Jan 13, 2009 at 11:49 AM, dflorey daniel.flo...@gmail.com
 wrote:
 
Seems to be a matter of taste ;-)
If parse() and format() should be capable of sophisticated error
handling (like triggering a popup to show the error or whatever) I'd
prefer to simply implement them as protected methods in DateBox +
passing DateTimeFormat to cstr instead of Format interface and let
user customize the behaviour by subclassing DateBox.
I just wanted to report that it looked strange to me at first sight
and as I'm totally average this also could confuse others...
 
On Jan 13, 5:36 pm, Ray Ryan rj...@google.com wrote:
 DateFormat isn't just a parser, nor even mainly a parser. It lets
 you
 customize the display of your datebox in response to bad input. And
because
 we pass DateBox in as a parameter, your DateFormat can be a shared
 flyweight.
 rjrjr
 
 On Tue, Jan 13, 2009 at 8:08 AM, dflorey daniel.flo...@gmail.com
wrote:
 
  Hi,
  I'm for the first time using the new 1.6 DateBox.Format feature
 and I
  wonder why I have to pass a DateBox to the format() and parse()
  methods.
  The DateBox is used in the parse method to display parsing
 errors.
  I would prefer to let parse() throw an IllegalArgumentException
 when
  parsing fails and catch this exception in the enclosing
 parseDate()
  method. This would clean up the DateBox.Format interface.
 
  If you agree I can provide a tiny patch...
 
  Cheers,
  Daniel
 
   --
   There are only 10 types of people in the world: Those who understand
   binary, and those who don't
 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who

[gwt-contrib] Re: setKeyCode doesn't work in firefox

2009-01-09 Thread Emily Crutcher
LGTM

On Fri, Jan 9, 2009 at 11:53 AM, jlaba...@google.com wrote:

 Reviewers: ecc,

 Description:
 The keyCode is a read only attribute in all browsers except IE.  This
 patch deprecates the setKeyCode method so we can remove it in a future
 release.

 Here is the associated issue:
 http://code.google.com/p/google-web-toolkit/issues/detail?id=25

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

 Affected files:
  user/src/com/google/gwt/user/client/DOM.java
  user/src/com/google/gwt/user/client/ui/TextBoxBase.java


 Index: user/src/com/google/gwt/user/client/DOM.java
 ===
 --- user/src/com/google/gwt/user/client/DOM.java(revision 4419)
 +++ user/src/com/google/gwt/user/client/DOM.java(working copy)
 @@ -626,7 +626,10 @@
*
* @param evt the event whose key code is to be set
* @param key the new key code
 +   * @deprecated this method only works in IE and should not have been
 added to
 +   * the API
*/
 +  @Deprecated
   public static void eventSetKeyCode(Event evt, char key) {
 impl.eventSetKeyCode(evt, key);
   }
 Index: user/src/com/google/gwt/user/client/ui/TextBoxBase.java
 ===
 --- user/src/com/google/gwt/user/client/ui/TextBoxBase.java (revision
 4419)
 +++ user/src/com/google/gwt/user/client/ui/TextBoxBase.java (working
 copy)
 @@ -226,7 +226,10 @@
* listeners to easily filter keyboard input.
*
* @param key the new key value
 +   * @deprecated this method only works in IE and should not have been
 added to
 +   * the API
*/
 +  @Deprecated
   public void setKey(char key) {
 if (currentEvent != null) {
   DOM.eventSetKeyCode(currentEvent, key);





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: 1.6 date picker question

2009-01-08 Thread Emily Crutcher
By the way, now that gwt-incubator is sourced against 1.6,  if you can
retarget your DropDownDatePicker for 1.6 and the com.google.gwt.gen2.picker
package I'd love to review it.



On Fri, Dec 5, 2008 at 1:08 AM, Emily Crutcher e...@google.com wrote:

 Also, the code should be reviewed before committing. I'll be happy to be
 your reviewer once we land the 1.6 datepicker + release the 1.5 final
 gwt-incubator drop. As until then, we cannot add 1.6 specific code to
 gwt-incubator.


 On Fri, Dec 5, 2008 at 1:05 AM, Emily Crutcher e...@google.com wrote:

 Yep, sounds right, thanks!


 On Thu, Dec 4, 2008 at 6:53 PM, Isaac Truett itru...@gmail.com wrote:

 On second thought, gwt-incubator is supposed to compile against trunk,
 isn't it? Well, since this is written to compile against the
 1_6_datepicker branch, I'll hold off committing until that branch is
 merged to trunk (soon, right...?).

 I've attached the DropDownDatePicker proof-of-concept patch. It's
 very, very ugly, but it works. I'll see about tending to the style a
 little bit when I have more time.

 Comments welcome, of course.

 - Isaac

 On Thu, Dec 4, 2008 at 10:36 AM, Emily Crutcher e...@google.com wrote:
  That sounds great, thanks.
 
  On Thu, Dec 4, 2008 at 10:31 AM, Isaac Truett itru...@gmail.com
 wrote:
 
  I wrote a MonthSelector a while back that uses DropDownListBoxes for
  month and year. I can fix it up to be compatible with recent changes
  and add it to the incubator. I'll see if I can fit that in tonight.
 
 
  On Thu, Dec 4, 2008 at 9:39 AM, Emily Crutcher e...@google.com
 wrote:
   It is definitely something that we would consider. Of course, the
 first
   step
   would be to get some good alternative month selectors into the
   gwt-incubator...
  
  
   On Wed, Dec 3, 2008 at 9:28 PM, Arthur Kalmenson 
 arthur.k...@gmail.com
   wrote:
  
   Hi John,
  
   Thank you for the reply. Are there any plans in the future to
 include
   various variations of the date picker for developers to choose from
   (which would be inline with the requests for a richer widget
 set)?
  
   --
   Arthur Kalmenson
  
  
  
   On Mon, Dec 1, 2008 at 11:37 AM, John LaBanca jlaba...@google.com
 
   wrote:
[+ecc, +google-web-toolkit-contributors]
   
The default DatePicker will only include next and previous
 buttons,
but
you
can replace the MonthSelector with your own that does any of the
things
you
suggest.  We thought about using a fancy MonthSelector by
 default,
but
we
figured everyone would have a different opinion on the ideal
 version,
so
we
instead designed it so you can replace it.
   
Thanks,
John LaBanca
jlaba...@google.com
   
   
On Mon, Dec 1, 2008 at 9:41 AM, Arthur Kalmenson
arthur.k...@gmail.com
wrote:
   
Hello John,
   
Will the 1.6 date picker include a year spinner? I know the
 current
incubator version does not have a year spinner, so this makes it
pretty difficult to use the date picker if you have a date
 that's
more
then a year off. Another nice feature would be to be able to
 select
the date. For example you could click on the year the date
 picker
shows, and that would turn it into a text box where you can
 enter
the
year you'd like.
   
Best regards,
--
Arthur Kalmenson
   
   
  
  
  
   --
   There are only 10 types of people in the world: Those who
 understand
   binary, and those who don't
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Prosposed API Change - Deprecate TextBoxBase#setKey() and DOM#eventSetKeyCode()

2009-01-08 Thread Emily Crutcher
+1 from me.

On Thu, Jan 8, 2009 at 4:52 PM, John LaBanca jlaba...@google.com wrote:

 Contributors -

 Description:
 =
 I proposed that we deprecate DOM#eventSetKeyCode() and TextBoxBase#setKey()
 because they only work in IE and the same functionality would be difficult
 to simulate on other browsers.  These methods allow you to change the
 keyCode on keyboard events, which actually changes the character that will
 be typed into TextBoxes.  However, the attribute is readonly in all browsers
 except IE, which means that you will see a JS error on FireFox, Safari, and
 Opera.  Simulating this reliably would be incredibly difficult because it
 involves canceling the native event and creating a new one, so I propose
 that we deprecate it for now without any replacement.  If we come up with
 some alternative in the future, we can add it.

 You can see the full issue here:
 http://code.google.com/p/google-web-toolkit/issues/detail?id=25


 Thanks,
 John LaBanca
 jlaba...@google.com

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: @SingleImpl versus @SingleJsoImpl

2009-01-07 Thread Emily Crutcher
In the library code we constantly use *Impl to denote a class  that users
should not look at, but here we we have  *Impl annotations that is part of a
public API. Could we modify the name slightly so we can keep the *Impl
convention consistant throughout the gwt code base?


On Wed, Jan 7, 2009 at 11:17 AM, John Tamplin j...@google.com wrote:

 On Wed, Jan 7, 2009 at 10:48 AM, Bruce Johnson br...@google.com wrote:

 Does anyone buy that reasoning? An important related question is whether
 these things are actually compiler flags or whether they are module
 settings. I think they are actually more appropriate as the latter.


 If they are module flags, what happens when you have different settings for
 different modules (as you point out, it will be impossible to keep them
 consistent in a large code base with shared code)?  If it is a compile-time
 error, then some code simply won't be shareable between projects -- maybe
 that is ok if that module's owner has decided it is important enough to set
 the flag in a library module?  If it is based on which module it is in, does
 the caller or callee win the battle, and will that behavior be surprising to
 a developer?

 Regarding the original question, I don't have a strong preference for
 either solution over the other.  #2 does have additional utility, but it
 seems less consistent than simply saying that after type tightening there
 must be exactly one implementation.  Given the primary use case is shared
 code between client and server which will use a JSO object in the client (at
 least until generators are able to produce a JSO subclass), I am not sure
 the additional utility is worth the hidden code size risk and slightly
 inconsistency.

 --
 John A. Tamplin
 Software Engineer (GWT), Google


 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: @SingleImpl versus @SingleJsoImpl

2009-01-07 Thread Emily Crutcher
FormPanelImplHost is an example of an impl interface.

I think once users see one *Impl type that has documented useful
functionality for them, they are less likely to ignore the next *Impl
class/interface/annotation they see that looks like it might be useful for
them, regardless of whether the *Impl type is an annotation, interface,  or
class.



On Wed, Jan 7, 2009 at 12:26 PM, Bruce Johnson br...@google.com wrote:

 @Emily: Does the fact that it's an annotation not make it completely clear?
 We don't use *Impl on interfaces anywhere (do we?)

  On Wed, Jan 7, 2009 at 11:46 AM, Emily Crutcher e...@google.com wrote:

 In the library code we constantly use *Impl to denote a class  that users
 should not look at, but here we we have  *Impl annotations that is part of a
 public API. Could we modify the name slightly so we can keep the *Impl
 convention consistant throughout the gwt code base?


 On Wed, Jan 7, 2009 at 11:17 AM, John Tamplin j...@google.com wrote:

 On Wed, Jan 7, 2009 at 10:48 AM, Bruce Johnson br...@google.com wrote:

  Does anyone buy that reasoning? An important related question is
 whether these things are actually compiler flags or whether they are module
 settings. I think they are actually more appropriate as the latter.


 If they are module flags, what happens when you have different settings
 for different modules (as you point out, it will be impossible to keep them
 consistent in a large code base with shared code)?  If it is a compile-time
 error, then some code simply won't be shareable between projects -- maybe
 that is ok if that module's owner has decided it is important enough to set
 the flag in a library module?  If it is based on which module it is in, does
 the caller or callee win the battle, and will that behavior be surprising to
 a developer?

 Regarding the original question, I don't have a strong preference for
 either solution over the other.  #2 does have additional utility, but it
 seems less consistent than simply saying that after type tightening there
 must be exactly one implementation.  Given the primary use case is shared
 code between client and server which will use a JSO object in the client (at
 least until generators are able to produce a JSO subclass), I am not sure
 the additional utility is worth the hidden code size risk and slightly
 inconsistency.

 --
 John A. Tamplin
 Software Engineer (GWT), Google






 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Review of handler map speed test.

2009-01-06 Thread Emily Crutcher
It was a proprietary one actually, so its name was deliberately omitted,
however as it is a very large application,  so should be pretty indicative
of most well designed applications.
+1 from me for Joel's conclusion.

On Tue, Jan 6, 2009 at 4:17 PM, Ray Ryan rj...@google.com wrote:

 What was the large application?

 On Tue, Jan 6, 2009 at 1:13 PM, Joel Webber j...@google.com wrote:

 I ran a quick test to determine how many handlers get added in actual
 applications. For Showcase, after opening all the samples, it looks
 something like this:- addHandler() is called 128 times
 - Widgets with:
   - 1 handler: 103
   - 2 handlers: 6
   - 3 handlers: 1
   - 5 handlers: 2

 I also ran these tests on the largest internal application I know of, and
 came up with the following numbers (for the initial load, which involves
 lots of widgets):
 - addHandler(): called 266 times
   - 1 handler: 36
   - 2 handlers: 23
   - 3 handlers: 24
   - 4 handlers: 1
   - 5 handlers: 7
   - 6 handlers: 8
   - 7 handlers: 2
   - 11 handlers: 1

 Note that in the latter case, I believe much of the code is still using
 methods like addMouseListener() and addKeyListener(), which overzealously
 add handlers (i.e., mousemove/up/down/over/out and keyup/down/press). As
 this is narrowed, I expect the numbers to be even lower.

 This is approximately two orders of magnitude less than the 30k number in
 the tests below, so even for the largest applications, we're very unlikely
 to run into problems. Thus, I believe that the simplicity and code savings
 of having a simplified HandlerManager (i.e. one that just uses JRE classes
 or simple native maps) would be worth it. IMHO, anyway.

 On Mon, Dec 1, 2008 at 11:36 AM, Emily Crutcher e...@google.com wrote:

 Joel,

Thank you so much for looking into this!  Below is the review request
 that was originally directed to Kelly. Also, I've cut/pasted the initial
 benchmark results I got from it.

 The way I interpret them is that we may/may not have a significant
 problem depending upon how many handlers programs actually have. As you can
 imagine, the fact that the string manipulation is globally slowed down if we
 don't use the flattened data structure is what most concerns me, as if this
 is a realistic number of handlers for a production system and this benchmark
 holds true, we would be slowing down this sort of string operation by over
 90%.

  == Start handlerMapForSimpleJs Test== Creating 5000
 handlerMapForSimpleJs maps 78 millseconds, 78 millseconds, 78
 millseconds Adding 6 handlers for 5000  to a handlerMapForSimpleJs 312
 millseconds, 266 millseconds, 329 millseconds Fired 3 handlers for
 5000 widgets using handlerMapForSimpleJs 157 millseconds, 156
 millseconds, 156 millseconds created a random string with 3
 handlers  using handlerMapForSimpleJs 156 millseconds, 203 millseconds,
 219 millseconds
== Start handlerMapForJs Test== Creating 5000 handlerMapForJs
 maps 78 millseconds, 94 millseconds, 109 millseconds Adding 6 handlers
 for 5000 to a handlerMapForJs 188 millseconds, 171 millseconds, 187
 millseconds Fired 3 handlers for 5000 widgets using handlerMapForJs 157
 millseconds, 157 millseconds, 172 millseconds created a random string
 with 3 handlers  using handlerMapForJs 109 millseconds, 94
 millseconds, 94 millseconds
  == Start handlerMapForJava Test== Creating 5000
 handlerMapForJava maps 172 millseconds, 172 millseconds, 172 millseconds 
 Adding
 6 handlers for 5000 to a handlerMapForJava 453 millseconds, 453
 millseconds, 469 millseconds Fired 36 handlers for 5000 widgets using
 handlerMapForJava 312 millseconds, 312 millseconds, 312 millseconds created
 a random string with 3 handlers  using handlerMapForJava 141
 millseconds, 188 millseconds, 188 millseconds




 -- Forwarded message --
 From: Emily Crutcher e...@google.com
 Date: Mon, Nov 17, 2008 at 2:50 PM
 Subject: Review of handler map speed test.
 To: Kelly Norton knor...@google.com, Ray Ryan rj...@google.com,
 Google Web Toolkit Contributors 
 Google-Web-Toolkit-Contributors@googlegroups.com


 Kelly,

Could you review this  visual benchmark I was using to compute the
 pros/cons of the different handler maps?  Of particular interest is the
 SimpleJsHandlerMap, to see if there is anything, well, simple we we can do
 to make it faster.

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

 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't



 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't



 




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: review request: add missing packages to javadoc

2009-01-05 Thread Emily Crutcher
Can we automatically include all shared  and client (excluding impl)
packages instead of manually listing them out? It seems like that may be
less of a maintenance headache at least for the user package organization.



On Mon, Jan 5, 2009 at 11:34 AM, Freeland Abbott gwt.team.fabb...@gmail.com
 wrote:

 Two semantically-equivalent patches attached: I think we want the following
 new packages in the user javadoc set, but they weren't there.

- com.google.gwt.event.dom.client
- com.google.gwt.event.logical.shared
- com.google.gwt.event.shared
- com.google.gwt.debug.client
- com.google.gwt.datepicker.client

 I waffled around OOPHM, but decided I shouldn't add it yet.

 The vertical patch is worse for diff'ing today, but breaks the package
 lists to be one-per-line for easier to manipulation later.  That's the one I
 want to submit, the other is there for easier diff this time.

 Relative to trunk r4375.



 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Code review request, Creating gen2 versions of Time and Date Spinner to use the new 1.6 datepicker and event system

2009-01-05 Thread Emily Crutcher
On Mon, Jan 5, 2009 at 5:16 AM, dflorey daniel.flo...@gmail.com wrote:


 btw: Why is the datepicker in a separate package and why is this
 package not located under user/client/ui?
 It looks very strange to me that the datepicker package is currently
 on the same level as server, theme and tools...


For new large user modules, we wanted to give users the option of not
including that code by default, therefore these types of modules are being
put into com.google.gwt.user.*name-of-module* rather then under
com.google.gwt.user.client.*name-of-module*.







 On 4 Jan., 18:37, dflorey daniel.flo...@gmail.com wrote:
  Hi Emily,
  Happy new year to all of you! I've been suffering from a real-world
  virus but hope to fully recover soon...
  I just upgraded my branch to the latest revision and tried to have a
  look at your port. The actual TimePicker looks good to me, but when
  testing the new 1.6 DateBox I struggled to add a ValueChangeHandler.
  The onValueChange method is never called. As far as I can see all
  the events fired by the DatePicker and the TextBox are consumed by the
  DateBoxHandler, but they will not fire a valueChangeEvent on the
  DateBox as the setValue method will be called with fireEvent=false.
  Once this is fixed I'd like to implement a TimeBox similar to DateBox
  but using a more usefull TimePicker (seehttp://
 code.google.com/p/google-web-toolkit-incubator/issues/detail?i...
  )
 
  Cheers,
  Daniel
 
  On 30 Dez. 2008, 18:33, Emily Crutcher e...@google.com wrote:
 
   Dear Daniel,
   I hope you are having a great holiday. I've added a gen2 version of
   TimePicker and DatePickerPicker in a new com.google.gwt.gen2.picker
 package.
It now depends upon the gwt 1.6 date picker and event system.  If you
 could
   review my changes and make any more you deem appropriate, that would be
   great!
   Thanks,
 
   Emily
 
   Change link:
 http://code.google.com/p/google-web-toolkit-incubator/source/detail?r...
 
   There are only 10 types of people in the world: Those who understand
   binary, and those who don't
 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Code review request, Creating gen2 versions of Time and Date Spinner to use the new 1.6 datepicker and event system

2008-12-30 Thread Emily Crutcher
Dear Daniel,
I hope you are having a great holiday. I've added a gen2 version of
TimePicker and DatePickerPicker in a new com.google.gwt.gen2.picker package.
 It now depends upon the gwt 1.6 date picker and event system.  If you could
review my changes and make any more you deem appropriate, that would be
great!
Thanks,

Emily

Change link:
http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1379


There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR: SuggestBox uprades

2008-12-29 Thread Emily Crutcher
This is not a promise, but here is what is on my list for the first round of
SuggestBox upgrades, which I hope to do as soon as we've finished everything
critical for 1.6 (hence why it is not a promise). The others  probably need
more design vetting, so are somewhat unlikely to make it in.

   1. Remove final from SuggestBox.
   2. Add showSuggestions()/hideSuggestions()/isShowingSuggestion methods.
   3. Add showDefaultSuggestions()
   4. Wire up SuggestBox to use Popup Panel's showRelative method.
   5. Make escape key close the suggestion popup.
   6. (Stretch goal) rework MultiWordSuggestOracle to be more extensible.



On Mon, Dec 22, 2008 at 10:30 AM, Isaac Truett itru...@gmail.com wrote:


 Thanks, John. Would some SuggestBox updates, sans DropDownPanel, be
 possible? Here's my holiday SuggestBox API wishlist:

 1. showSuggestions() and showSuggestions(String query) - basically the
 same as this patch.
 2. hideSuggestions() - the same as this patch.
 3. selectItem(int index) - select an item from suggestion menu.
 4. getSuggestionMenuSelectedItemIndex() - the index of the selected
 suggestion menu item.
 5. isShowingSuggestions() - Is the suggestion menu open?
 6. doSelectedItemAction() - public delegate method to
 suggestionMenu.doSelectedItemAction().

 I can provide a patch for these if the concepts meet with approval.

 - Isaac


 On Mon, Dec 22, 2008 at 10:20 AM, John LaBanca jlaba...@google.com
 wrote:
  [+ecc] to make sure this shows up in her inbox
 
  I think we cut this out of the plans for GWT 1.6 because the
 DropDownPanel
  wasn't ready for prime time.  I'm not sure about the status of the
  RPCRequestOracle, so that might still be on the table.
 
  Thanks,
  John LaBanca
  jlaba...@google.com
 
 
  On Sat, Dec 20, 2008 at 10:36 PM, Isaac Truett itru...@gmail.com
 wrote:
 
  Whatever happened to this change? I noticed issue #2739 requesting
  hideSuggestions() and this patch would seem to satisfy that request.
  Is there any chance of this patch or something similar making 1.6?
 
 
 
  On Tue, Apr 29, 2008 at 4:25 PM, Emily Crutcher e...@google.com wrote:
   Below are the  SuggestBox API modifications under consideration.
   Feedback is
   very welcome.
  
Thanks,
  
   Emily
  
   Make SuggestBox depend upon a  DropDownPanel to control its popup,
   allowing
   users to customize the behavior, including where it is located and
 what
   item
   is selected by default.
   Add a requestDefaultSuggestions method to the SuggestOracle, use it in
   SuggestBox.
   Add hideSuggestions()/showSuggestions() method
   Add a new RPCSuggestOracle which, if extended from, guarantees that
 only
   one
   request can be extent at once.
   Add HighlightHandler support to SuggestBox
  
   P.S The attached patch is against the gwt-incubator, as gwt itself is
   under
   feature lock down.  The only changes to SuggestOracle and
   MultiWordSuggestOracle is the inclusion of the method
   requestDefaultSuggestions().
  
  
   There are only 10 types of people in the world: Those who understand
   binary, and those who don't
   
  
 
 
 
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Extra space on tree when Treeitem selected is a composite widget only on firefox

2008-12-29 Thread Emily Crutcher
LGTM.


On Mon, Dec 22, 2008 at 3:17 PM, jlaba...@google.com wrote:

 Here is the bug:
 http://code.google.com/p/google-web-toolkit/issues/detail?id=504



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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Add NativePreviewEvent to replace current EventPreview system (version 4)

2008-12-29 Thread Emily Crutcher
This seems like the right model of behavior. I wonder if we could figure out
a way to tweak the API exposing the behavior though  when you get back from
vacation?  As a user, I think I might get confused by the interactions of
setAlwaysAutoHide(), setAutoHidePartner,
setAutoHide(true/false),isAutoHideEnabled(), and isAlwaysAutoHide(), so I'm
hoping there is a way to represent the same information with fewer moving
parts.

   Cheers,

  Emily



On Mon, Dec 22, 2008 at 12:46 PM, jlaba...@google.com wrote:

 Reviewers: ecc,

 Description:
 The latest version of this patch introduces
 PopupPanel.setAlwaysAutoHide().  Unlike autoHide, alwaysAutoHide
 indicates that the PopupPanel should autoHide even if it isn't at the
 top of the stack.  The only time it does not autoHide is if a modal
 popup is open above it.

 We have also gone back to NativePreviewEvent.cancel()/consume().

 Both the SuggestBox and MenuBar setAlwaysAutoHide to true.  However, the
 MenuBar overrides the event preview to handle all of its unique special
 cases.

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

 Affected files:

  
 reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/Issue1932.java

  
 reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDialogBox.java
  user/src/com/google/gwt/event/dom/client/DomEvent.java
  user/src/com/google/gwt/event/dom/client/HasNativeEvent.java
  user/src/com/google/gwt/event/shared/GwtEvent.java
  user/src/com/google/gwt/event/shared/HandlerManager.java
  user/src/com/google/gwt/user/client/DOM.java
  user/src/com/google/gwt/user/client/Event.java
  user/src/com/google/gwt/user/client/EventPreview.java
  user/src/com/google/gwt/user/client/ui/DialogBox.java
  user/src/com/google/gwt/user/client/ui/MenuBar.java
  user/src/com/google/gwt/user/client/ui/PopupPanel.java
  user/src/com/google/gwt/user/client/ui/SuggestBox.java
  user/test/com/google/gwt/user/UISuite.java
  user/test/com/google/gwt/user/client/EventTest.java
  user/test/com/google/gwt/user/client/ui/PopupTest.java





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Add dateBoxFormatError to dark and chrome style themes

2008-12-29 Thread Emily Crutcher
LGTM

On Mon, Dec 22, 2008 at 11:41 AM, jlaba...@google.com wrote:

 Reviewers: ecc,

 Description:
 The dateBoxFormatError style name is applied to a DateBox with an
 invalid date entry.  This patch adds style definitions to the dark and
 chrome style themes.  Style definitions were already added for the
 standard theme.

 Patch was submitted TBR by ecc.

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

 Affected files:
  user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome.css
  user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome_rtl.css
  user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark.css
  user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark_rtl.css

  user/src/com/google/gwt/user/theme/standard/public/gwt/standard/standard.css


 Index:
 user/src/com/google/gwt/user/theme/standard/public/gwt/standard/standard.css
 ===
 ---
 user/src/com/google/gwt/user/theme/standard/public/gwt/standard/standard.css
(revision 4363)
 +++
 user/src/com/google/gwt/user/theme/standard/public/gwt/standard/standard.css
(working copy)
 @@ -1093,10 +1093,9 @@
  .gwt-DateBox input {
   width: 8em;
  }
 -.dateBoxFormatError{
 -  background:#ff;
 +.dateBoxFormatError {
 +  background: #ff;
  }
 -
  .dateBoxPopup {
  }

 Index: user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark.css
 ===
 --- user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark.css
  (revision 4363)
 +++ user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark.css
  (working copy)
 @@ -999,6 +999,10 @@
  .gwt-DateBox input {
   width: 8em;
  }
 +.dateBoxFormatError {
 +  background: #a8eeff;
 +  color: red;
 +}
  .dateBoxPopup {
  }

 Index: user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark_rtl.css
 ===
 --- user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark_rtl.css
  (revision 4363)
 +++ user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark_rtl.css
  (working copy)
 @@ -1000,6 +1000,10 @@
  .gwt-DateBox input {
   width: 8em;
  }
 +.dateBoxFormatError {
 +  background: #a8eeff;
 +  color: red;
 +}
  .dateBoxPopup {
  }

 Index:
 user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome.css
 ===
 --- user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome.css
  (revision 4363)
 +++ user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome.css
  (working copy)
 @@ -1094,6 +1094,9 @@
  .gwt-DateBox input {
   width: 8em;
  }
 +.dateBoxFormatError {
 +  background: #eed6d6;
 +}
  .dateBoxPopup {
  }

 Index:
 user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome_rtl.css
 ===
 ---
 user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome_rtl.css
(revision 4363)
 +++
 user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome_rtl.css
(working copy)
 @@ -1095,6 +1095,9 @@
  .gwt-DateBox input {
   width: 8em;
  }
 +.dateBoxFormatError {
 +  background: #eed6d6;
 +}
  .dateBoxPopup {
  }






-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Themes/Alpha Transpary/IE7 the Holly Hack!

2008-12-29 Thread Emily Crutcher
Good point, added as issue 3234.

On Fri, Dec 19, 2008 at 3:40 AM, Andy Moorley andy.moor...@gmail.comwrote:


 Hi there

 Been struggling a bit with some of the effects of the GWT style sheets
 in an attempt to get round IE6 alpha transparancy.

 In the top of standard.css (com.google.gwt.user.theme.standard) there
 is the lines

 * In order to maintain cross-browser compatibility, the following
 syntax is
  * used to create IE6 specific style rules:
  *htmlbody .gwt-Widget {
  *  Rule applies to all browsers (including IE7), except IE6
  *}
  ** html .gwt-Widget {
  *  Rule applied to IE6 only (not to IE7)
  *}
  *

 And in various places it then uses this Holly hack to apply the MS
 AlphaTransparency DX fix..

 * html .gwt-MenuBarPopup .menuPopupBottomCenter {
  filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gwt/
 standard/images/ie6/hborder_gray_shadow.png',sizingMethod='scale');
 }


 The trouble is that IE7 ONLY ignore the Holly hack when in standards
 mode - but as we know, at present the recommend (and to be honest only
 real way) of using GWT is in quirks mode - so the IE6 only fix is
 being picked up by IE7.

 I therefore think if quicks mode is to be preferred approach for
 next few releases, this CSS should probably use a different way to
 identify IE6 only.

 Thanks
 Andy



 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: gwt-incubator has created a 1.5 branch

2008-12-29 Thread Emily Crutcher
I think you might be thinking about GWT rather then gwt-incubator.
gwt-incubator releases only has two sub folders in it:


   1.
   
http://code.google.com/p/google-web-toolkit-incubator/source/browse/#svn/releases/1.5,
   which has the gwt-incubator code that is compatable with gwt 1.5.
   2.
   
http://code.google.com/p/google-web-toolkit-incubator/source/browse/#svn/releases/1.4,
   which has the gwt-incubator code that is compatable with gwt 1.4.


gwt-incubator trunk will have the gwt 1.6 support, so there are currently no
plans for a releases/1.6.  Let me know if any of that doesn't make sense!

Cheers,

Emily




On Mon, Dec 29, 2008 at 6:41 PM, Ray Cromwell cromwell...@gmail.com wrote:


 Is the /releases/1.6 going to be the branch that becomes 1.6? There
 are two other 1.6 branches in /branches as well.

 -Ray


 On Mon, Dec 29, 2008 at 1:28 PM, Emily Crutcher e...@google.com wrote:
  We have just released another gwt-incubator drop for gwt 1.5.3, which we
  hope will be the final gwt-incubator drop compatible with gwt 1.5. As
 part
  of that process, there is now a  gwt-incubator 1.5 branch. Any future
  (hopefully non existent) gwt-incubator 1.5 drops will be based on that
  branch.
 
  This means that gwt-incubator's trunk now is now certified to be
 compatible
  with the current gwt trunk and gwt 1.6 builds. When we have a milestone
 gwt
  1.6 build, we will drop anchor there. In the meantime, anyone who wants
 to
  work against the gwt-incubator trunk will also need to setup a gwt 1.6
 build
  from the gwt source. Also, if you are relying on a relatively new gwt 1.6
  feature, you will have to check that the feature has made it into gwt
 trunk
  as well, otherwise gwt-incubator's continuous build will break and we
 will
  come after you with padded clubs. Just so you know, the current
 punishment
  for breaking the build is to pledge two hours of support work to make the
  build more resiliant :-).
 
  Feel free to respond to this thread with any questions/comments. For the
  majority of you who are currently on vacation, happy holidays!
 
Cheers,
 
  Emily
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: gwt-incubator has created a 1.5 branch

2008-12-29 Thread Emily Crutcher
And yep, for the gwt code base, the releases/1.6 will become the 1.6
release.

  Cheers,

  Emily

On Mon, Dec 29, 2008 at 9:15 PM, Emily Crutcher e...@google.com wrote:

 I think you might be thinking about GWT rather then gwt-incubator.
 gwt-incubator releases only has two sub folders in it:


1.

 http://code.google.com/p/google-web-toolkit-incubator/source/browse/#svn/releases/1.5,
which has the gwt-incubator code that is compatable with gwt 1.5.
2.

 http://code.google.com/p/google-web-toolkit-incubator/source/browse/#svn/releases/1.4,
which has the gwt-incubator code that is compatable with gwt 1.4.


 gwt-incubator trunk will have the gwt 1.6 support, so there are currently
 no plans for a releases/1.6.  Let me know if any of that doesn't make sense!

 Cheers,

 Emily





 On Mon, Dec 29, 2008 at 6:41 PM, Ray Cromwell cromwell...@gmail.comwrote:


 Is the /releases/1.6 going to be the branch that becomes 1.6? There
 are two other 1.6 branches in /branches as well.

 -Ray


 On Mon, Dec 29, 2008 at 1:28 PM, Emily Crutcher e...@google.com wrote:
  We have just released another gwt-incubator drop for gwt 1.5.3, which we
  hope will be the final gwt-incubator drop compatible with gwt 1.5. As
 part
  of that process, there is now a  gwt-incubator 1.5 branch. Any future
  (hopefully non existent) gwt-incubator 1.5 drops will be based on that
  branch.
 
  This means that gwt-incubator's trunk now is now certified to be
 compatible
  with the current gwt trunk and gwt 1.6 builds. When we have a milestone
 gwt
  1.6 build, we will drop anchor there. In the meantime, anyone who wants
 to
  work against the gwt-incubator trunk will also need to setup a gwt 1.6
 build
  from the gwt source. Also, if you are relying on a relatively new gwt
 1.6
  feature, you will have to check that the feature has made it into gwt
 trunk
  as well, otherwise gwt-incubator's continuous build will break and we
 will
  come after you with padded clubs. Just so you know, the current
 punishment
  for breaking the build is to pledge two hours of support work to make
 the
  build more resiliant :-).
 
  Feel free to respond to this thread with any questions/comments. For the
  majority of you who are currently on vacation, happy holidays!
 
Cheers,
 
  Emily
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Introducing DateBox.Format

2008-12-19 Thread Emily Crutcher
John, as I just got a vacation message from Ray, could you finish the review
of this patch?  The only unreviewed part is adding the abandon method as per
Ray's request.

Thanks!

   Emily

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

On Fri, Dec 19, 2008 at 1:20 AM, Emily Crutcher e...@google.com wrote:

 I think I would find it pretty odd if a formatter did not put the date box
 back into a neutral state after the date box is empty, but I'm happy to put
 the abandon method in, as it doesn't seem that harmful either.





 On Fri, Dec 19, 2008 at 1:10 AM, Ray Ryan rj...@google.com wrote:

 You're assuming, I think, that the Format will only be used to do
 interesting things in response to an error. There is nothing in its name or
 its contract to imply that should be the case. If I came in cold, I'd expect
 I could use it to decorate the date box whether or not it was in an error
 state, especially with a neutral name like Format.
 rjrjr


 On Fri, Dec 19, 2008 at 5:07 PM, Emily Crutcher e...@google.com wrote:



 On Thu, Dec 18, 2008 at 6:42 PM, rj...@google.com wrote:

 Seems like we're missing a method from the Format interface?


 http://gwt-code-reviews.appspot.com/1201/diff/12/14
 File user/src/com/google/gwt/user/datepicker/client/DateBox.java
 (right):

 http://gwt-code-reviews.appspot.com/1201/diff/12/14#newcode173
 Line 173: Date parse(DateBox dateBox, String text, boolean reportError);
 You don't think we need an abandon() or cleanup() method? How will my
 formatter take away a style that your formatter doesn't know about?


 Shouldn't the formatter always restore the  date box to a pristine state
 when it is asked to format an empty string?









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




 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Optimized build-demos task

2008-12-19 Thread Emily Crutcher
22 or so, as long as you can rely just on the compile task, it's actually
not a problem. However, to be safe, we need to call build first, as we use
the gwt-incubator jar now to generate the demos. Calling gwt-incubator build
then does take some time. In my measurements, not having to call build each
time shaved about 40 seconds off of the compile time.






On Fri, Dec 19, 2008 at 11:12 AM, Isaac Truett itru...@gmail.com wrote:

 LGTM.

 How many demos are you compiling? I tested the patch on a batch of 11
 demos and I didn't see a difference in time.


 On Fri, Dec 19, 2008 at 10:37 AM, Emily Crutcher e...@google.com wrote:
  Isaac,
 
   Could you review this patch? It re-jiggers the ant tasks to make
  build-demos a bit more efficient, because after I moved the other demos
 in,
  the task was taking a while.
 
   At some point, we might think about making the build/build test
 tasks
  themselves have guards to build only once,  however that should probably
 be
  done as a group (including the testing tests), so I opted for the easier
  solution here while trying to prep the public jar.
 
 Cheers,
 
  Emily
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Tree alignment issues

2008-12-19 Thread Emily Crutcher
LGTM, though I think you mean to add I18n to the single issue module. Also,
did you check how the samples looked now that you removed the spacing?

Thanks,

 Emily

On Fri, Dec 19, 2008 at 1:18 PM, John LaBanca jlaba...@google.com wrote:

 ping

 Please review this when you get a chance.

 Thanks,
 John LaBanca
 jlaba...@google.com



 On Tue, Dec 16, 2008 at 2:02 PM, jlaba...@google.com wrote:

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


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





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Issue 210 - demo index

2008-12-18 Thread Emily Crutcher
Yep, LGTM.

On Thu, Dec 18, 2008 at 10:07 AM, Isaac Truett itru...@gmail.com wrote:

 Thank you! I'm glad you like it.

 Ideally I would want to keep the old output around and check for
 staleness before recompiling. However, I don't have a practical method
 for determining staleness of the demos (yet). I don't see any problem
 with deleting compiled-demos for now. Looks good with the addition of
 the initial delete?


 On Wed, Dec 17, 2008 at 9:03 PM, Emily Crutcher e...@google.com wrote:
  That is absolutely awesome! Here are the gen2 widgets using your patch
  posted on app engine.
  http://collectionofdemos.appspot.com/demo/index.html
 
  When the build.demos target is invoked, is there any reason we should not
  clear the entire directory first? That would save us from including old
  demos if/when we get the automatic posting task completed. (Right now
  running into the 1000 file/unit limit on app-engine, boo ho).
 
 
  On Wed, Dec 17, 2008 at 5:06 PM, Isaac Truett itru...@gmail.com wrote:
 
  Emily,
 
  The attached patch adds an index.html page to the build-demos output.
  This page contains links to all of the compiled demos. Demos are
  loaded into an iframe on the page for easy testing across demos.
 
 
  - Isaac
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Introducing DateBox.Format

2008-12-18 Thread Emily Crutcher
On Thu, Dec 18, 2008 at 6:42 PM, rj...@google.com wrote:

 Seems like we're missing a method from the Format interface?


 http://gwt-code-reviews.appspot.com/1201/diff/12/14
 File user/src/com/google/gwt/user/datepicker/client/DateBox.java
 (right):

 http://gwt-code-reviews.appspot.com/1201/diff/12/14#newcode173
 Line 173: Date parse(DateBox dateBox, String text, boolean reportError);
 You don't think we need an abandon() or cleanup() method? How will my
 formatter take away a style that your formatter doesn't know about?


Shouldn't the formatter always restore the  date box to a pristine state
when it is asked to format an empty string?









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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Any objections to 1.5-final gwt-incubator drop going out this week?

2008-12-17 Thread Emily Crutcher
Being able to compile all the demos automatically is already a big win over
the old procedure, so thank you for the work you've already done!  Did you
see this enhancement request I put in yesterday by any chance?  (
http://code.google.com/p/google-web-toolkit-incubator/issues/detail?id=210),
that would also be a very big help, because it would avoid a whole bunch of
manually editing and clicking on urls.




On Wed, Dec 17, 2008 at 11:01 AM, Isaac Truett itru...@gmail.com wrote:


 +1. Let me know if I can assist with the transition.

 On Wed, Dec 17, 2008 at 10:25 AM, Emily Crutcher e...@google.com wrote:
  For gwt-incubator users who are using svn tip from gwt-1.6 or gwt-trunk,
 we
  currently are in a confusing situation of having two different, almost
  identical event systems:  one in gwt-incubator itself and one in gwt. In
  many cases, both are currently in use. Additionally,  we have tons of
  deprecation warnings, because gwt-incubator widgets cannot switch to the
  real event handlers so are stuck using listeners.
 
  To fix this situation, we need to post a gwt-incubator 1.5 final
 relatively
  soon. Until the next gwt-incubator jar drop, the gwt-incubator tip  would
  then only be certified to work with gwt-trunk svn tip. After the first
 gwt
  1.6 milestone or release candidate, gwt-incubator  would be certified to
  work against that 1.6 jar and gwt-trunk.
 
  Objections anyone?
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Any objections to 1.5-final gwt-incubator drop going out this week?

2008-12-17 Thread Emily Crutcher
For gwt-incubator users who are using svn tip from gwt-1.6 or gwt-trunk, we
currently are in a confusing situation of having two different, almost
identical event systems:  one in gwt-incubator itself and one in gwt. In
many cases, both are currently in use. Additionally,  we have tons of
deprecation warnings, because gwt-incubator widgets cannot switch to the
real event handlers so are stuck using listeners.

To fix this situation, we need to post a gwt-incubator 1.5 final relatively
soon. Until the next gwt-incubator jar drop, the gwt-incubator tip  would
then only be certified to work with gwt-trunk svn tip. After the first gwt
1.6 milestone or release candidate, gwt-incubator  would be certified to
work against that 1.6 jar and gwt-trunk.

Objections anyone?


-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] RR: Introducing DateBox.Format interface

2008-12-17 Thread Emily Crutcher
We have introduced a new interface into DateBox called Format and providing
a DefaultFormat class.  You can see the code
herehttp://gwt-code-reviews.appspot.com/1201.
this interface has the following advantages:

   - As the date parsing is now completely replaceable, our default parser
   can be more permissive then when we were using a raw DateTimeFormat object.
   Specifically, now, by default, we can fall back to letting the browser try
   to parse the date if the original DateTimeFormat parse failed, this should
   lead to less end-user frustration.
   - We avoid the need for the BadDateReporter interface, as the user can
   use their Format instance to control what the user sees when parsing fails,
   this way whenever the validation effort kicking off next year comes up with
   an official solution, we won't have to deprecate any current date box
   code.
   - For users that are trying to avoid the overhead of including the code
   for DateTimeFormat.parse, there is now a way to do so.


There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Introducing DateBox.Format

2008-12-17 Thread Emily Crutcher

 cal state.


 You can add an abandon() method to the format lifecycle, to tell it to
 clean up its crap. To make sure my formatter doesn't interfere with someone
 else's styling, change the CSS class name for errors to reflect that the
 formatter owns it, not the DateBox, e.g. DATE_BOX_DEFAULT_FORMAT_ERROR


Am I correct that this is your solution?

   -  Each formatter has its own style name,  the expectation is that the
   css for the widget should be dependent upon that stylename and no other
   process should use that style name.
   - Whenever the date box's content is parsed or formatted, the date box
   would first call abandon/reset on the formatter. During the abandon/reset
   method, the formatter would access the date box's class dom property and do
   a string comparison to see if it had to remove the error condition before
   proceding. Formatters that did not use the css style name directly to
   indicate format errors would have to figure out some other way of clearing
   any current format state.

I think that would work, but it seems somewhat less efficient then the
current solution, can you explain a bit more why it is more desirable?









 On 2008/12/17 22:41:41, rjrjr wrote:

 The dateBox field seems wrong, you don't need the circular

 relationship btw.

 DateBox and format. Instead, why don't you pass in the dateBox as a

 param to

 format, parse and reset--and allow yourself to share instances? Then

 you can get

 rid of this init method entirely.


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





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Introducing DateBox.Format

2008-12-17 Thread Emily Crutcher
Yep, one way you get to store local information about your format state, the
other way you get to share a single format object. As I get the feeling you
care more about sharing a single format class then I care about allowing the
format to have state, so I'll fhmp.

 Cheers,

   Emily


On Wed, Dec 17, 2008 at 7:21 PM, Ray Ryan rj...@google.com wrote:

 Who cares? This is happening in response to a user action, and will be
 undetectable. Why would we flush the ability to have shared formats to avoid
 parsing the CSS? We're just talking about a call to
 UIObject#removeStyleDependentName here, right?
 rjrjr


 On Thu, Dec 18, 2008 at 11:15 AM, Emily Crutcher e...@google.com wrote:

 When a default format instance receives a format or parse request,  how
 does it know whether it needs to remove its error style name from that date
 box other then getting the current css off the date box and parsing it?


 On Wed, Dec 17, 2008 at 7:09 PM, Ray Ryan rj...@google.com wrote:

 Nope.
 Each formatter *class* can attach dependent styles to a datebox. It
 should do so using a naming convention s.t. it can tell styles it has added
 from styles that others have added. (This was your concern that lead to the
 back pointer, right?)

 When a formatter is removed from a datebox (by a new one being added), it
 receives an abandon call to give it a chance clean up any css (or whatever)
 that it may have applied that another format will not know how to delete.

 No less efficient, and no need to instantiate a formatter per date box.

 rjrjr


 On Thu, Dec 18, 2008 at 11:04 AM, Emily Crutcher e...@google.com wrote:



  cal state.


 You can add an abandon() method to the format lifecycle, to tell it to
 clean up its crap. To make sure my formatter doesn't interfere with 
 someone
 else's styling, change the CSS class name for errors to reflect that the
 formatter owns it, not the DateBox, e.g. DATE_BOX_DEFAULT_FORMAT_ERROR


 Am I correct that this is your solution?

-  Each formatter has its own style name,  the expectation is that
the css for the widget should be dependent upon that stylename and no 
 other
process should use that style name.
- Whenever the date box's content is parsed or formatted, the date
box would first call abandon/reset on the formatter. During the
abandon/reset method, the formatter would access the date box's class 
 dom
property and do a string comparison to see if it had to remove the error
condition before proceding. Formatters that did not use the css style 
 name
directly to indicate format errors would have to figure out some other 
 way
of clearing any current format state.

 I think that would work, but it seems somewhat less efficient then the
 current solution, can you explain a bit more why it is more desirable?









 On 2008/12/17 22:41:41, rjrjr wrote:

 The dateBox field seems wrong, you don't need the circular

 relationship btw.

 DateBox and format. Instead, why don't you pass in the dateBox as a

 param to

 format, parse and reset--and allow yourself to share instances? Then

 you can get

 rid of this init method entirely.


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





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Issue 210 - demo index

2008-12-17 Thread Emily Crutcher
That is absolutely awesome! Here are the gen2 widgets using your patch
posted on app engine.
http://collectionofdemos.appspot.com/demo/index.html

When the build.demos target is invoked, is there any reason we should not
clear the entire directory first? That would save us from including old
demos if/when we get the automatic posting task completed. (Right now
running into the 1000 file/unit limit on app-engine, boo ho).


On Wed, Dec 17, 2008 at 5:06 PM, Isaac Truett itru...@gmail.com wrote:

 Emily,

 The attached patch adds an index.html page to the build-demos output.
 This page contains links to all of the compiled demos. Demos are
 loaded into an iframe on the page for easy testing across demos.


 - Isaac




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: A couple more small tweaks to the gwt-incubator build target

2008-12-16 Thread Emily Crutcher
Can you add an issue for that? As it seems like we should probably sweep
through both jars and check for extraneous output.

Committed at  r1323.

   Cheers,

  Emily

On Tue, Dec 16, 2008 at 10:26 AM, Isaac Truett itru...@gmail.com wrote:


 LGTM.

 One other change that we might want to make is to filter out the -aux
 dirs from compiled-demo when building the zip. They're harmless but
 extraneous.

 On Tue, Dec 16, 2008 at 10:01 AM, Emily Crutcher e...@google.com wrote:
  Isaac,
 
Could you review these small extra changes to the gwt-incubator
 build
  file?
 
  Moving demo output to be a sibling of the generated javadocs.  Both
 should
  eventually be automatically posted on gwt-incubator's app engine demo
 site.
  Adding a dependency on build.demos to dist, as we want the sanity check
 that
  building the demos provides when we do a full distribution.
 
  On Mon, Dec 15, 2008 at 5:21 PM, Isaac Truett itru...@gmail.com wrote:
 
  Thanks. Committed as r1319.
 
  On Mon, Dec 15, 2008 at 5:14 PM, Emily Crutcher e...@google.com wrote:
   LGTM.
  
   On Mon, Dec 15, 2008 at 4:51 PM, Isaac Truett itru...@gmail.com
 wrote:
  
   Good enough for me. Here's the patch for building demos off of the
 jar:
  
   Index: build.xml
   ===
   --- build.xml   (revision 1316)
   +++ build.xml   (working copy)
   @@ -371,8 +371,7 @@
 vmMaxMemory=${gwtc.vm.maxMemory}
 classpath
   path path=${gwtc.src.dir} /
   -path path=${project.src} /
   -path path=${project.bin} /
   +path path=${project.jar} /
   pathelement location=${gwt.user.jar} /
   pathelement location=${gwt.dev.jar} /
   pathelement location=${gwt.tools}/lib/w3c/sac/sac-1.3.jar
 /
  
  
   Any objections?
  
  
   On Mon, Dec 15, 2008 at 4:43 PM, Emily Crutcher e...@google.com
 wrote:
The reasons I would prefer to use the gwt-incubator.jar is because
that
gives us a quick sanity check that the gwt-incubator jar is
 actually
including everything needed to run the demos!
   
   
+ project.src and project.bin can be overridden, if desired (super
could be overridden if it used a variable, which it probably
 should)
   
If project.src or project.bin was overridden, those changes should
 be
reflected in the gwt-incubator jar, if they are not, that is
definitely
a
problem we would want to catch sooner rather then later.
   
   
+ build-demos doesn't depend on building a jar first
   
   
The gwt-incubator jar currently takes 12 seconds to compile on my
relatively
slow laptop, so depending upon the gwt-incubator build running
 first
does
not seem like it introduces an undue burden on the developer.
   
   
cheers,
   
  Emily
   

   
  
  
  
  
  
   --
   There are only 10 types of people in the world: Those who understand
   binary, and those who don't
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Update to slider bar.

2008-12-16 Thread Emily Crutcher
Daniel,

Could you review this change? Focus Panel no longer sinks Focus,
Key, or Mouse events by default. Therefore, adding a sink events call to
SliderBar itself. Code:
http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1322

 Thanks,

Emily



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] A couple more small tweaks to the gwt-incubator build target

2008-12-16 Thread Emily Crutcher
Isaac,

  Could you review these small extra changes to the gwt-incubator build
file?

   1. Moving demo output to be a sibling of the generated javadocs.  Both
   should eventually be automatically posted on gwt-incubator's app engine demo
   site.
   2. Adding a dependency on build.demos to dist, as we want the sanity
   check that building the demos provides when we do a full distribution.


On Mon, Dec 15, 2008 at 5:21 PM, Isaac Truett itru...@gmail.com wrote:


 Thanks. Committed as r1319.

 On Mon, Dec 15, 2008 at 5:14 PM, Emily Crutcher e...@google.com wrote:
  LGTM.
 
  On Mon, Dec 15, 2008 at 4:51 PM, Isaac Truett itru...@gmail.com wrote:
 
  Good enough for me. Here's the patch for building demos off of the jar:
 
  Index: build.xml
  ===
  --- build.xml   (revision 1316)
  +++ build.xml   (working copy)
  @@ -371,8 +371,7 @@
vmMaxMemory=${gwtc.vm.maxMemory}
classpath
  path path=${gwtc.src.dir} /
  -path path=${project.src} /
  -path path=${project.bin} /
  +path path=${project.jar} /
  pathelement location=${gwt.user.jar} /
  pathelement location=${gwt.dev.jar} /
  pathelement location=${gwt.tools}/lib/w3c/sac/sac-1.3.jar /
 
 
  Any objections?
 
 
  On Mon, Dec 15, 2008 at 4:43 PM, Emily Crutcher e...@google.com wrote:
   The reasons I would prefer to use the gwt-incubator.jar is because
 that
   gives us a quick sanity check that the gwt-incubator jar is actually
   including everything needed to run the demos!
  
  
   + project.src and project.bin can be overridden, if desired (super
   could be overridden if it used a variable, which it probably should)
  
   If project.src or project.bin was overridden, those changes should be
   reflected in the gwt-incubator jar, if they are not, that is
 definitely
   a
   problem we would want to catch sooner rather then later.
  
  
   + build-demos doesn't depend on building a jar first
  
  
   The gwt-incubator jar currently takes 12 seconds to compile on my
   relatively
   slow laptop, so depending upon the gwt-incubator build running first
   does
   not seem like it introduces an undue burden on the developer.
  
  
   cheers,
  
 Emily
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



demobuild.patch
Description: Binary data


[gwt-contrib] Re: Tree alignment issues

2008-12-16 Thread Emily Crutcher
Should we, in general, be adding padding to RadioButtons and CheckBoxes, as
won't other users have the same problems?

On Tue, Dec 16, 2008 at 11:40 AM, jlaba...@google.com wrote:

 Reviewers: ecc,

 Description:
 Description:
 
 This patch addresses a bunch of Tree alignment issues:
 1. RadioButtons and CheckBoxes do not align with other tree nodes
 because the GWT style sheet adds padding to them, AND because the
 browser adds a margin to these elements.

 2. In RTL mode, leaf items do not have correct padding because we always
 set the padding on the left.

 3. In RTL mode in IE, the focus element does not line up with the
 TreeItem because IE does not position the span correctly.


 Fixes:
 ==
 1. We now remove the padding of RadioButtons and Checkboxes when they
 are in a TreeItem.  Also, we remove the browser margins added to the
 native input elements.  In IE, the spacing around the native input is
 not a margin, so we use a negative margin to offset it.

 2. We now check for RTL mode when adding the padding to the TreeItem.

 3. I added zoom:1 to TreeItems in the RTL GWT theme style sheets, which
 corrects the problem in IE but doesn't affect other browsers.


 Testing:
 
 I updated VisualsForTree to include a TreeItem with a RadioButton and a
 TreeItem with a CheckBox, and verified alignment in all browsers, for
 all themes, in RTL and LTR mode.  I also manually verified that the
 Showcase is unaffected by the change.

 I modified SingleIssue.gwt.xml to inherit all style theme resources, and
 I added the ar locale to make it easier to test RTL mode in general.

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

 Affected files:
  reference/code-museum/src/com/google/gwt/museum/SingleIssue.gwt.xml

  
 reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTree.java
  user/src/com/google/gwt/user/client/ui/Tree.java
  user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome.css
  user/src/com/google/gwt/user/theme/chrome/public/gwt/chrome/chrome_rtl.css
  user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark.css
  user/src/com/google/gwt/user/theme/dark/public/gwt/dark/dark_rtl.css

  user/src/com/google/gwt/user/theme/standard/public/gwt/standard/standard.css

  
 user/src/com/google/gwt/user/theme/standard/public/gwt/standard/standard_rtl.css





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Review request: add super source dir to incubator demo build

2008-12-15 Thread Emily Crutcher
The reasons I would prefer to use the gwt-incubator.jar is because that
gives us a quick sanity check that the gwt-incubator jar is actually
including everything needed to run the demos!



 + project.src and project.bin can be overridden, if desired (super
 could be overridden if it used a variable, which it probably should)



If project.src or project.bin was overridden, those changes should be
reflected in the gwt-incubator jar, if they are not, that is definitely a
problem we would want to catch sooner rather then later.



 + build-demos doesn't depend on building a jar first



The gwt-incubator jar currently takes 12 seconds to compile on my relatively
slow laptop, so depending upon the gwt-incubator build running first does
not seem like it introduces an undue burden on the developer.


cheers,

  Emily

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



[gwt-contrib] Re: Code review, adding gwt-externals to gwt incubator

2008-12-12 Thread Emily Crutcher
Thanks!

On Fri, Dec 12, 2008 at 1:08 AM, Ray Ryan rj...@google.com wrote:

 This broke incubator for non-committers, as it was tied to
 https://google-web-toolkit.googlecode.com/svn/trunk/build-tools (https,
 not http). Should be fixed by r1306.
 Mmmm, copy/paste errors,rjrjr

 On Fri, Dec 12, 2008 at 10:24 AM, Emily Crutcher e...@google.com wrote:

 Amit, could you review this change?

 Adding gwt-externals directory to gwt-incubator trunk in order to support
 the use of gwt's build-tools directory.

 Change at:
 http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1302

 Thanks,

 Emily
 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't

 




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Mouse enter/leave events need to suppressed if the user did not actually enter or leave the widg

2008-12-11 Thread Emily Crutcher
Thanks!  Updated comment to reflect new handler names rather then the old
listener ones.

Committed at r4305.

On Thu, Dec 11, 2008 at 10:22 AM, John LaBanca [EMAIL PROTECTED] wrote:

 I'm getting server errors, so here is your review:

 // Only fire the mouseEnter event if it's coming from outside this

 mouseEnter should be mouseOver since we are firing a MouseOverEvent

 // Only fire the mouseLeave event if it's actually leaving this
 mouseLeave should be mouseOut since we are firing a MouseOutEvent

 Otherwise, LGTM

 Thanks,
 John LaBanca
 [EMAIL PROTECTED]



 On Thu, Dec 11, 2008 at 9:49 AM, [EMAIL PROTECTED] wrote:

 Reviewers: jlabanca,

 Description:
 GWT issue:

 http://code.google.com/p/google-web-toolkit/issues/detail?id=3189q=owner:ecc%20started

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

 Affected files:
  user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
  user/src/com/google/gwt/user/client/ui/Widget.java


 Index: user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
 ===
 --- user/src/com/google/gwt/user/client/ui/ListenerWrapper.java (revision
 4300)
 +++ user/src/com/google/gwt/user/client/ui/ListenerWrapper.java (working
 copy)
 @@ -287,23 +287,11 @@
 }

 public void onMouseOut(MouseOutEvent event) {
 -  // Only fire the mouseLeave event if it's actually leaving this
 -  // widget.
 -  Element to = event.getToElement();
 -  Widget source = source(event);
 -  if (to == null || !source.getElement().isOrHasChild(to)) {
 -listener.onMouseLeave(source(event));
 -  }
 +  listener.onMouseLeave(source(event));
 }

 public void onMouseOver(MouseOverEvent event) {
 -  // Only fire the mouseEnter event if it's coming from outside this
 -  // widget.
 -  Element from = event.getFromElement();
 -  Widget source = source(event);
 -  if (from == null || !source.getElement().isOrHasChild(from)) {
 -listener.onMouseEnter(source(event));
 -  }
 +  listener.onMouseEnter(source(event));
 }

 public void onMouseUp(MouseUpEvent event) {
 Index: user/src/com/google/gwt/user/client/ui/Widget.java
 ===
 --- user/src/com/google/gwt/user/client/ui/Widget.java  (revision 4298)
 +++ user/src/com/google/gwt/user/client/ui/Widget.java  (working copy)
 @@ -15,6 +15,7 @@
  */
  package com.google.gwt.user.client.ui;

 +import com.google.gwt.dom.client.Element;
  import com.google.gwt.event.dom.client.DomEvent;
  import com.google.gwt.event.logical.shared.HasHandlers;
  import com.google.gwt.event.shared.EventHandler;
 @@ -88,8 +89,25 @@
 return handlerManager != null  handlerManager.isEventHandled(type);
   }

 -  public void onBrowserEvent(Event nativeEvent) {
 -DomEvent.fireNativeEvent(nativeEvent, handlerManager);
 +  public void onBrowserEvent(Event event) {
 +switch (DOM.eventGetType(event)) {
 +  case Event.ONMOUSEOVER:
 +// Only fire the mouseEnter event if it's coming from outside
 this
 +// widget.
 +Element from = event.getFromElement();
 +if (from != null  getElement().isOrHasChild(from)) {
 +  return;
 +}
 +break;
 +  case Event.ONMOUSEOUT:
 +// Only fire the mouseLeave event if it's actually leaving this
 +// widget.
 +Element to = event.getToElement();
 +if (to != null  getElement().isOrHasChild(to)) {
 +  return;
 +}
 +}
 +DomEvent.fireNativeEvent(event, handlerManager);
   }

   /**






-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Add NativePreviewEvent to replace current EventPreview system

2008-12-11 Thread Emily Crutcher
 Cool, looking forward to seeing the new patch!

Per our conversation, onPreviewNativeEvent will be exposed, but will
 only contain minimal code by default.  The bulk of the code will be in a
 new method previewNativeEvent()


Why expose onPreviewNativeEvent at all?



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Code review, adding gwt-externals to gwt incubator

2008-12-11 Thread Emily Crutcher
Amit, could you review this change?

Adding gwt-externals directory to gwt-incubator trunk in order to support
the use of gwt's build-tools directory.

Change at:
http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1302

Thanks,

Emily
-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: getAbsoluteLeft/Top() returns incorrect value in IE when zoomed in

2008-12-09 Thread Emily Crutcher
On Tue, Dec 9, 2008 at 12:42 AM, John LaBanca [EMAIL PROTECTED] wrote:

 Internet Explorer now works the same as Firefox.  That is, with real zoom,
 absolute positions do not change even though the widget appears further from
 the left or top. I was going to put that info in the review request, but I
 didn't want to confuse anyone.

 Also, can you check what happens when you use your patched

 getAbsoluteLeft + getAbsoluteTop to calculate the distance between two

 widgets? For example


 Do we really need to test this?  I verified that getAbsoluteLeft() returns
 the correct value now and is consistent between FF and IE, and I verified it
 against the MenuBar and SuggestBox.  The fact that SuggestBoxPopup opens
 directly below the TextBox and MenuBarPopup opens directly below the MenuBar
 implicitly verified that getAbsoluteTop() + getOffsetHeight() already works.
  offsetHeight/Width didn't seem to be affected by this issue at all.


The consistency is probably the most important thing, so if they are
consistent, that is probably good enough.

My worry was that setHeight/setWidth would be using different units thet
getAbsoluteTop/left in the zoomed in state, and that therefore, calculations
that worked normally in GWT 1.5 would  start failing with GWT 1.6. However,
if firefox natively already uses the zoomed in coordinate system, then those
programs would already be failing, therefore it cannot be a problem.

In otherwords, LGTM then.


Cheers,

  Emily







 Thanks,
 John LaBanca
 [EMAIL PROTECTED]



 On Mon, Dec 8, 2008 at 6:29 PM, [EMAIL PROTECTED] wrote:

 Have you checked to see what values getAbsoluteLeft/Top give in your
 demo with Firefox3 and Opera? It seems like we want all the real zooming
 browsers to handle this the same way.

 Also, can you check what happens when you use your patched
 getAbsoluteLeft + getAbsoluteTop to calculate the distance between two
 widgets? For example

 Widget a (absolutely positioned at (100,100) 50 px tall.

 Widget b flows naturally after widget a. There are no styles on any
 widget to confuse this poor example.

 Widget c's height is calculated to be getAbsoluteTop(a) -
 getAbsoluteTop(b)

 is Widget c's height the same as widget a's?



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





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Tweaks to API checker

2008-12-09 Thread Emily Crutcher
Committed as 4274.

On Mon, Dec 8, 2008 at 8:25 PM, Amit Manjhi [EMAIL PROTECTED] wrote:

 LGTM


 On Mon, Dec 8, 2008 at 6:40 PM, [EMAIL PROTECTED] wrote:

 Reviewers: amitmanjhi,

 Description:
 Amit,

  This patch changes the gwt build.xml file to use value rather then
 location when defining the apicheck.oldroot ant property + adds the
 removal the old setImageBase method.

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

 Affected files:
  build.xml
  tools/api-checker/config/gwt15_16userApi.conf


 Index: build.xml
 ===
 --- build.xml   (revision 4269)
 +++ build.xml   (working copy)
 @@ -9,7 +9,7 @@
   property name=gwt.apicheck.config
 location=tools/api-checker/config/gwt15_16userApi.conf/
   property name=gwt.apicheck.oldroot
 -location=../gwt-1.5/
 +value=../gwt-1.5/

   target name=dist depends=dev, user, servlet, tools, jni, doc,
 samples description=Run the distributions
 gwt.ant dir=distro-source /
 Index: tools/api-checker/config/gwt15_16userApi.conf
 ===
 --- tools/api-checker/config/gwt15_16userApi.conf   (revision 4269)
 +++ tools/api-checker/config/gwt15_16userApi.conf   (working copy)
 @@ -30,3 +30,4 @@
  java.lang.StringBuilder::append(Ljava/lang/StringBuffer;)
 OVERRIDABLE_METHOD_ARGUMENT_TYPE_CHANGE
  
 com.google.gwt.user.client.ui.Button::Button(Ljava/lang/String;Lcom/google/gwt/user/client/ui/ClickListener;)
 OVERLOADED_METHOD_CALL
  
 com.google.gwt.user.client.ui.ToggleButton::ToggleButton(Lcom/google/gwt/user/client/ui/Image;Lcom/google/gwt/user/client/ui/Image;Lcom/google/gwt/user/client/ui/ClickListener;)
 OVERLOADED_METHOD_CALL
 +com.google.gwt.user.client.ui.Tree::setImageBase(Ljava/lang/String;)
 MISSING
 \ No newline at end of file






-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Warning message in IE6 when using NamedFrame on SSL-secured web-site

2008-12-09 Thread Emily Crutcher
 Why is this a problem for NamedFrames but not Frames?
Other then that, LGTM.

On Tue, Dec 9, 2008 at 3:10 PM, [EMAIL PROTECTED] wrote:

 Reviewers: ecc,

 Description:
 Description:
 
 The iframe created in a NamedFrame does not have a src, so
 it throws a mixed content warning in IE6 on an SSL-secured website.

 Fix:
 
 Setting the source to javascript:'' fixes the problem, and we've used
 the same trick on all other iframes (history iframe, GWT module iframe).

 In addition, NamedFrame currently replaces the iframe created by its
 parent class Frame in the super constructor.  This patch changes that
 behavior by passing the named iframe into the super constructor.  The
 code to create the named frame has been abstracted to a private static
 method.

 Testing:
 =
 Manually verified the patch against an SSL-enabled web server.  I added
 a simple code museum test, but it needs to be run against a secure
 server.

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

 Affected files:

  
 reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/DefaultMuseum.java

  
 reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/Issue2318.java
  user/src/com/google/gwt/user/client/ui/NamedFrame.java





-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] RR: Adding api-checker to selected packages in gwt-incubator

2008-12-09 Thread Emily Crutcher
In gwt-incubator, we want to be able to tag widgets/libaries
alpha/beta/releaseCandidate.  However, this implies an extra level of
support for releaseCandidate libraries/widgets.  Specifically, between each
incubator drop,  if we had to break the API, which we will occasionally need
to do, we want to make sure it is listed in our release notes.

In order to enforce this,  Amit and I are proposing that we add an api
checker config to gwt-incubator for release quality libraries and
widgets.  For now, the process would be informal, where a config file would
specify the release quality libraries and widgets.

Once a library or widget was listed as a release candidate, any breaking
API changes since the last gwt-incubator drop would have to be whitelisted.
The whitelist config would be checked into svn so developers could submit
changes + new whitelist entries on demand.  Above each whitelist entry, the
developer should put a comment for why the change was made and what new API
should be used instead.

Everytime we created a new gwt-incubator drop, we would use the comments in
the whitelist to generate a breaking changes section to our release
notes.  The whitelist would then be reset for the next drop.

The gwt project has been using the api checker very effectively for the last
several months. To read more about the API checker in general, click
herehttp://code.google.com/p/google-web-toolkit/wiki/GwtJavaApiCompatibilityChecker.


Comments and (polite) flames welcome.

 Cheers,

 Amit and Emily






-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: TabBar setTabText doesn't set word wrap false

2008-12-09 Thread Emily Crutcher
Ah, I see, the normal add(String) already sets word-wrap to false.

In that case LGTM.


On Tue, Dec 9, 2008 at 6:05 PM, [EMAIL PROTECTED] wrote:

 insertTab(String text, boolean asHTML, int beforeIndex) already disabled
 wordWrap, and we want insertTab() and setTabText() to be consistent.
 setTabText() actually unwraps the text because it replaces the element.

 I think its too late to change the fact that we set wordWrap to false in
 insertTab, and I think they should be consistent.  At least now users
 can change the value.


 http://gwt-code-reviews.appspot.com/604/diff/1/2
 File user/src/com/google/gwt/user/client/ui/TabBar.java (right):

 http://gwt-code-reviews.appspot.com/604/diff/1/2#newcode488
 Line 488: focusablePanel.setWidget(new HTML(html, false));
 On 2008/12/09 22:57:55, ecc wrote:

 Why are we disabling word wrap here?


 Because its disabled by default in:
 insertTab(String text, boolean asHTML, int beforeIndex);

 We want them to be consistent.


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




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: 1.6 date picker question

2008-12-04 Thread Emily Crutcher
It is definitely something that we would consider. Of course, the first step
would be to get some good alternative month selectors into the
gwt-incubator...


On Wed, Dec 3, 2008 at 9:28 PM, Arthur Kalmenson [EMAIL PROTECTED]wrote:

 Hi John,

 Thank you for the reply. Are there any plans in the future to include
 various variations of the date picker for developers to choose from
 (which would be inline with the requests for a richer widget set)?

 --
 Arthur Kalmenson



 On Mon, Dec 1, 2008 at 11:37 AM, John LaBanca [EMAIL PROTECTED] wrote:
  [+ecc, +google-web-toolkit-contributors]
 
  The default DatePicker will only include next and previous buttons, but
 you
  can replace the MonthSelector with your own that does any of the things
 you
  suggest.  We thought about using a fancy MonthSelector by default, but we
  figured everyone would have a different opinion on the ideal version, so
 we
  instead designed it so you can replace it.
 
  Thanks,
  John LaBanca
  [EMAIL PROTECTED]
 
 
  On Mon, Dec 1, 2008 at 9:41 AM, Arthur Kalmenson [EMAIL PROTECTED]
  wrote:
 
  Hello John,
 
  Will the 1.6 date picker include a year spinner? I know the current
  incubator version does not have a year spinner, so this makes it
  pretty difficult to use the date picker if you have a date that's more
  then a year off. Another nice feature would be to be able to select
  the date. For example you could click on the year the date picker
  shows, and that would turn it into a text box where you can enter the
  year you'd like.
 
  Best regards,
  --
  Arthur Kalmenson
 
 




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Date picker branch code review requested: style methods renamed, varargs fixed

2008-12-04 Thread Emily Crutcher
setTransientEnabledOnVisibleDates seems a bit awkward.  What if we removed
the VisibleDates from the name instead? So we'd have:
 setTransientEnabled
 addTransientStyleToDates
etc.


Why do we want people to be able to remove date styles that do not exist
without getting an assertion error?  Do you have a use case in mind?

   Cheers,

   Emily
















On Wed, Dec 3, 2008 at 8:56 PM, Ray Ryan [EMAIL PROTECTED] wrote:

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

 Renames some methods to reduce the confusion between global and not
 global styles.  Also fixes various varargs methods, which weren't
 really working.

 We now have styles (formerly global styles) and transient styles, the
 latter of which can only be applied to visible dates. The transient word
 appears in the former setEnabled method as well, for consistency.

 Removes separate methods for removing global and transient styles, as
 the former method would always remove the transient styles anyway, and
 it seems very unlikely that a client will use the same style name for
 both a transient and permanent date style.

 Adds unit tests for styles and enabling.

 TBR: ecc
 submitter: rjrjr




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Date picker branch code review requested: style methods renamed, varargs fixed

2008-12-04 Thread Emily Crutcher
Also, you might want to turn your javadoc warnings on in your IDE, as I
notice that there are a lot of missing javadoc tags.

On Thu, Dec 4, 2008 at 10:01 AM, Emily Crutcher [EMAIL PROTECTED] wrote:


 setTransientEnabledOnVisibleDates seems a bit awkward.  What if we
 removed the VisibleDates from the name instead? So we'd have:
  setTransientEnabled
  addTransientStyleToDates
 etc.


 Why do we want people to be able to remove date styles that do not exist
 without getting an assertion error?  Do you have a use case in mind?

Cheers,

Emily

















 On Wed, Dec 3, 2008 at 8:56 PM, Ray Ryan [EMAIL PROTECTED] wrote:

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

 Renames some methods to reduce the confusion between global and not
 global styles.  Also fixes various varargs methods, which weren't
 really working.

 We now have styles (formerly global styles) and transient styles, the
 latter of which can only be applied to visible dates. The transient word
 appears in the former setEnabled method as well, for consistency.

 Removes separate methods for removing global and transient styles, as
 the former method would always remove the transient styles anyway, and
 it seems very unlikely that a client will use the same style name for
 both a transient and permanent date style.

 Adds unit tests for styles and enabling.

 TBR: ecc
 submitter: rjrjr




 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: 1.6 date picker question

2008-12-04 Thread Emily Crutcher
That sounds great, thanks.

On Thu, Dec 4, 2008 at 10:31 AM, Isaac Truett [EMAIL PROTECTED] wrote:


 I wrote a MonthSelector a while back that uses DropDownListBoxes for
 month and year. I can fix it up to be compatible with recent changes
 and add it to the incubator. I'll see if I can fit that in tonight.


 On Thu, Dec 4, 2008 at 9:39 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
  It is definitely something that we would consider. Of course, the first
 step
  would be to get some good alternative month selectors into the
  gwt-incubator...
 
 
  On Wed, Dec 3, 2008 at 9:28 PM, Arthur Kalmenson [EMAIL PROTECTED]
  wrote:
 
  Hi John,
 
  Thank you for the reply. Are there any plans in the future to include
  various variations of the date picker for developers to choose from
  (which would be inline with the requests for a richer widget set)?
 
  --
  Arthur Kalmenson
 
 
 
  On Mon, Dec 1, 2008 at 11:37 AM, John LaBanca [EMAIL PROTECTED]
 wrote:
   [+ecc, +google-web-toolkit-contributors]
  
   The default DatePicker will only include next and previous buttons,
 but
   you
   can replace the MonthSelector with your own that does any of the
 things
   you
   suggest.  We thought about using a fancy MonthSelector by default, but
   we
   figured everyone would have a different opinion on the ideal version,
 so
   we
   instead designed it so you can replace it.
  
   Thanks,
   John LaBanca
   [EMAIL PROTECTED]
  
  
   On Mon, Dec 1, 2008 at 9:41 AM, Arthur Kalmenson 
 [EMAIL PROTECTED]
   wrote:
  
   Hello John,
  
   Will the 1.6 date picker include a year spinner? I know the current
   incubator version does not have a year spinner, so this makes it
   pretty difficult to use the date picker if you have a date that's
 more
   then a year off. Another nice feature would be to be able to select
   the date. For example you could click on the year the date picker
   shows, and that would turn it into a text box where you can enter the
   year you'd like.
  
   Best regards,
   --
   Arthur Kalmenson
  
  
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: GWTCanvas's strange behavior : timer driven animation frozen when move the mouse. (in IE, also happen when directly write vml markups)

2008-12-04 Thread Emily Crutcher
Could you create a in issue for this problem here:
   http://code.google.com/p/google-web-toolkit-incubator/issues/entry

Thanks!

 Emily

On Wed, Dec 3, 2008 at 8:56 AM, Revv [EMAIL PROTECTED] wrote:


 PROBLEM DESCRIPTION: In IE, even simple shape(meaning very short path
 string) drawn with large pixel coordinate(meaning large shape), the
 animation  get frozen when I keep moving the mouse over the shape.

 SOFTWARE: IE or host mode GWT Browser

 HARDWARE: AMD Dual-core 2GHz

 ATTACK THE PROBLEM: There are two possibilities why this kind of
 things happen: 1) google do a not so good wrapper upon VML and/or  2)
 M
 $ make a not so good markup language.
 Here is the experiment and result (both GWTCanvas code and directly
 written VML code behave
 the same way ):
 1. make small(the size of the shape) and simple(the path string is
 short) shape: animation is fast without any doubt, even when keeping
 mouse moving.
 2. make small and complex shape:animation is fast, even when keeping
 mouse moving.
 3. make large and simple shape: animation is fast, but when keeping
 mouse moving over the shape, the animation stop.

 At last, it turn out to be the problem of M$. What puzzle me: what do
 the mouse-move event have to do with the timer event for the
 animation. There are two guesses:
 1) mousemove event is of more priority than timer event in IE.
 2) When mousemove event trigged, IE will do some time-consuming things
 (specially when the shape is large) even you didn't write any code in
 javascript(or GWT's event handling function) to handle the event.

 Does anyone have any idea about this strange behavior of IE.

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Looking for a owner of ProgressBar

2008-12-04 Thread Emily Crutcher
Does anyone volunteer to support the ProgressBar widget in gwt-incubator?

  Thanks!

Emily

-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: 1.6 date picker question

2008-12-04 Thread Emily Crutcher
Yep, sounds right, thanks!

On Thu, Dec 4, 2008 at 6:53 PM, Isaac Truett [EMAIL PROTECTED] wrote:

 On second thought, gwt-incubator is supposed to compile against trunk,
 isn't it? Well, since this is written to compile against the
 1_6_datepicker branch, I'll hold off committing until that branch is
 merged to trunk (soon, right...?).

 I've attached the DropDownDatePicker proof-of-concept patch. It's
 very, very ugly, but it works. I'll see about tending to the style a
 little bit when I have more time.

 Comments welcome, of course.

 - Isaac

 On Thu, Dec 4, 2008 at 10:36 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
  That sounds great, thanks.
 
  On Thu, Dec 4, 2008 at 10:31 AM, Isaac Truett [EMAIL PROTECTED] wrote:
 
  I wrote a MonthSelector a while back that uses DropDownListBoxes for
  month and year. I can fix it up to be compatible with recent changes
  and add it to the incubator. I'll see if I can fit that in tonight.
 
 
  On Thu, Dec 4, 2008 at 9:39 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
   It is definitely something that we would consider. Of course, the
 first
   step
   would be to get some good alternative month selectors into the
   gwt-incubator...
  
  
   On Wed, Dec 3, 2008 at 9:28 PM, Arthur Kalmenson 
 [EMAIL PROTECTED]
   wrote:
  
   Hi John,
  
   Thank you for the reply. Are there any plans in the future to include
   various variations of the date picker for developers to choose from
   (which would be inline with the requests for a richer widget set)?
  
   --
   Arthur Kalmenson
  
  
  
   On Mon, Dec 1, 2008 at 11:37 AM, John LaBanca [EMAIL PROTECTED]
   wrote:
[+ecc, +google-web-toolkit-contributors]
   
The default DatePicker will only include next and previous buttons,
but
you
can replace the MonthSelector with your own that does any of the
things
you
suggest.  We thought about using a fancy MonthSelector by default,
but
we
figured everyone would have a different opinion on the ideal
 version,
so
we
instead designed it so you can replace it.
   
Thanks,
John LaBanca
[EMAIL PROTECTED]
   
   
On Mon, Dec 1, 2008 at 9:41 AM, Arthur Kalmenson
[EMAIL PROTECTED]
wrote:
   
Hello John,
   
Will the 1.6 date picker include a year spinner? I know the
 current
incubator version does not have a year spinner, so this makes it
pretty difficult to use the date picker if you have a date that's
more
then a year off. Another nice feature would be to be able to
 select
the date. For example you could click on the year the date picker
shows, and that would turn it into a text box where you can enter
the
year you'd like.
   
Best regards,
--
Arthur Kalmenson
   
   
  
  
  
   --
   There are only 10 types of people in the world: Those who understand
   binary, and those who don't
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: 1.6 date picker question

2008-12-04 Thread Emily Crutcher
Also, the code should be reviewed before committing. I'll be happy to be
your reviewer once we land the 1.6 datepicker + release the 1.5 final
gwt-incubator drop. As until then, we cannot add 1.6 specific code to
gwt-incubator.

On Fri, Dec 5, 2008 at 1:05 AM, Emily Crutcher [EMAIL PROTECTED] wrote:

 Yep, sounds right, thanks!


 On Thu, Dec 4, 2008 at 6:53 PM, Isaac Truett [EMAIL PROTECTED] wrote:

 On second thought, gwt-incubator is supposed to compile against trunk,
 isn't it? Well, since this is written to compile against the
 1_6_datepicker branch, I'll hold off committing until that branch is
 merged to trunk (soon, right...?).

 I've attached the DropDownDatePicker proof-of-concept patch. It's
 very, very ugly, but it works. I'll see about tending to the style a
 little bit when I have more time.

 Comments welcome, of course.

 - Isaac

 On Thu, Dec 4, 2008 at 10:36 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
  That sounds great, thanks.
 
  On Thu, Dec 4, 2008 at 10:31 AM, Isaac Truett [EMAIL PROTECTED]
 wrote:
 
  I wrote a MonthSelector a while back that uses DropDownListBoxes for
  month and year. I can fix it up to be compatible with recent changes
  and add it to the incubator. I'll see if I can fit that in tonight.
 
 
  On Thu, Dec 4, 2008 at 9:39 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
   It is definitely something that we would consider. Of course, the
 first
   step
   would be to get some good alternative month selectors into the
   gwt-incubator...
  
  
   On Wed, Dec 3, 2008 at 9:28 PM, Arthur Kalmenson 
 [EMAIL PROTECTED]
   wrote:
  
   Hi John,
  
   Thank you for the reply. Are there any plans in the future to
 include
   various variations of the date picker for developers to choose from
   (which would be inline with the requests for a richer widget set)?
  
   --
   Arthur Kalmenson
  
  
  
   On Mon, Dec 1, 2008 at 11:37 AM, John LaBanca [EMAIL PROTECTED]
   wrote:
[+ecc, +google-web-toolkit-contributors]
   
The default DatePicker will only include next and previous
 buttons,
but
you
can replace the MonthSelector with your own that does any of the
things
you
suggest.  We thought about using a fancy MonthSelector by default,
but
we
figured everyone would have a different opinion on the ideal
 version,
so
we
instead designed it so you can replace it.
   
Thanks,
John LaBanca
[EMAIL PROTECTED]
   
   
On Mon, Dec 1, 2008 at 9:41 AM, Arthur Kalmenson
[EMAIL PROTECTED]
wrote:
   
Hello John,
   
Will the 1.6 date picker include a year spinner? I know the
 current
incubator version does not have a year spinner, so this makes it
pretty difficult to use the date picker if you have a date that's
more
then a year off. Another nice feature would be to be able to
 select
the date. For example you could click on the year the date picker
shows, and that would turn it into a text box where you can enter
the
year you'd like.
   
Best regards,
--
Arthur Kalmenson
   
   
  
  
  
   --
   There are only 10 types of people in the world: Those who understand
   binary, and those who don't
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 

 



 --
 There are only 10 types of people in the world: Those who understand
 binary, and those who don't




-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR: Adding .project to gwt-incubator root directory

2008-12-03 Thread Emily Crutcher
By the way, if anyone has any problems with the new structure, , please file
a bug under gwt-incubator's bug tracker.  If the instructions are not clear
on the incubator wiki(
http://code.google.com/p/google-web-toolkit-incubator/wiki/WorkingWithEclipse),
please add a comment under the wiki.

   Thanks!

   Emily

On Mon, Dec 1, 2008 at 2:14 PM, Arthur Kalmenson [EMAIL PROTECTED]wrote:


 We check the .project file in for all of our projects, this makes
 picking it up from the repo really easy.

 --
 Arthur Kalmenson



 On Mon, Nov 24, 2008 at 11:31 AM, Lex Spoon [EMAIL PROTECTED] wrote:
 
  On Mon, Nov 17, 2008 at 4:28 PM, BobV [EMAIL PROTECTED] wrote:
 
  What exactly is the reason we can't do the same here?
 
  subclipse won't handle linked resources.
 
  Seconded.  Saying that the trunk arrangement works is a mild
 overstatement.
 
  That said, I don't know if there is some way to make an eclipse
  subdirectory work or not.  It might be possible if the linked
  resources can be avoided.  Still, checking in the .project file works
  fine as far as I know.  I've worked on projects that did so before.
 
 
   -Lex
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Proposed Modification to PopupPanel

2008-12-03 Thread Emily Crutcher
What about deprecating the old DOM.addEventPreview and creating an
DOM.addPreviewHandler instead, where the PreviewEvent extends DomEvent and
has some specialized methods to stop the event from going down the GWT
preview event chain.




On Wed, Dec 3, 2008 at 2:00 PM, Isaac Truett [EMAIL PROTECTED] wrote:


  Other Solutions:
  
  We considered passing the event preview down the existing stack of
  EventPreview, which fixes the problem for more than just PopupPanels.
  However, we think this approach is overkill because the problem really
  doesn't manifest itself in other widgets.

 What about GlassPanel in the Incubator? Sounds like throwing a
 GlassPanel into the mix would break things since it isn't a subclass
 of PopupPanel and does it's own event previewing.


 On Wed, Dec 3, 2008 at 1:56 PM, John LaBanca [EMAIL PROTECTED] wrote:
  Contributors -
 
  Summary:
  
  In the current implementation of PopupPanel, a PopupPanel with autoHide
  enabled will not autoHide if another Widget (such as another PopupPanel)
  steals the event preview.  In practice, this means that if a PopupPanel
 is
  opened on top of an autoHide PopupPanel, the autoHide PopupPanel will no
  longer autoHide.
 
  Consider an example where you have a SuggestBox inside of a PopupPanel
 that
  is autoHide.  If you start typing in the SuggestBox, it opens a
 PopupPanel
  of suggestions.  You then click outside the original popup and expect it
 to
  disappear.  Instead, only the SuggestBox popup disappears.  In this case,
  the PopupPanels are related, but in some cases they are not.  If you use
 a
  sticky PopupPanel (stays open for a while, ex. a debug menu or log) in
 your
  app, it may steal preview from an autoHide PopupPanel, and you have to
 close
  one to close the other.
 
 
  Proposed Solution:
  ==
  I propose that we add a static stack of PopupPanels to the PopupPanel
  class.  As popups are shown and hidden, they are added and removed from
 the
  stack.  When a popup recieves an event preview, it passes the event down
 the
  stack and lets each PopupPanel preview it UNTIL it reaches a PopupPanel
 that
  is modal.  The first modal PopupPanel (which blocks events by definition)
  will end the event preview chain.
 
 
  Example:
  ===
  Consider the following stack of PopupPanels, where the top panel is the
 last
  one that is opened:
  popup6 (autoHide)
  popup5
  popup4 (autoHide)
  popup3 (autoHide)
  popup2 (modal)
  popup1 (autoHide)
  popup0 (modal)
 
  Now lets say you click on popup4:
  1. Popup6 previews the event.  AutoHide is enabled, so it will hide.
 (NOTE:
  usually, only popup6 gets to preview the event)
  2. Popup5 previews the event.  Neither autoHide nor modal is enabled, so
  ignore it.
  3. Popup4 previews the event.  AutoHide is enabled, but the event occured
  over Popup4, so it is ignored.
  4. Popup3 previews the event.  AutoHide is enabled, so it will hide.
  5. Popup2 previews the event.  Modal is enabled, so it ends the chain.
 
  Popup1 and Popup0 never preview the event, so they both remain open.
 
 
  Other Solutions:
  
  We considered passing the event preview down the existing stack of
  EventPreview, which fixes the problem for more than just PopupPanels.
  However, we think this approach is overkill because the problem really
  doesn't manifest itself in other widgets.
 
  Thanks,
  John LaBanca
  [EMAIL PROTECTED]
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Proposed Modification to PopupPanel

2008-12-03 Thread Emily Crutcher
 Good point!  Joel, where are your trigger event methods going?



On Wed, Dec 3, 2008 at 4:24 PM, John LaBanca [EMAIL PROTECTED] wrote:

 +1

 I think DOM is on its way out.  Maybe we can add the method to Window,
 Document, or even Event?

 Thanks,
 John LaBanca
 [EMAIL PROTECTED]


 On Wed, Dec 3, 2008 at 4:19 PM, Isaac Truett [EMAIL PROTECTED] wrote:


 Sounds good. I don't do a lot with event preview, but it seems
 reasonable that it should follow the new event model.

 On Wed, Dec 3, 2008 at 2:14 PM, Emily Crutcher [EMAIL PROTECTED] wrote:
  What about deprecating the old DOM.addEventPreview and creating an
  DOM.addPreviewHandler instead, where the PreviewEvent extends DomEvent
 and
  has some specialized methods to stop the event from going down the GWT
  preview event chain.
 
 
 
 
  On Wed, Dec 3, 2008 at 2:00 PM, Isaac Truett [EMAIL PROTECTED] wrote:
 
   Other Solutions:
   
   We considered passing the event preview down the existing stack of
   EventPreview, which fixes the problem for more than just PopupPanels.
   However, we think this approach is overkill because the problem
 really
   doesn't manifest itself in other widgets.
 
  What about GlassPanel in the Incubator? Sounds like throwing a
  GlassPanel into the mix would break things since it isn't a subclass
  of PopupPanel and does it's own event previewing.
 
 
  On Wed, Dec 3, 2008 at 1:56 PM, John LaBanca [EMAIL PROTECTED]
 wrote:
   Contributors -
  
   Summary:
   
   In the current implementation of PopupPanel, a PopupPanel with
 autoHide
   enabled will not autoHide if another Widget (such as another
 PopupPanel)
   steals the event preview.  In practice, this means that if a
 PopupPanel
   is
   opened on top of an autoHide PopupPanel, the autoHide PopupPanel will
 no
   longer autoHide.
  
   Consider an example where you have a SuggestBox inside of a
 PopupPanel
   that
   is autoHide.  If you start typing in the SuggestBox, it opens a
   PopupPanel
   of suggestions.  You then click outside the original popup and expect
 it
   to
   disappear.  Instead, only the SuggestBox popup disappears.  In this
   case,
   the PopupPanels are related, but in some cases they are not.  If you
 use
   a
   sticky PopupPanel (stays open for a while, ex. a debug menu or log)
 in
   your
   app, it may steal preview from an autoHide PopupPanel, and you have
 to
   close
   one to close the other.
  
  
   Proposed Solution:
   ==
   I propose that we add a static stack of PopupPanels to the PopupPanel
   class.  As popups are shown and hidden, they are added and removed
 from
   the
   stack.  When a popup recieves an event preview, it passes the event
 down
   the
   stack and lets each PopupPanel preview it UNTIL it reaches a
 PopupPanel
   that
   is modal.  The first modal PopupPanel (which blocks events by
   definition)
   will end the event preview chain.
  
  
   Example:
   ===
   Consider the following stack of PopupPanels, where the top panel is
 the
   last
   one that is opened:
   popup6 (autoHide)
   popup5
   popup4 (autoHide)
   popup3 (autoHide)
   popup2 (modal)
   popup1 (autoHide)
   popup0 (modal)
  
   Now lets say you click on popup4:
   1. Popup6 previews the event.  AutoHide is enabled, so it will hide.
   (NOTE:
   usually, only popup6 gets to preview the event)
   2. Popup5 previews the event.  Neither autoHide nor modal is enabled,
 so
   ignore it.
   3. Popup4 previews the event.  AutoHide is enabled, but the event
   occured
   over Popup4, so it is ignored.
   4. Popup3 previews the event.  AutoHide is enabled, so it will hide.
   5. Popup2 previews the event.  Modal is enabled, so it ends the
 chain.
  
   Popup1 and Popup0 never preview the event, so they both remain open.
  
  
   Other Solutions:
   
   We considered passing the event preview down the existing stack of
   EventPreview, which fixes the problem for more than just PopupPanels.
   However, we think this approach is overkill because the problem
 really
   doesn't manifest itself in other widgets.
  
   Thanks,
   John LaBanca
   [EMAIL PROTECTED]
  
   
  
 
 
 
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
  
 




 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR: How absolute should the setValue's contract be?

2008-12-02 Thread Emily Crutcher
This seems like the right philosophy to me, and your point about date
pickers having an optional range is a very persuasive one, so I'm sold on
the best guess with the widget being able to throw
IllegalArgumentException as well.

On Mon, Dec 1, 2008 at 11:09 PM, John LaBanca [EMAIL PROTECTED] wrote:

 I think we shouldn't be too strict on user implementations of HasValue,
 but GWT widgets should be standardized.  I agree with jat's comment that its
 okay to mutate the input from setValue(), and I agree with Isaac's comment
 that there are some times when the input is just not valid and it makes
 sense to throw an exception.

 My original inclination was that getValue() should return exactly what was
 set in setValue(), but I've changed my mind.  In a traditional Java object,
 that would certainly be a good criteria.  But UI widgets are interactive by
 nature.  If I setValue() now, the end user can certainly interact with the
 widget such that getValue() returns a different result later.  Sure we could
 say that a synchronous call to getValue() after setValue() should return the
 same value, but why bother when it isn't generally true?

 The side effect of this (this being we don't have
 tight correlation between getValue() and setValue()) is that we have some
 leeway in mutating the input of setValue().  For example, setValue(null) on
 a TextBox can clear the text, even though getValue() will return an empty
 string.  Sure a TextBox doesn't technically have a null value, but I don't
 think anyone is really going to get confused if setValue() clears the text.
  99% of the time, it will be obvious what setValue(null) does.  Some widgets
 can mutate setValue() significantly.  For example, an IntegerOnlyTextBox
 might convert all Strings to an intValue() and then back to a String.

 So far, we can now use HasValue widgets without any knowledge of the actual
 Widget.  However, I think its acceptable for a widget to throw an exception
 if the value is completely invalid and can't be reasonably mutated (props to
 Isaac).  It would be nice if GWT widgets accepted the entire range of values
 in all cases, but even that may be a stretch.  For example, if we add a date
 range to DatePicker, it would be truly incorrect to set a date outside of
 that range (we could pick the closest much, but just go with the example).

 So, the user needs to have some knowledge of the underlying widget if she
 uses a widget that has some restrictions, but she only needs enough intel to
 know that the values coming from the magical source of values are compatible
 with the widget.  If your magical source of values is trying to set invalid
 values and the Widget throws an exception, its probably a good thing.  In
 the DatePicker example, you'd either need to fix the value, or expand the
 range.  But, at least for GWT widgets, exceptions would be few and far
 between.

 Thanks,
 John LaBanca
 [EMAIL PROTECTED]



 On Mon, Dec 1, 2008 at 7:47 PM, Isaac Truett [EMAIL PROTECTED] wrote:


 I share Ray's suspicion that this won't actually be much of a problem.

 A checked exception is clearly (I hope) the wrong way to go. Checked
 exceptions have their place, but they are a major pain in several
 anatomical locations when declared in situations where the vast
 majority of the time they cannot occur. On the other hand, unchecked
 exceptions for inputs that are unacceptable are quite normal
 (ArrayIndexOutOfBoundsException comes to mind). Nulls even have their
 own exclusive exception for unacceptability. Throwing exceptions like
 those can be left up to the individual HasValue implementation and
 developers will be accustomed to seeing and handling them.

 I think Ian's idea of a read-only interface is interesting, but not
 really on topic. Perhaps it deserves its own thread?


 On Mon, Dec 1, 2008 at 5:50 PM, Emily Crutcher [EMAIL PROTECTED] wrote:
  As many of you know, we have started down the path of making our form
  widgets implement HasValue. A question that has come up is: Should
 widgets
  be able to chose what values the widget accepts (i.e. setValue(null) for
 a
  text box or a bounded integer range for a select box) without throwing
  runtime exceptions?
 
  So, for instance, assuming we allow setValue(null) in some cases and not
  others:
 
  HasValueDate dateBox = new DateBox();
  HasValueString hasValue2 = new TextBox();
 
  // This clears the date box.
  hasValue1.setValue(null);
 
  // This throws an illegal argument exception.
  hasValue2.setValue(null);
 
 
  The HasValue interface becomes a lot more difficult to implement if we
  insist that all non-null values are supported, it becomes slightly
 harder to
  use if we do not.
 
  So, which contract should we enforce?
 
 
  Proposal 1)
  setValue() gives no guarantee about whether a specific value is valid.
  Users must know the underlying widget is in order to safely use the
 HasValue
  interface.
 
  Proposal 2)
  setValue() will accept all non-null values of a specific

[gwt-contrib] Re: RR: How absolute should the setValue's contract be?

2008-12-02 Thread Emily Crutcher
Yep.

On Tue, Dec 2, 2008 at 11:23 AM, Ray Ryan [EMAIL PROTECTED] wrote:

 Trying to recap, I believe the concrete proposals I just heard are:
 1. TextBoxBase should accept setValue(null), and return  from getValue();
 2. It is reasonable for widgets that can't sensibly be cleared to throw
 IllegalArgumentException on setValue(null)
 3. HasValue's javadoc should be tweaked accordingly

 Yes?

 rjrjr

 On Tue, Dec 2, 2008 at 6:12 AM, Emily Crutcher [EMAIL PROTECTED] wrote:

 This seems like the right philosophy to me, and your point about date
 pickers having an optional range is a very persuasive one, so I'm sold on
 the best guess with the widget being able to throw
 IllegalArgumentException as well.


 On Mon, Dec 1, 2008 at 11:09 PM, John LaBanca [EMAIL PROTECTED]wrote:

 I think we shouldn't be too strict on user implementations of HasValue,
 but GWT widgets should be standardized.  I agree with jat's comment that its
 okay to mutate the input from setValue(), and I agree with Isaac's comment
 that there are some times when the input is just not valid and it makes
 sense to throw an exception.

 My original inclination was that getValue() should return exactly what
 was set in setValue(), but I've changed my mind.  In a traditional Java
 object, that would certainly be a good criteria.  But UI widgets are
 interactive by nature.  If I setValue() now, the end user can certainly
 interact with the widget such that getValue() returns a different result
 later.  Sure we could say that a synchronous call to getValue() after
 setValue() should return the same value, but why bother when it isn't
 generally true?

 The side effect of this (this being we don't have
 tight correlation between getValue() and setValue()) is that we have some
 leeway in mutating the input of setValue().  For example, setValue(null) on
 a TextBox can clear the text, even though getValue() will return an empty
 string.  Sure a TextBox doesn't technically have a null value, but I
 don't think anyone is really going to get confused if setValue() clears the
 text.  99% of the time, it will be obvious what setValue(null) does.  Some
 widgets can mutate setValue() significantly.  For example, an
 IntegerOnlyTextBox might convert all Strings to an intValue() and then back
 to a String.

 So far, we can now use HasValue widgets without any knowledge of the
 actual Widget.  However, I think its acceptable for a widget to throw an
 exception if the value is completely invalid and can't be reasonably mutated
 (props to Isaac).  It would be nice if GWT widgets accepted the entire range
 of values in all cases, but even that may be a stretch.  For example, if we
 add a date range to DatePicker, it would be truly incorrect to set a date
 outside of that range (we could pick the closest much, but just go with the
 example).

 So, the user needs to have some knowledge of the underlying widget if she
 uses a widget that has some restrictions, but she only needs enough intel to
 know that the values coming from the magical source of values are compatible
 with the widget.  If your magical source of values is trying to set invalid
 values and the Widget throws an exception, its probably a good thing.  In
 the DatePicker example, you'd either need to fix the value, or expand the
 range.  But, at least for GWT widgets, exceptions would be few and far
 between.

 Thanks,
 John LaBanca
 [EMAIL PROTECTED]



 On Mon, Dec 1, 2008 at 7:47 PM, Isaac Truett [EMAIL PROTECTED] wrote:


 I share Ray's suspicion that this won't actually be much of a problem.

 A checked exception is clearly (I hope) the wrong way to go. Checked
 exceptions have their place, but they are a major pain in several
 anatomical locations when declared in situations where the vast
 majority of the time they cannot occur. On the other hand, unchecked
 exceptions for inputs that are unacceptable are quite normal
 (ArrayIndexOutOfBoundsException comes to mind). Nulls even have their
 own exclusive exception for unacceptability. Throwing exceptions like
 those can be left up to the individual HasValue implementation and
 developers will be accustomed to seeing and handling them.

 I think Ian's idea of a read-only interface is interesting, but not
 really on topic. Perhaps it deserves its own thread?


 On Mon, Dec 1, 2008 at 5:50 PM, Emily Crutcher [EMAIL PROTECTED] wrote:
  As many of you know, we have started down the path of making our form
  widgets implement HasValue. A question that has come up is: Should
 widgets
  be able to chose what values the widget accepts (i.e. setValue(null)
 for a
  text box or a bounded integer range for a select box) without throwing
  runtime exceptions?
 
  So, for instance, assuming we allow setValue(null) in some cases and
 not
  others:
 
  HasValueDate dateBox = new DateBox();
  HasValueString hasValue2 = new TextBox();
 
  // This clears the date box.
  hasValue1.setValue(null);
 
  // This throws an illegal argument exception.
  hasValue2.setValue

[gwt-contrib] incubator code review

2008-12-02 Thread Emily Crutcher
Code review request:
http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1250

Copying gen2-DropDownPanel over the widgetideas-DropDownPanel rather then
patching the widgetideas version,  as this way we only maintain one version
of DropDownPanel, which is going to be depricated as soon as the first 1.6
milestone is released.


-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Removing HasValue interface from gwt-incubator

2008-12-02 Thread Emily Crutcher
John,

  Could you review this change?  Unfortunately, HasValue from incubator
directly conflicts with HasValue from gwt-trunk. Therefore creating a nasty
path-dependency problem, the current solution is to remove HasValue from
gwt-incubator:

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

-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: incubator code review

2008-12-02 Thread Emily Crutcher
The problem is that both versions on these widgets need to exist
simultaneously for a period of time, to give our users enough space to move
from the deprecated version to the non-deprecated one.

For date picker, in specific, because it will be in the first 1.6 milestone,
it does not seem worth people's time to migrate from widgetideas to the gen2
version at this late date, as while we will leave the date picker in
gwt-incubator as a convenience, both versions will be deprecated within a
matter of a couple of more weeks.





On Tue, Dec 2, 2008 at 12:07 PM, Isaac Truett [EMAIL PROTECTED] wrote:


 Is that going to turn into a revolving door of new packages as each
 generation of widgets requires it's own namespace? It seems to me that
 the gen2 package idea was a mistake of convenience and maybe should
 have been a branch (or branches) that got merged back into trunk once
 it stabilized.


 On Tue, Dec 2, 2008 at 11:57 AM, John LaBanca [EMAIL PROTECTED] wrote:
  Is this a good idea?  I think we should just deprecate the widgetideas
  version now in favor of the gen2 version.  I didn't attempt to copy
  ScrollTable changes back to the widgetideas version, it would be a
  nightmare.  IMHO, development on widgetideas code should be closed once a
  gen2 replacement is available.
 
  Thanks,
  John LaBanca
  [EMAIL PROTECTED]
 
 
  On Tue, Dec 2, 2008 at 11:48 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
 
  Code review request:
 
 http://code.google.com/p/google-web-toolkit-incubator/source/detail?r=1250
 
  Copying gen2-DropDownPanel over the widgetideas-DropDownPanel rather
 then
  patching the widgetideas version,  as this way we only maintain one
 version
  of DropDownPanel, which is going to be depricated as soon as the first
 1.6
  milestone is released.
 
 
  --
  There are only 10 types of people in the world: Those who understand
  binary, and those who don't
 
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Fwd: Review of handler map speed test.

2008-12-01 Thread Emily Crutcher
Joel,

   Thank you so much for looking into this!  Below is the review request
that was originally directed to Kelly. Also, I've cut/pasted the initial
benchmark results I got from it.

The way I interpret them is that we may/may not have a significant problem
depending upon how many handlers programs actually have. As you can imagine,
the fact that the string manipulation is globally slowed down if we don't
use the flattened data structure is what most concerns me, as if this is a
realistic number of handlers for a production system and this benchmark
holds true, we would be slowing down this sort of string operation by over
90%.

 == Start handlerMapForSimpleJs Test== Creating 5000
handlerMapForSimpleJs maps 78 millseconds, 78 millseconds, 78
millseconds Adding
6 handlers for 5000  to a handlerMapForSimpleJs 312 millseconds, 266
millseconds, 329 millseconds Fired 3 handlers for 5000 widgets using
handlerMapForSimpleJs 157 millseconds, 156 millseconds, 156 millseconds created
a random string with 3 handlers  using handlerMapForSimpleJs 156
millseconds, 203 millseconds, 219 millseconds
   == Start handlerMapForJs Test== Creating 5000 handlerMapForJs
maps 78 millseconds, 94 millseconds, 109 millseconds Adding 6 handlers for
5000 to a handlerMapForJs 188 millseconds, 171 millseconds, 187
millseconds Fired
3 handlers for 5000 widgets using handlerMapForJs 157 millseconds, 157
millseconds, 172 millseconds created a random string with 3 handlers
using handlerMapForJs 109 millseconds, 94 millseconds, 94 millseconds
 == Start handlerMapForJava Test== Creating 5000 handlerMapForJava
maps 172 millseconds, 172 millseconds, 172 millseconds Adding 6 handlers for
5000 to a handlerMapForJava 453 millseconds, 453 millseconds, 469
millseconds Fired 36 handlers for 5000 widgets using handlerMapForJava 312
millseconds, 312 millseconds, 312 millseconds created a random string with
3 handlers  using handlerMapForJava 141 millseconds, 188 millseconds,
188 millseconds



-- Forwarded message --
From: Emily Crutcher [EMAIL PROTECTED]
Date: Mon, Nov 17, 2008 at 2:50 PM
Subject: Review of handler map speed test.
To: Kelly Norton [EMAIL PROTECTED], Ray Ryan [EMAIL PROTECTED], Google
Web Toolkit Contributors Google-Web-Toolkit-Contributors@googlegroups.com


Kelly,

   Could you review this  visual benchmark I was using to compute the
pros/cons of the different handler maps?  Of particular interest is the
SimpleJsHandlerMap, to see if there is anything, well, simple we we can do
to make it faster.

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

-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] RR: How absolute should the setValue's contract be?

2008-12-01 Thread Emily Crutcher
As many of you know, we have started down the path of making our form
widgets implement HasValue. A question that has come up is: Should widgets
be able to chose what values the widget accepts (i.e. setValue(null) for a
text box or a bounded integer range for a select box) without throwing
runtime exceptions?

So, for instance, assuming we allow setValue(null) in some cases and not
others:

HasValueDate dateBox = new DateBox();
HasValueString hasValue2 = new TextBox();

// This clears the date box.
hasValue1.setValue(null);

// This throws an illegal argument exception.
hasValue2.setValue(null);


The HasValue interface becomes a lot more difficult to implement if we
insist that all non-null values are supported, it becomes slightly harder to
use if we do not.

So, which contract should we enforce?


*Proposal 1)
*setValue() gives no guarantee about whether a specific value is valid.
Users must know the underlying widget is in order to safely use the HasValue
interface.

*Proposal 2)
*setValue() will accept all non-null values of a specific type as valid
input. In order to implement this, we will have to introduce HasClearValue
to support clearing a widget.

ListBox, for instance, would not be able to implement HasValueString, as
not all strings would be valid inputs.






-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR: How absolute should the setValue's contract be?

2008-12-01 Thread Emily Crutcher


 I'd prefer to leave the interface as is for now, and see if there is an
 actual problem here. I suspect we'll find ourselves in a world where most
 widgets deal with null, but string-based ones do not, and everyone will be
 just fine.


Unfortunately, it is not very easy to change the contract after we've
released it into the wild.  We can go with either solution, as both have
their plusses and minuses, but I'm not sure we can change course in the
middle.

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



[gwt-contrib] Re: Code review on date picker branch to date

2008-11-20 Thread Emily Crutcher
On Thu, Nov 20, 2008 at 10:32 AM, Ray Ryan [EMAIL PROTECTED] wrote:

 Long term? 1.6, yes?

 On Thu, Nov 20, 2008 at 10:07 AM, Emily Crutcher [EMAIL PROTECTED] wrote:

 DateBox should implement the HasValue interface long term, which using the
 new terminology, does basically what you expect here.


Yep, so long term may have been a bit of an exaggeration!

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



[gwt-contrib] Re: Code review on date picker branch to date

2008-11-20 Thread Emily Crutcher
On Thu, Nov 20, 2008 at 10:23 AM, John Tamplin [EMAIL PROTECTED] wrote:

 On Thu, Nov 20, 2008 at 10:04 AM, Emily Crutcher [EMAIL PROTECTED] wrote:

  For efficiency and code clearity I would still be inclined to support
 the singleton version as well, but adding the Date... version as an option
 to the plural versions seems like a terrific idea. I don't think it matters
 if we use calendar/getCalendar, but we should probably pick only one for
 consistancy!


 You can still call the varargs version with a single value, as in
 addStyleToVisibleDates(styleName, date), and the extra cost should be
 minimal.  I think the extra weight of additional API surface area is more
 costly.



Well, we can always add the single-arg one back in, so if the compiler
actually generates reasonably efficent code for this, I think you're
probably right.



 --
 John A. Tamplin
 Software Engineer (GWT), Google


 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Code review on date picker branch to date

2008-11-20 Thread Emily Crutcher

 Sorry, could have sworn that was public. Btw., DatePicker is littered with
 direct uses of the calendar field. If getCalendarView() is protected, we
 should always call it.

 Still, the amount of duplication btw. the DatePicker API and CalendarView
 is odd. Can CalendarView be reduced to a smaller set of primitive calls at
 all? E.g., it doesn't really need the setDatesEnabled convenience wrapper,
 DatePicker can be in charge of that kind thing.


Sure, we can get rid of the convinience methods.
So what is the actual date returned in such a case? The first day of the
month(s) displayed? Or can a Date be filled with null day info? Sounds like
another excellent javadoc opportunity.

Yep. Also, I think it does make sense to extend this API down to the
calendar model level, as that would probably help mitigate the confusion.




 Anyway, can such a CalendarView really be implemented? CalendarModel seems
 very locked down to a single month.

  The calendar view specifies a month at a time, the calendar view can
increment the month to help it fill in its date views.



  That might not be possible--the compiler may find itself unable to tell
 whether to use the Date or the Date... version.


Yep, and if we actually implement .. efficiently in our compiler, no
reason to do this either!



 February is visible. The 10th is disabled. The user moves the picker to
 March, and back to February. What is the state of Feb. 10?


It is no longer disabled. That's why the API has the assertion actually, as
all the api calls that include visible dates specifically are reset when
the date picker refreshes.


  Custom CalendarView seems okay, but MonthSelector is an empty class, and
 its default implementation is final. So I have protected API that says your
 month selector here, and no way to actually provide one without copying and
 pasting our code. That seems inconsistent.



So you think we should include an extendable month selector as well? We
actually even have a googler working on one, so we can see how far he has
gotten or create one ourselves if he hasn't gotten far enough.




 CalendarUtil.java

 Some of the methods in this public class are not public, seemingly
 arbitrarily. Is there a real reason we don't want people to call isWeekend
 or hasTime? Why is resetTime private?


 We were trying to expose only the methods we were absolutely certain other
 people would want, mostely because we used them ourselves, rather then
 exposing all of them.


 If we have methods we aren't using, why are they there?


We are using them for calendar model, we just don't know if anyone else
would need to use them.





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



[gwt-contrib] Re: Code review on date picker branch to date

2008-11-20 Thread Emily Crutcher


 Actually as Ray points out, foo(Bar) and foo(Bar...) are not
 distinguishable overloads, so you would have to reverse the order of the
 arguments to keep the single-arg version.


One is plural, one is not, so they would hopefully not overlap at all. The
bigger point though, is if the the compiler implements the .. sytax
efficiently, no reason for the clutter.



 --
 John A. Tamplin
 Software Engineer (GWT), Google

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR: Adding PopupPanel.showBelow

2008-11-20 Thread Emily Crutcher
   would have two methods:

 Showing a popup above the widget is very useful for cases when the
 popup shown below the widget will scroll the screen.  In those cases
 it would be nice to be able to detect that the popup is going to show
 off the bottom of the screen and instead show it above the widget as a
 lot of toolkits do.  Having an API method that easily allowed one to
 do this now would be quite helpful.


Yep, that is what the current version does, it tries to show the popup below
the ui object, but if it is too near the bottom of the screen, reverses
itself.



  



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: RR: Adding PopupPanel.showBelow

2008-11-20 Thread Emily Crutcher
It seems like that would be a good patch. It would belong on the gwt issue
tracker.



On Thu, Nov 20, 2008 at 11:30 AM, Isaac Truett [EMAIL PROTECTED] wrote:


 It certainly doesn't need to be a blocker on this change, but
 separating that popup/popdown logic so that we have our first two
 Orientation options would be handy (for writing a Windows-style
 Start menu, for example, that should always pop up and never down).
 Is this something that would be considered for the future (if, for
 example, someone submitted a patch...)? If so, which issue tracker
 does it belong in?


 On Thu, Nov 20, 2008 at 11:24 AM, Emily Crutcher [EMAIL PROTECTED] wrote:
 
would have two methods:
 
  Showing a popup above the widget is very useful for cases when the
  popup shown below the widget will scroll the screen.  In those cases
  it would be nice to be able to detect that the popup is going to show
  off the bottom of the screen and instead show it above the widget as a
  lot of toolkits do.  Having an API method that easily allowed one to
  do this now would be quite helpful.
 
 
  Yep, that is what the current version does, it tries to show the popup
 below
  the ui object, but if it is too near the bottom of the screen, reverses
  itself.
 
 
  
 

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



[gwt-contrib] Re: Proposal: Extracting gwt-incubator-servlet.jar

2008-11-20 Thread Emily Crutcher

shared - code that does not contain or reference any class that contains
 JSNI,
GWT.create, or reflection


I think this should be reachable code, in that code hiding behind a
GWT.isClient() should be allowed.

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



[gwt-contrib] Re: Proposal: Extracting gwt-incubator-servlet.jar

2008-11-20 Thread Emily Crutcher
If the class is never loaded, how is it unsafe?

On Thu, Nov 20, 2008 at 12:00 PM, John Tamplin [EMAIL PROTECTED] wrote:

 On Thu, Nov 20, 2008 at 11:50 AM, Emily Crutcher [EMAIL PROTECTED] wrote:

 shared - code that does not contain or reference any class that
 contains JSNI,
GWT.create, or reflection


 I think this should be reachable code, in that code hiding behind a
 GWT.isClient() should be allowed.


 No, because on some JVMs even the attempt to load a class that has native
 methods but no matching shared library (ie, JSNI) will thow an exception.  I
 think the only safe way to make that work is with super-source overlaying
 the client-compatible version.


 --
 John A. Tamplin
 Software Engineer (GWT), Google

 



-- 
There are only 10 types of people in the world: Those who understand
binary, and those who don't

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



  1   2   >