[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.

2008-11-11 Thread codesite-noreply

[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
CloseEvent:
http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/CloseEvent.java?spec=issue3083&r=3969

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/CloseEvent.java
  
(r3969)
===

Line 59:* @param  the target type
---
I don't understand the difference between the target and the source for  
this event.

Line 84:* Constructor. Should only be used by subclasses, almost always  
for testing.
---
See my comments in BeforeSelectionEvent.

Line 107:   // @param autoClosed was the close event triggered automatically
---
I think this comment took a wrong turn; it doesn't seem to apply.

Line 126:   protected final void setAutoClosed(boolean autoClosed) {
---
It really seems like autoClosed and target should both be construction time  
invariants.

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.

2008-11-11 Thread codesite-noreply

[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
JsHandlerRegistry:
http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/JsHandlerRegistry.java?spec=issue3083&r=4009

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/JsHandlerRegistry.java
  
(r4009)
===

Line 36: return (JsHandlerRegistry) JavaScriptObject.createObject();
---
This could be JavaScriptObject.createObject().cast() if you like that style.

Line 45:   public final  void  
addHandler(HandlerManager manager,
---
What do we get out of trying to flatten these? Comparing this to the  
simpler approach of just always keeping unflattened structure seems  
complex. What are the tradeoffs that led us to adopt this approach?

Line 87:   // unsafe cast instead.
---
I don't see how getHandler could get inlined at all. Doesn't the possible  
throwing of IndexOutOfBounds exception prevent that?

Now that we have some benchmark baselines, we can use these to guide out  
decisions about doing linguistically ugly things like unchecked type  
conversions.

Line 114:   // unsafe cast instead.
---
Same comment here as the last method.

Line 121:   throw new IndexOutOfBoundsException("index: " + index);
---
I really don't know the right answer here, but should we consider making  
this an assertion?

Line 145:   final native int getCount(int index) /*-{
---
private

Line 150:   final native void unflatten(int base) /*-{
---
private

Line 154:  for(var i = 0; i < count;i++){
---
Indentation is off.

Line 174: return  this[base + 1];
---
Extra space after return.

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.

2008-11-11 Thread codesite-noreply

[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
JavaHandlerRegistry:
http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/JavaHandlerRegistry.java?spec=issue3083&r=3969

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/JavaHandlerRegistry.java
  
(r3969)
===

Line 27: class JavaHandlerRegistry extends HashMap,  
ArrayList> {
---
I think this class should contain a HashMap and not be a HashMap. It offers  
a much simpler API than HashMap.

Line 33:   super.put(type, l);
---
super.put? We don't override put so super isn't necessary, but this also  
becomes a non-issue if this isn't a subclass of HashMap.

Line 54: assert (index < handlerCount);
---
shouldn't this be
assert index < getHandlerCount(eventKey)
Otherwise you'll always compute the handlerCount even when assertions are  
turned off.

Line 61: if (l == null) {
---
would probably be clearer as return (l == null) ? 0 : l.size();

Line 70: if (l != null) {
---
Given the existence of HandlerRegistrations, why is it even valid to ask to  
remove something that isn't there?

Line 77: // This cast is safe because we control the puts.
---
We don't actually control the puts, someone could accidently put some  
invalid gunk in by calling put directly in HandlerManager. Now that's not  
highly likely, but the fact that it's possible is another strike against  
the subclass.

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.

2008-11-11 Thread codesite-noreply

[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
HandlerManager:
http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java?spec=issue3083&r=4006

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java
  
(r4006)
===

Line 30:   static int EXPECTED_HANDLERS = 5;
---
Why is this package-private? testability?

Line 31:   private static final boolean useJs = GWT.isClient();
---
This should probably be useJsRegistry

Line 40:   public static boolean isLive(GwtEvent event) {
---
Why make GwtEvent.isLive protected if we're going to make a public delegate  
to it?

Line 49:   public static void revive(GwtEvent event) {
---
Why make GwtEvent.revive protected if we're going to offer a public  
delegate to it?

Line 50: if (event.isLive() == false) {
---
if (!event.isLive()) {


Line 58: index += EXPECTED_HANDLERS + 2;
---
It seems weird that HandlerManager has to be concerned with the stride of  
the underlying registry. And the EXPECTED_HANDLERS is really a detail of  
JsHandlerRegistry. Seems like this should defer to the registry for the  
next key index. That would allow EXPECTED_HANDLERS to move into  
JsHandlerRegistry and JavaHandlerRegistry can return serial indexes if it  
wants to.

Line 63:   int firingDepth = 0;
---
There seems something unholy about the union between HandlerManager and the  
registries. They seem to share logic in a way that suggests that they  
aren't properly encapsulated ... or that they are the same thing and that  
the registries should become nested classes. firingDepth, like  
EXPECTED_HANDLERS, seems unnecessarily package-private, but I'll have to  
keep looking to understand exactly why the relationship is so intimate.

Line 76:   private ArrayList addQueue;
---
I think this should be a List as well.

I have to admit that I don't really like the concurrent modification  
scheme. Did we consider doing a simple copy of the handler collection on  
modification when firing is active? While that will likely be slower to add  
a handler during firings, it would likely be faster in the common case. And  
since web mode could take advantage of Array.slice, I'm not sure that there  
would be a significant difference in the mod-while-firing case. Plus, there  
are a few things that trouble me about this scheme:

1 - It does seem kind of complex having to enqueue mods into lazily created  
Lists.

2 - The fact that we end up with List so that we can store  
type types of object in there is a really sketchy pattern and I definitely  
think we should do something like that only if there is a really good  
reason. And if there is, we should document it thoroughly in the comments  
in the class.

3 - It seems kind of unsound to put these in two queues because technically  
they have to be ordered (because you are essentially queueing operations)  
otherwise you run the risk of getting your adds and removes in the wrong  
order. handleQueuedAddsAndRemoves actually notes this for one direction ...  
in that it makes sure that a add of a handler followed by a remove of the  
same listener will do the right thing, but it doesn't safe guard against  
the reverse.

Line 86:   javaRegistry = null;
---
Are you sure assigning null doesn't ensure that the field remains in  
existence? I thought the pruner was unable to remove the filed if it sees  
an assignment.

Line 133:   public void clearHandlers(Type type) {
---
We've never provided a method for clearing all listeners. Why do we need  
this?

Line 135:   javaScriptRegistry.clearHandlers(type);
---
If we do decide to keep this, why not just create a new registry instead of  
trying to cleanse the old one?

Line 150: if (event.isLive() == false) {
---

[gwt-contrib] Re: [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4004.

BTW: does this feature send an email directly to the committer who committed
the revision?

On Tue, Nov 11, 2008 at 10:38 PM, <[EMAIL PROTECTED]> wrote:

>
> [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4004.
> Details are at
> http://code.google.com/p/google-web-toolkit/source/detail?r=4004
>
> Score: Neutral
>
> General Comment:
> - Let's not make the default deployment directory actually
> called 'deployDir' how about the module name or some derivative thereof?
> - projectCreator currently doesn't run; it should be removed from the
> distro if we're going to get rid of it
> - Please review the descriptions on the command-line switches for
> consitency; the only thing I saw off the bat was inconsistent use of
> periods (we traditional do not use periods in this context)
>
> Respond to these comments at
> http://code.google.com/p/google-web-toolkit/source/detail?r=4004
> --
> You received this message because you starred this review, or because
> your project has directed all notifications to a mailing list that you
> subscribe to.
> You may adjust your review notification preferences at:
> http://code.google.com/hosting/settings
>
> >
>

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4004.


[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4004.
Details are at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4004

Score: Neutral

General Comment:
- Let's not make the default deployment directory actually  
called 'deployDir' how about the module name or some derivative thereof?
- projectCreator currently doesn't run; it should be removed from the  
distro if we're going to get rid of it
- Please review the descriptions on the command-line switches for  
consitency; the only thing I saw off the bat was inconsistent use of  
periods (we traditional do not use periods in this context)

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4004
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] Re: runAsync fragment loading bug in IE



Yes lgtm to cameron's change, sorry I ignored email for a while.

On Nov 10, 2008 6:08 PM, "Lex Spoon" <[EMAIL PROTECTED]> wrote:

On Mon, Nov 10, 2008 at 2:33 PM, Kelly Norton <[EMAIL PROTECTED]> wrote: > 
For iframe loading, Came...
Can I consider that an LGTM?

> However, I am wondering how this is going to work > in the xs case where 
the code is loaded into...
No, that sounds like a problem all right.  For independent reasons,
using XHR instead of script tags sounds better, anyway.  The
downloaded result could then be eval-ed in the correct scope.  That
strategy would seem to work fine for the XS linker, so long as the
call to eval happens within the anonymous function.


Lex


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



[gwt-contrib] Re: [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4022.

Was this review directed at a different revision?  Project Hosting error or
user error?

On Tue, Nov 11, 2008 at 6:11 PM, <[EMAIL PROTECTED]> wrote:

>
> [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4022.
> Details are at
> http://code.google.com/p/google-web-toolkit/source/detail?r=4022
>
> Score: Neutral
>
> General Comment:
> See the one inline comment. Two other comments:
> - projectCreator currently doesn't run; it should be removed from the
> distro if we're going to get rid of it
> - Please review the descriptions on the command-line switches for
> consitency; the only thing I saw off the bat was inconsistent use of
> periods (we traditional do not use periods in this context)
>
> Line-by-line comments:
>
> File:
> /releases/1.6/user/src/com/google/gwt/user/tools/ApplicationCreator.java
> (r4004)
>
> ===
>
> Line 552: return "Specifies the deploy directory (defaults to
> deployDir)";
>
> ---
> Shouldn't the parenthetical comment be "defaults to 'war'"?
>
> Respond to these comments at
> http://code.google.com/p/google-web-toolkit/source/detail?r=4022
> --
> You received this message because you starred this review, or because
> your project has directed all notifications to a mailing list that you
> subscribe to.
> You may adjust your review notification preferences at:
> http://code.google.com/hosting/settings
>
> >
>

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4022.


[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4022.
Details are at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4022

Score: Neutral

General Comment:
See the one inline comment. Two other comments:
- projectCreator currently doesn't run; it should be removed from the  
distro if we're going to get rid of it
- Please review the descriptions on the command-line switches for  
consitency; the only thing I saw off the bat was inconsistent use of  
periods (we traditional do not use periods in this context)

Line-by-line comments:

File:  
/releases/1.6/user/src/com/google/gwt/user/tools/ApplicationCreator.java  
(r4004)
===

Line 552: return "Specifies the deploy directory (defaults to  
deployDir)";
---
Shouldn't the parenthetical comment be "defaults to 'war'"?

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4022
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] Re: IFrameTemplate.js broken for noserver hosted mode in trunk


On Tue, Nov 11, 2008 at 1:47 AM, Cameron Braid <[EMAIL PROTECTED]> wrote:
> hosted.html expects the querystring to contain only the module strongName
> where as it curently contains strongName + ".cache.html"
>
> IFrameTemplate.js in maybeInjectFrame() appends .cache.html to the
> strongName (line 298).

Thanks, Cameron.  I did not previously know about noserver mode, so I
didn't even try not to break it.  Your fix looks good to me.  I've put
in a slightly refactored version at revision 4022.

Lex

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



[gwt-contrib] [google-web-toolkit commit] r4022 - trunk/dev/core/src/com/google/gwt/core/linker


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 14:56:29 2008
New Revision: 4022

Modified:
trunk/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js

Log:
Fixes the URL for the hosted.html file when using
the IFrameLinker with noserver hosted mode.

Suggested by: Cameron Braid
Review by: jat


Modified: trunk/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
==
--- trunk/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js  
(original)
+++ trunk/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js Tue Nov 
 
11 14:56:29 2008
@@ -295,7 +295,7 @@
  millis:(new Date()).getTime(),
  type: 'moduleRequested'
});
-  iframe.contentWindow.location.replace(base + strongName  
+ '.cache.html');
+  iframe.contentWindow.location.replace(base + initialHtml);
  }
}

@@ -351,13 +351,16 @@
});

var strongName;
+  var initialHtml;
if (isHostedMode()) {
-strongName = "hosted.html?__MODULE_FUNC__";
+strongName = "";
+initialHtml = "hosted.html?__MODULE_FUNC__";
} else {
  try {
  // __PERMUTATIONS_BEGIN__
// Permutation logic
  // __PERMUTATIONS_END__
+  initialHtml = strongName + ".cache.html";
  } catch (e) {
// intentionally silent on property failure
return;

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



[gwt-contrib] [google-web-toolkit commit] r4021 - branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/mu seum/client/defaultm...


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 14:06:28 2008
New Revision: 4021

Modified:
 
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDisclosurePanelEvents.java
 
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
 
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForPopupEvents.java
 
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTableEvents.java

Log:
Fixes for ajr's review of 6 Nov

Modified:  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDisclosurePanelEvents.java
==
---  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDisclosurePanelEvents.java
  
(original)
+++  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDisclosurePanelEvents.java
  
Tue Nov 11 14:06:28 2008
@@ -53,7 +53,7 @@

@Override
public String getInstructions() {
-return "Click on disclosure panel, see the expected events firing";
+return "Click on disclosure panel, see the expected Open and Close  
events firing";
}

@Override

Modified:  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
==
---  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
   
(original)
+++  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
   
Tue Nov 11 14:06:28 2008
@@ -109,244 +109,11 @@
  layout.setHTML(0, 1, "Event");
  layout.setHTML(0, 2, "Status");

-// Mouse and click events
-{
-  // Create a button to trigger events
-  Button button = new Button("Double-click me") {
-@Override
-public void onBrowserEvent(Event event) {
-  super.onBrowserEvent(event);
-
-  // Verify that values associated with events are defined. For  
some
-  // values, we just want to make sure we can get them without any
-  // errors.
-  assert event.getClientX() > 0;
-  assert event.getClientY() > 0;
-  assert event.getScreenX() > 0;
-  assert event.getScreenY() > 0;
-  event.getAltKey();
-  event.getCtrlKey();
-  event.getShiftKey();
-  event.getMetaKey();
-}
-  };
-
-  // Setup the tests
-  addTest(Event.ONCLICK, "click", button);
-  addDependentTest(Event.ONMOUSEDOWN, "mousedown");
-  addDependentTest(Event.ONMOUSEUP, "mouseup");
-  addDependentTest(Event.ONMOUSEOVER, "mouseover");
-  addDependentTest(Event.ONMOUSEOUT, "mouseout");
-  addDependentTest(Event.ONMOUSEMOVE, "mousemove");
-
-  // Add event handlers
-  button.addClickHandler(new ClickHandler() {
-public void onClick(ClickEvent event) {
-  passTest(event.getNativeEvent());
-}
-  });
-  button.addMouseDownHandler(new MouseDownHandler() {
-public void onMouseDown(MouseDownEvent event) {
-  event.getNativeButton();
-  passTest(event.getNativeEvent());
-}
-  });
-  button.addMouseUpHandler(new MouseUpHandler() {
-public void onMouseUp(MouseUpEvent event) {
-  event.getNativeButton();
-  passTest(event.getNativeEvent());
-}
-  });
-  button.addMouseMoveHandler(new MouseMoveHandler() {
-public void onMouseMove(MouseMoveEvent event) {
-  passTest(event.getNativeEvent());
-}
-  });
-  button.addMouseOutHandler(new MouseOutHandler() {
-public void onMouseOut(MouseOutEvent event) {
-  assert event.getFromElement() != null;
-  assert event.getToElement() != null;
-  passTest(event.getNativeEvent());
-}
-  });
-  button.addMouseOverHandler(new MouseOverHandler() {
-public void onMouseOver(MouseOverEvent event) {
-  assert event.getFromElement() != null;
-  assert event.getToElement() != null;
-  passTest(event.getNativeEvent());
-}
-  });
-}
-
-// Keyboard events
-{
-  // Setup a text box to trigger the events
-  TextBox textBox = new TextBox();
-
-  // Setup the tests
-  textBox.setText("Type a letter");
-  addTest(Event.ONKEYDOWN, "keydown", textBox);
-  addDependentTest(Event.ONKEYPRESS, "keypress");
-  addDependentTest(Event.ONKEYUP, "keyup");
-  addDependentTest(Event.ONFOCUS, "focus");
-  addDependentTest(Event.ONBLUR, "blur");
- 

[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.


[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
Fixes submitted as r4021

Line-by-line comments:

File:  
/branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDisclosurePanelEvents.java
  
(r3969)
===

Line 56: return "Click on disclosure panel, see the expected events  
firing";
---
fixed

File:  
/branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
  
(r3943)
===

Line 113: {
---
Fixed

File:  
/branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForPopupEvents.java
  
(r3943)
===

Line 64: + (autoHide ? "auto hide" : " persistant");
---
fixed

File:  
/branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTableEvents.java
  
(r3943)
===

Line 32:  * A simple tree used to quickly exercise tree behavior.
---
fixed

File:  
/branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTreeEvents.java
  
(r3950)
===

Line 75: return "Open each node, ensure you see the right events in the  
window title";
---
Looks like this was fixed already.

File:  
/branches/1_6_clean_events/user/super/com/google/gwt/emul/java/lang/StringBuilder.java
  
(r3963)
===

Line 33: public class StringBuilder implements CharSequence, Appendable {
---
It's in the 1.6 branch. I think your diff is against the branch point, not  
against 1.6 head (from which we refreshed last week), thus the confusion.

File:  
/branches/1_6_clean_events/user/super/com/google/gwt/emul/java/util/TreeSet.java
  
(r3963)
===

Line 27: public class TreeSet extends AbstractSet implements  
SortedSet, Serializable {
---
Again, this is from a 1.6 merge.

File:  
/branches/1_6_clean_events/user/test/com/google/gwt/dev/jjs/test/HostedTest.java
  
(r3936)
===

Line 600:
---
Not seeing anything missing here. Do you remember what this was about?

File:  
/branches/1_6_clean_events/user/test/com/google/gwt/i18n/client/TestAnnotatedMessages.java
  
(r3963)
===

Line 29: //  
@GenerateKeys("com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator")
---
Not in our scope. I expect JAT left this in on purpose.

Line 61:   String optionalArgument(@Optional
---
Actually a 1.6 change, though I agree with you. Death to the auto formatter.

Line 84:   String pluralWidgetsOther(@PluralCount
---
ditto

File:  
/branches/1_6_clean_events/user/test/com/google/gwt/i18n/client/TestConstants.java
  
(r3963)
===

Line 24: public interface TestConstants extends  
com.google.gwt.i18n.client.Constants {
---
Actually from 1.6

File:  
/branches/1_6_clean_events/user/test/com/google/gwt/i18n/client/gen/Shapes.java 
 
(r3963)
===

Line 22: public interface Shapes extends  
com.google.gwt.i18n.client.Constants {
---
1.6 merge fu

File:  
/branches/1_6_clean_events/user/test/com/google/gwt/user/server/rpc/CollectionsTestServiceImpl.java
 

[gwt-contrib] [google-web-toolkit] EmilyCrutcher commented on revision r4018.


[google-web-toolkit] EmilyCrutcher commented on revision r4018.
Details are at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4018

General Comment:
Our import formatter automatically does that as the gwt style guidelines  
say no x.* imports. Now, for static imports we may wish to change this, but  
that would be a larger conversation.

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4018
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.


[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
Another comment on GwtEvent.
http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/GwtEvent.java?spec=issue3083&r=3969

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/event/shared/GwtEvent.java  
(r3969)
===

Line 59:   private boolean dead;
---
Do we need this? It seems like dead == true and source == null have the  
same meaning.

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on branch /branches/1_6_clean_events.


[google-web-toolkit] [EMAIL PROTECTED] commented on branch  
/branches/1_6_clean_events.
Details are at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events

General Comment:
BeforeSelectionEvent (but it has questions relevant to all logical/shared  
events)
http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java?spec=issue3083&r=3969

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java
  
(r3969)
===

Line 39:* @param  The event source.
---
remove the period at the end.

Line 41:*  handlers and a handler manager.
---
Remove periods. Also, isn't that second sentence already communicated by  
the type signature. Can we just drop it altogether?

Line 47: if (TYPE != null) {
---
If no one has called getType() yet, is it valid for someone to try to fire  
this type of event? Should we assert that TYPE != null instead of doing a  
runtime check?

Line 60:* Gets the abstract type associated with this event.
---
Can probably remove "abstract"

Line 76:* Constructor. Should only be used by subclasses, almost always  
for testing.
---
Can we just say "Used for testing." everything else is implied by  
the signature.

Line 113:   @SuppressWarnings("unchecked")
---
This seems odd to me and as I think about it, it points to the fact that  
GwtEvent.Type has type params but doesn't seem to make use of those type  
params in any way. Should GwtEvent.Type remove the H type param?

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/branch?spec=issue3083&branch=%2Fbranches%2F1_6_clean_events
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit] ray.ryan commented on revision r4018.


[google-web-toolkit] ray.ryan commented on revision r4018.
Details are at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4018

Score: Positive

General Comment:
LGTM
Just one tiny nit, do with it what you will.

Line-by-line comments:

File:  
/branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SuggestBox.java
  
(r4018)
===

Line 21: import static com.google.gwt.event.dom.client.KeyCodes.KEY_UP;
---
Why not import static com.google.gwt.event.dom.client.KeyCodes.*;?

Respond to these comments at  
http://code.google.com/p/google-web-toolkit/source/detail?r=4018
--
You received this message because you starred this review, or because
your project has directed all notifications to a mailing list that you
subscribe to.
You may adjust your review notification preferences at:
http://code.google.com/hosting/settings

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



[gwt-contrib] [google-web-toolkit commit] r4020 - in branches/1_6_clean_events/user/src/com/google/gwt/user/client: . ui


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 13:16:04 2008
New Revision: 4020

Added:
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ListenerWrapper.java

(contents, props changed)
   - copied, changed from r4018,  
/branches/1_6_clean_events/user/src/com/google/gwt/user/client/L.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/ListenerWrapper.java

(contents, props changed)
   - copied, changed from r4018,  
/branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/L.java
Removed:
branches/1_6_clean_events/user/src/com/google/gwt/user/client/L.java
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/L.java
Modified:
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/History.java
branches/1_6_clean_events/user/src/com/google/gwt/user/client/Window.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FocusPanel.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FocusWidget.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FormPanel.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/HTMLTable.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Hyperlink.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Image.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Label.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/ListBox.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/PopupPanel.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/ScrollPanel.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SuggestBox.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabBar.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabPanel.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Tree.java

Log:
Renaming L to ListenerWrapper.

Modified:  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/History.java
==
---  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/History.java  
 
(original)
+++  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/History.java  
 
Tue Nov 11 13:16:04 2008
@@ -80,7 +80,7 @@
 */
@Deprecated
public static void addHistoryListener(HistoryListener listener) {
-L.HistoryChange.add(listener);
+ListenerWrapper.HistoryChange.add(listener);
}

/**
@@ -191,6 +191,6 @@
 */
@Deprecated
public static void removeHistoryListener(HistoryListener listener) {
-L.HistoryChange.remove(impl.getHandlers(), listener);
+ListenerWrapper.HistoryChange.remove(impl.getHandlers(), listener);
}
  }

Copied:  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ListenerWrapper.java
  
(from r4018,  
/branches/1_6_clean_events/user/src/com/google/gwt/user/client/L.java)
==
--- /branches/1_6_clean_events/user/src/com/google/gwt/user/client/L.java   
 
(original)
+++  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ListenerWrapper.java
   
Tue Nov 11 13:16:04 2008
@@ -37,8 +37,8 @@
   * @param  listener type
   */
  @Deprecated
-abstract class L implements EventHandler {
-  public static class HistoryChange extends L implements
+abstract class ListenerWrapper implements EventHandler {
+  public static class HistoryChange extends  
ListenerWrapper implements
ValueChangeHandler {
  @Deprecated
  public static void add(HistoryListener listener) {
@@ -58,7 +58,7 @@
  }
}

-  public static class WindowClose extends L implements
+  public static class WindowClose extends  
ListenerWrapper implements
Window.ClosingHandler, CloseHandler {
  @Deprecated
  public static void add(WindowCloseListener listener) {
@@ -89,7 +89,7 @@
  }
}

-  public static class WindowResize extends L  
implements
+  public static class WindowResize extends  
ListenerWrapper implements
ResizeHandler {
  @Deprecated
  public static void add(WindowResizeListener listener) {
@@ -110,7 +110,7 @@
  }
}

-  public static class WindowScroll extends L  
implements
+  public static class WindowScroll extends  
ListenerWrapper implements
Window.ScrollHandler {
  @Deprecated
  public static void add(WindowScrollListener listener) {
@@ -141,7 +141,7 @@
  int handlerCount = manager.getHandlerCount(key);
  for (int i = 0; i < handlerCount; i++) {
Event

[gwt-contrib] [google-web-toolkit commit] r4019 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 12:58:45 2008
New Revision: 4019

Modified:
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Widget.java

Log:
Making ensureHandlers package protected as it is not part of the public API.

Modified:  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Widget.java
==
---  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Widget.java
 
(original)
+++  
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Widget.java
 
Tue Nov 11 12:58:45 2008
@@ -183,16 +183,6 @@
}

/**
-   * Ensures the existence of the handler manager.
-   *
-   * @return the handler manager
-   * */
-  protected HandlerManager ensureHandlers() {
-return handlerManager == null ? handlerManager = new  
HandlerManager(this)
-: handlerManager;
-  }
-
-  /**
 * Fires an event. Usually used when passing an event from one source to
 * another.
 *
@@ -294,6 +284,16 @@
 * browser's document.
 */
protected void onUnload() {
+  }
+
+  /**
+   * Ensures the existence of the handler manager.
+   *
+   * @return the handler manager
+   * */
+  HandlerManager ensureHandlers() {
+return handlerManager == null ? handlerManager = new  
HandlerManager(this)
+: handlerManager;
}

/**

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



[gwt-contrib] events branch code review, HasKeyCodes inteface --> KeyCodes class

Ray,
 This commit tries to get us out of figuring out how we want to use
enums  by giving us api breathing room to introduce them (or not) later.

In specific, we now use getNativeKeyCode and getNativeButton, remove any
mention of integers from KeyCodeEvent and MouseEvent, plus remove the
anti-pattern encapsolated in HasKeyCodes and replaces it with a KeyCodes
static class that should have its members statically imported instead.

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

-- 
"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: Turning off runtime checks

On Tue, Nov 11, 2008 at 3:02 PM, Bruce Johnson <[EMAIL PROTECTED]> wrote:

> How about we start a convention for -Xunsafe:yyy flags, like
>
> -Xunsafe:disableArrayIndexChecks
> -Xunsafe:disableClassCastChecks
> -Xunsafe:disableDefensiveCollections
>
>
> then we'd want a roll-up flag like
>
> -Xunsafe:all
>
>
> Of course, we'd want to not document these.
>
> @Ray: The compiler guys are slammed right now. But if you have anything
> resembling a patch that could start this pattern, I think that's the only
> realistic way to get this done in the short term. Also, I'd like to see if
> Scott/Lex/anyone else disagree before we proceeded down this path.
>

Something related we talked about was a flag indicating the compiler was
free to generate code that would be broken if you get certain compiler
warnings.  For example, the compiler has to insert casts even when you have
List because it is possible other dealing with a raw List put
something besides a String in it.  Such a use would generate a warning, so
if you didn't suppress the warning and you didn't get one, it would be ok
for the compiler to remove some extra code.  Probably better to make it a
failure, so something like -assumeGenericCorrectness or something, and what
would previously be a warning regarding generics before would now be an
error but you would produce better code.

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

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



[gwt-contrib] Re: RR:GwtEventPreview


I agree. I think sometime soon when I get some bandwidth I can provide
some mock container/component classes to demonstrate the desired use
case (say, a structured canvas drawing application ala Visio or
Lombardi)

-Ray


On Tue, Nov 11, 2008 at 12:38 PM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> What is clear is that this is a use case that needs to be  addressed before
> 1.6 ships. However, I think it will actually be a lot easier to talk about
> after the initial patch lands in 1.6/trunk  and is therefore more visible to
> all our users.
>
>   Cheers,
>
> Emily
>
>
>
>
> On Tue, Nov 11, 2008 at 3:00 PM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>
>> If you did not have an event preview defined, then it is only a null
>> check, which are cheap.
>>
>> If you did have one defined you would have had to have two implementations
>> of fireEvent and your inherited version had better call our fireEvent
>> somewhere or else your add/remove handler code will break in mysterious
>> ways, so you will still have the same number of dispatches.
>>
>>
>>
>>
>> On Tue, Nov 11, 2008 at 2:34 PM, Ray Cromwell <[EMAIL PROTECTED]>
>> wrote:
>>>
>>> BTW, I'm also curious as to the performance implications. A subtype of
>>> HandlerManager with override fireEvent() could theoretically be
>>> type-tightened and staticified, even inlined, because the field inside
>>> the calling widgets can typically be declared with a concrete leaf
>>> type (MyHandlerManager manager = ...). With the event preview
>>> mechanism, the dispatch will always be doubly indirect with
>>> null-checks, plus if more than one implementation of the interface
>>> exists that is reachable from module entry point, type tigthening will
>>> be hampered and it will always be a polymorphic dispatch.
>>>
>>> -Ray
>>>
>>> On Tue, Nov 11, 2008 at 11:30 AM, Ray Cromwell <[EMAIL PROTECTED]>
>>> wrote:
>>> > I'm not sure if the event preview mechanism would completely solve all
>>> > the problems, but it appears to offer essentially an "override"
>>> > capability to fireEvent. If you recall our earlier discussions, the
>>> > use case goes something like this:
>>> >
>>> > 1) a virtual widget system exists which implements widgets which are
>>> > not actually backed by any real DOM elements, but rather drawn into a
>>> > Canvas, similar to lightweight components in Swing. (GWT Widget is
>>> > more like an AWT model, with the DOM being the 'peer')
>>> >
>>> > 2) we wish to introduce an event system for these widgets, complete
>>> > with an event propagation model based on component events having the
>>> > capability of propagating to a parent container
>>> >
>>> > 3) Our original discussion was to have the source implement an
>>> > interface like PropagationModel. A subclass of HandlerManager which
>>> > check if source instanceof PropagationModel, and if so, use the
>>> > interface to a) check if the event is a type that should be propagated
>>> > b) check if it hasn't had stopPropagation() called and c) grab the
>>> > parent widget and refire the event.
>>> >
>>> > What I'm not sure of, is if I shoe-horn all this functionality into
>>> > the preview mechanism, if it will still play nice with all the
>>> > fireDepth/queuing stuff that was recently added.
>>> >
>>> >
>>> > -Ray
>>> >
>>> > On Tue, Nov 11, 2008 at 10:37 AM, Emily Crutcher <[EMAIL PROTECTED]>
>>> > wrote:
>>> >> The fireEvent method is currently final  because our
>>> >> addHandler/removeHandler is relying on our version of fireEvents being
>>> >> called because we are handling concurrent adds and removes using an
>>> >> internal
>>> >> counter managed by fireEvent.
>>> >>
>>> >> By the way, as the GwtEventPreview interface is meant to address just
>>> >> this
>>> >> use case, would it work in your case? Not that we are implementing it
>>> >> right
>>> >> now, but it would be good to know if we have a working solution.
>>> >>
>>> >>
>>> >> Also, how important is having a protected widget createHandlers()
>>> >> method?
>>> >> Currently I've been talked out of it under the hypothesis it can be
>>> >> added
>>> >> later.
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> On Tue, Nov 11, 2008 at 12:42 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>> >>>
>>> >>> None that I can see. Kelly, I think you pushed for this clampdown.
>>> >>> Still
>>> >>> want it?
>>> >>> rjrjr
>>> >>>
>>> >>> On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]>
>>> >>> wrote:
>>> 
>>>  I would prefer HandlerManager not be so finalized. I had a real use
>>>  case for creating a version of fireEvent that dealt with DOM-like
>>>  event bubbling for non-DOM events, the effect of freezing
>>>  HandlerManager overrides would deny me the ability of creating a
>>>  EventBubblingHandlerManager. Is there a good reason to prevent
>>>  subclassing and overriding fireEvent?
>>>  -Ray
>>> 
>>> 
>>>  On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL 

[gwt-contrib] [google-web-toolkit commit] r4018 - in branches/1_6_clean_events: reference/code-museum/src/com/google/gwt/museum/client/defa...


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 12:41:10 2008
New Revision: 4018

Added:
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyCodes.java

(contents, props changed)
   - copied, changed from r4000,  
/branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/HasKeyCodes.java
Removed:
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/HasKeyCodes.java
Modified:
 
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
 
branches/1_6_clean_events/samples/mail/src/com/google/gwt/sample/mail/client/AboutDialog.java
 
branches/1_6_clean_events/samples/showcase/src/com/google/gwt/sample/showcase/client/content/other/CwFrame.java
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyCodeEvent.java
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyDownHandler.java
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyUpHandler.java
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseEvent.java
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/L.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/MenuBar.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SuggestBox.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabBar.java
 
branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/Tree.java

Log:
Removed HasKeyCodes interface, instead now we want uses who were inheriting  
constants from KeyboardListener to statically import KeyCodes instead.

Punting on enum issue by removing the buttons from MouseEvent altogether  
and renaming both getKeyCode and getButton

Modified:  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
==
---  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
   
(original)
+++  
branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java
   
Tue Nov 11 12:41:10 2008
@@ -147,13 +147,13 @@
});
button.addMouseDownHandler(new MouseDownHandler() {
  public void onMouseDown(MouseDownEvent event) {
-  event.getButton();
+  event.getNativeButton();
passTest(event.getNativeEvent());
  }
});
button.addMouseUpHandler(new MouseUpHandler() {
  public void onMouseUp(MouseUpEvent event) {
-  event.getButton();
+  event.getNativeButton();
passTest(event.getNativeEvent());
  }
});
@@ -200,7 +200,7 @@
event.isControlKeyDown();
event.isShiftKeyDown();
event.isMetaKeyDown();
-  assert event.getKeyCode() > 0;
+  assert event.getNativeKeyCode() > 0;
passTest(event.getNativeEvent());
  }
});
@@ -210,7 +210,7 @@
event.isControlKeyDown();
event.isShiftKeyDown();
event.isMetaKeyDown();
-  assert event.getKeyCode() > 0;
+  assert event.getNativeKeyCode() > 0;
passTest(event.getNativeEvent());
  }
});

Modified:  
branches/1_6_clean_events/samples/mail/src/com/google/gwt/sample/mail/client/AboutDialog.java
==
---  
branches/1_6_clean_events/samples/mail/src/com/google/gwt/sample/mail/client/AboutDialog.java

(original)
+++  
branches/1_6_clean_events/samples/mail/src/com/google/gwt/sample/mail/client/AboutDialog.java

Tue Nov 11 12:41:10 2008
@@ -17,7 +17,7 @@

  import com.google.gwt.event.dom.client.ClickEvent;
  import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.HasKeyCodes;
+import com.google.gwt.event.dom.client.KeyCodes;
  import com.google.gwt.user.client.ui.Button;
  import com.google.gwt.user.client.ui.DialogBox;
  import com.google.gwt.user.client.ui.HTML;
@@ -60,8 +60,8 @@
  // Use the popup's key preview hooks to close the dialog when either
  // enter or escape is pressed.
  switch (key) {
-  case HasKeyCodes.KEY_ENTER:
-  case HasKeyCodes.KEY_ESCAPE:
+  case KeyCodes.KEY_ENTER:
+  case KeyCodes.KEY_ESCAPE:
  hide();
  break;
  }

Modified:  
branches/1_6_clean_events/samples/showcase/src/com/google/gwt/sample/showcase/client/content/other/CwFrame.java
==
---  
branches/1_6_clean_events/samples/showcase/src/com/google/gwt/sample/showcase/client/content/other/CwFrame.java
  
(original)
+++  
branches/1_6_clean_events/samples/showcase/src/com/goo

[gwt-contrib] Re: RR:GwtEventPreview

What is clear is that this is a use case that needs to be  addressed before
1.6 ships. However, I think it will actually be a lot easier to talk about
after the initial patch lands in 1.6/trunk  and is therefore more visible to
all our users.

  Cheers,

Emily




On Tue, Nov 11, 2008 at 3:00 PM, Emily Crutcher <[EMAIL PROTECTED]> wrote:

> If you did not have an event preview defined, then it is only a null check,
> which are cheap.
>
> If you did have one defined you would have had to have two implementations
> of fireEvent and your inherited version had better call our fireEvent
> somewhere or else your add/remove handler code will break in mysterious
> ways, so you will still have the same number of dispatches.
>
>
>
>
>
> On Tue, Nov 11, 2008 at 2:34 PM, Ray Cromwell <[EMAIL PROTECTED]>wrote:
>
>> BTW, I'm also curious as to the performance implications. A subtype of
>> HandlerManager with override fireEvent() could theoretically be
>> type-tightened and staticified, even inlined, because the field inside
>> the calling widgets can typically be declared with a concrete leaf
>> type (MyHandlerManager manager = ...). With the event preview
>> mechanism, the dispatch will always be doubly indirect with
>> null-checks, plus if more than one implementation of the interface
>> exists that is reachable from module entry point, type tigthening will
>> be hampered and it will always be a polymorphic dispatch.
>>
>> -Ray
>>
>> On Tue, Nov 11, 2008 at 11:30 AM, Ray Cromwell <[EMAIL PROTECTED]>
>> wrote:
>> > I'm not sure if the event preview mechanism would completely solve all
>> > the problems, but it appears to offer essentially an "override"
>> > capability to fireEvent. If you recall our earlier discussions, the
>> > use case goes something like this:
>> >
>> > 1) a virtual widget system exists which implements widgets which are
>> > not actually backed by any real DOM elements, but rather drawn into a
>> > Canvas, similar to lightweight components in Swing. (GWT Widget is
>> > more like an AWT model, with the DOM being the 'peer')
>> >
>> > 2) we wish to introduce an event system for these widgets, complete
>> > with an event propagation model based on component events having the
>> > capability of propagating to a parent container
>> >
>> > 3) Our original discussion was to have the source implement an
>> > interface like PropagationModel. A subclass of HandlerManager which
>> > check if source instanceof PropagationModel, and if so, use the
>> > interface to a) check if the event is a type that should be propagated
>> > b) check if it hasn't had stopPropagation() called and c) grab the
>> > parent widget and refire the event.
>> >
>> > What I'm not sure of, is if I shoe-horn all this functionality into
>> > the preview mechanism, if it will still play nice with all the
>> > fireDepth/queuing stuff that was recently added.
>> >
>> >
>> > -Ray
>> >
>> > On Tue, Nov 11, 2008 at 10:37 AM, Emily Crutcher <[EMAIL PROTECTED]>
>> wrote:
>> >> The fireEvent method is currently final  because our
>> >> addHandler/removeHandler is relying on our version of fireEvents being
>> >> called because we are handling concurrent adds and removes using an
>> internal
>> >> counter managed by fireEvent.
>> >>
>> >> By the way, as the GwtEventPreview interface is meant to address just
>> this
>> >> use case, would it work in your case? Not that we are implementing it
>> right
>> >> now, but it would be good to know if we have a working solution.
>> >>
>> >>
>> >> Also, how important is having a protected widget createHandlers()
>> method?
>> >> Currently I've been talked out of it under the hypothesis it can be
>> added
>> >> later.
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> On Tue, Nov 11, 2008 at 12:42 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>> >>>
>> >>> None that I can see. Kelly, I think you pushed for this clampdown.
>> Still
>> >>> want it?
>> >>> rjrjr
>> >>>
>> >>> On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]>
>> >>> wrote:
>> 
>>  I would prefer HandlerManager not be so finalized. I had a real use
>>  case for creating a version of fireEvent that dealt with DOM-like
>>  event bubbling for non-DOM events, the effect of freezing
>>  HandlerManager overrides would deny me the ability of creating a
>>  EventBubblingHandlerManager. Is there a good reason to prevent
>>  subclassing and overriding fireEvent?
>>  -Ray
>> 
>> 
>>  On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]>
>> wrote:
>>  > Do you have a proposal in mind? Everything we tightened down we had
>>  > good
>>  > reason to do so.
>>  > On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]>
>> wrote:
>>  >>
>>  >> And as Emily and I just chatted offline, if we're loosening things
>> up
>>  >> I'd
>>  >> rather see us allow folks to provide their own HandlerManager
>>  >> implementation
>>  >> (or 

[gwt-contrib] Re: Turning off runtime checks

How about we start a convention for -Xunsafe:yyy flags, like

-Xunsafe:disableArrayIndexChecks
-Xunsafe:disableClassCastChecks
-Xunsafe:disableDefensiveCollections


then we'd want a roll-up flag like

-Xunsafe:all


Of course, we'd want to not document these.

@Ray: The compiler guys are slammed right now. But if you have anything
resembling a patch that could start this pattern, I think that's the only
realistic way to get this done in the short term. Also, I'd like to see if
Scott/Lex/anyone else disagree before we proceeded down this path.

On Tue, Nov 11, 2008 at 2:47 PM, Ray Cromwell <[EMAIL PROTECTED]> wrote:

>
> Is there any objection to changing the checkIndex() method in
> AbstractList to an assert? I suppose one might want JRE behavior in HM
> even if assertions are disabled, but perhaps we could just check
> !GWT.isScript() and use if vs assert. I noticed that if you hammer on
> ArrayList, a very large number of calls are generated to checkIndex.
> Current, about 1.5% of runtime. There's also it's friend, setCheck
> too.
>
> These seem like easy performance wins with very little work, of
> course, we want the compiler to continue to get better at well, like
> doing range check elimination where it can. :)
>
> -Ray
>
> On Tue, Nov 11, 2008 at 7:54 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
> > On Tue, Nov 11, 2008 at 10:51 AM, Isaac Truett <[EMAIL PROTECTED]>
> wrote:
> >>
> >> > I'm curious what things you're referring to here. Generally, I think
> >> > we're
> >> > pretty open to more checks in hosted mode. As an example, hosted mode
> >> > always
> >> > runs with assertions enabled.
> >>
> >> More assertions are exactly what I've been hoping for. The one case
> >> that's stuck with me was issue 2365. As I understand it, those
> >> assertions (and the check method, if only called in assertions) will
> >> all be compiled away, so there's no size or performance penalty in web
> >> mode.
> >
> > That's exactly right. And as we add new library classes, I anticipate
> we'll
> > be doing a lot more assertion checking versus if/then/throw type tests.
> This
> > is one area where I honestly believe the traditional Java patterns are
> just
> > plain wrong: coding that's far too defensive.
> > >
> >
>
> >
>

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



[gwt-contrib] Re: Turning off runtime checks

Our JRE isn't run in hosted mode, so that shouldn't be an issue.
Let's use the pattern of calling checkIndex within an assert, and having
checkIndex always return true if it doesn't throw.

On Tue, Nov 11, 2008 at 2:47 PM, Ray Cromwell <[EMAIL PROTECTED]> wrote:

>
> Is there any objection to changing the checkIndex() method in
> AbstractList to an assert? I suppose one might want JRE behavior in HM
> even if assertions are disabled, but perhaps we could just check
> !GWT.isScript() and use if vs assert. I noticed that if you hammer on
> ArrayList, a very large number of calls are generated to checkIndex.
> Current, about 1.5% of runtime. There's also it's friend, setCheck
> too.
>
> These seem like easy performance wins with very little work, of
> course, we want the compiler to continue to get better at well, like
> doing range check elimination where it can. :)
>
> -Ray
>
> On Tue, Nov 11, 2008 at 7:54 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
> > On Tue, Nov 11, 2008 at 10:51 AM, Isaac Truett <[EMAIL PROTECTED]>
> wrote:
> >>
> >> > I'm curious what things you're referring to here. Generally, I think
> >> > we're
> >> > pretty open to more checks in hosted mode. As an example, hosted mode
> >> > always
> >> > runs with assertions enabled.
> >>
> >> More assertions are exactly what I've been hoping for. The one case
> >> that's stuck with me was issue 2365. As I understand it, those
> >> assertions (and the check method, if only called in assertions) will
> >> all be compiled away, so there's no size or performance penalty in web
> >> mode.
> >
> > That's exactly right. And as we add new library classes, I anticipate
> we'll
> > be doing a lot more assertion checking versus if/then/throw type tests.
> This
> > is one area where I honestly believe the traditional Java patterns are
> just
> > plain wrong: coding that's far too defensive.
> > >
> >
>
> >
>

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



[gwt-contrib] Re: RR:GwtEventPreview

If you did not have an event preview defined, then it is only a null check,
which are cheap.

If you did have one defined you would have had to have two implementations
of fireEvent and your inherited version had better call our fireEvent
somewhere or else your add/remove handler code will break in mysterious
ways, so you will still have the same number of dispatches.




On Tue, Nov 11, 2008 at 2:34 PM, Ray Cromwell <[EMAIL PROTECTED]> wrote:

> BTW, I'm also curious as to the performance implications. A subtype of
> HandlerManager with override fireEvent() could theoretically be
> type-tightened and staticified, even inlined, because the field inside
> the calling widgets can typically be declared with a concrete leaf
> type (MyHandlerManager manager = ...). With the event preview
> mechanism, the dispatch will always be doubly indirect with
> null-checks, plus if more than one implementation of the interface
> exists that is reachable from module entry point, type tigthening will
> be hampered and it will always be a polymorphic dispatch.
>
> -Ray
>
> On Tue, Nov 11, 2008 at 11:30 AM, Ray Cromwell <[EMAIL PROTECTED]>
> wrote:
> > I'm not sure if the event preview mechanism would completely solve all
> > the problems, but it appears to offer essentially an "override"
> > capability to fireEvent. If you recall our earlier discussions, the
> > use case goes something like this:
> >
> > 1) a virtual widget system exists which implements widgets which are
> > not actually backed by any real DOM elements, but rather drawn into a
> > Canvas, similar to lightweight components in Swing. (GWT Widget is
> > more like an AWT model, with the DOM being the 'peer')
> >
> > 2) we wish to introduce an event system for these widgets, complete
> > with an event propagation model based on component events having the
> > capability of propagating to a parent container
> >
> > 3) Our original discussion was to have the source implement an
> > interface like PropagationModel. A subclass of HandlerManager which
> > check if source instanceof PropagationModel, and if so, use the
> > interface to a) check if the event is a type that should be propagated
> > b) check if it hasn't had stopPropagation() called and c) grab the
> > parent widget and refire the event.
> >
> > What I'm not sure of, is if I shoe-horn all this functionality into
> > the preview mechanism, if it will still play nice with all the
> > fireDepth/queuing stuff that was recently added.
> >
> >
> > -Ray
> >
> > On Tue, Nov 11, 2008 at 10:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> >> The fireEvent method is currently final  because our
> >> addHandler/removeHandler is relying on our version of fireEvents being
> >> called because we are handling concurrent adds and removes using an
> internal
> >> counter managed by fireEvent.
> >>
> >> By the way, as the GwtEventPreview interface is meant to address just
> this
> >> use case, would it work in your case? Not that we are implementing it
> right
> >> now, but it would be good to know if we have a working solution.
> >>
> >>
> >> Also, how important is having a protected widget createHandlers()
> method?
> >> Currently I've been talked out of it under the hypothesis it can be
> added
> >> later.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Tue, Nov 11, 2008 at 12:42 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:
> >>>
> >>> None that I can see. Kelly, I think you pushed for this clampdown.
> Still
> >>> want it?
> >>> rjrjr
> >>>
> >>> On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]>
> >>> wrote:
> 
>  I would prefer HandlerManager not be so finalized. I had a real use
>  case for creating a version of fireEvent that dealt with DOM-like
>  event bubbling for non-DOM events, the effect of freezing
>  HandlerManager overrides would deny me the ability of creating a
>  EventBubblingHandlerManager. Is there a good reason to prevent
>  subclassing and overriding fireEvent?
>  -Ray
> 
> 
>  On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]>
> wrote:
>  > Do you have a proposal in mind? Everything we tightened down we had
>  > good
>  > reason to do so.
>  > On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]>
> wrote:
>  >>
>  >> And as Emily and I just chatted offline, if we're loosening things
> up
>  >> I'd
>  >> rather see us allow folks to provide their own HandlerManager
>  >> implementation
>  >> (or wrapper around ours) than just try to predict the one or two
> hooks
>  >> they'll find useful.
>  >> rjrjr
>  >>
>  >> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]>
>  >> wrote:
>  >>>
>  >>> We have made the fireEvents() final in handler manager and made it
>  >>> impossible for users to replace the handler manager in widget, so
> I
>  >>> think
>  >>> this change would be necessary to preserve the full spirit of what
> 

[gwt-contrib] Re: RR:GwtEventPreview

On Tue, Nov 11, 2008 at 2:30 PM, Ray Cromwell <[EMAIL PROTECTED]> wrote:

> I'm not sure if the event preview mechanism would completely solve all
> the problems, but it appears to offer essentially an "override"
> capability to fireEvent. If you recall our earlier discussions, the
> use case goes something like this:
>
>
> What I'm not sure of, is if I shoe-horn all this functionality into
> the preview mechanism, if it will still play nice with all the
> fireDepth/queuing stuff that was recently added.
>
>
Yes, that was the use case that I has in mind, and it plays nicely with the
fireDepth/queuing mechanism.   The use case in analogous to onAttach and
onLoad, in that basically we need to be able to perform setup and teardown
actions before/after the user code runs. Originally I had a protected method
onBeforeEventFired, but Ray R. pointed out that if we instead delegated to a
listener, it would be more flexible then forcing everyone to subclass
handler manager while still allowing us to subclass handler manager when
required.

In your use case, I was actually assuming that your PropagationModel would
implement GwtEventPreview directly, and be installed where ever appropriate,
thereby avoiding a whole bunch of subclasses of widgets and the handler
manager 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: Turning off runtime checks


Is there any objection to changing the checkIndex() method in
AbstractList to an assert? I suppose one might want JRE behavior in HM
even if assertions are disabled, but perhaps we could just check
!GWT.isScript() and use if vs assert. I noticed that if you hammer on
ArrayList, a very large number of calls are generated to checkIndex.
Current, about 1.5% of runtime. There's also it's friend, setCheck
too.

These seem like easy performance wins with very little work, of
course, we want the compiler to continue to get better at well, like
doing range check elimination where it can. :)

-Ray

On Tue, Nov 11, 2008 at 7:54 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
> On Tue, Nov 11, 2008 at 10:51 AM, Isaac Truett <[EMAIL PROTECTED]> wrote:
>>
>> > I'm curious what things you're referring to here. Generally, I think
>> > we're
>> > pretty open to more checks in hosted mode. As an example, hosted mode
>> > always
>> > runs with assertions enabled.
>>
>> More assertions are exactly what I've been hoping for. The one case
>> that's stuck with me was issue 2365. As I understand it, those
>> assertions (and the check method, if only called in assertions) will
>> all be compiled away, so there's no size or performance penalty in web
>> mode.
>
> That's exactly right. And as we add new library classes, I anticipate we'll
> be doing a lot more assertion checking versus if/then/throw type tests. This
> is one area where I honestly believe the traditional Java patterns are just
> plain wrong: coding that's far too defensive.
> >
>

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



[gwt-contrib] Re: Linker artifacts in WAR


Bob
  Something tells me the packer proposal might be very useful. To
package GWT apps for offline Android execution, Android demands that
various artifacts be placed in precise directories on disk before
being packaged into an APK. Maybe Thomas can comment about how this
would impact his GWT-in-the-Air library.

-Ray


On Tue, Nov 11, 2008 at 11:09 AM, BobV <[EMAIL PROTECTED]> wrote:
>
> On Tue, Nov 11, 2008 at 2:02 PM, Lex Spoon <[EMAIL PROTECTED]> wrote:
>> One big question: why a separate packer step?  My naive understanding
>> is that the point of a linker is to decide where the various bits of
>> compiler output will go on disk.  Is there a reason to discontinue
>> that?  It sounds possibly quite confusing to have both packers and
>> linkers that the user must choose.
>
> The idea of a packer is separable (the thing that actually writes bits
> to disk), but not currently separate.  I'm just calling it out as an
> affirmation that we don't want to do this.
>
> --
> Bob Vawter
> Google Web Toolkit Team
>
> >
>

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



[gwt-contrib] Re: RR:GwtEventPreview


BTW, I'm also curious as to the performance implications. A subtype of
HandlerManager with override fireEvent() could theoretically be
type-tightened and staticified, even inlined, because the field inside
the calling widgets can typically be declared with a concrete leaf
type (MyHandlerManager manager = ...). With the event preview
mechanism, the dispatch will always be doubly indirect with
null-checks, plus if more than one implementation of the interface
exists that is reachable from module entry point, type tigthening will
be hampered and it will always be a polymorphic dispatch.

-Ray

On Tue, Nov 11, 2008 at 11:30 AM, Ray Cromwell <[EMAIL PROTECTED]> wrote:
> I'm not sure if the event preview mechanism would completely solve all
> the problems, but it appears to offer essentially an "override"
> capability to fireEvent. If you recall our earlier discussions, the
> use case goes something like this:
>
> 1) a virtual widget system exists which implements widgets which are
> not actually backed by any real DOM elements, but rather drawn into a
> Canvas, similar to lightweight components in Swing. (GWT Widget is
> more like an AWT model, with the DOM being the 'peer')
>
> 2) we wish to introduce an event system for these widgets, complete
> with an event propagation model based on component events having the
> capability of propagating to a parent container
>
> 3) Our original discussion was to have the source implement an
> interface like PropagationModel. A subclass of HandlerManager which
> check if source instanceof PropagationModel, and if so, use the
> interface to a) check if the event is a type that should be propagated
> b) check if it hasn't had stopPropagation() called and c) grab the
> parent widget and refire the event.
>
> What I'm not sure of, is if I shoe-horn all this functionality into
> the preview mechanism, if it will still play nice with all the
> fireDepth/queuing stuff that was recently added.
>
>
> -Ray
>
> On Tue, Nov 11, 2008 at 10:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>> The fireEvent method is currently final  because our
>> addHandler/removeHandler is relying on our version of fireEvents being
>> called because we are handling concurrent adds and removes using an internal
>> counter managed by fireEvent.
>>
>> By the way, as the GwtEventPreview interface is meant to address just this
>> use case, would it work in your case? Not that we are implementing it right
>> now, but it would be good to know if we have a working solution.
>>
>>
>> Also, how important is having a protected widget createHandlers() method?
>> Currently I've been talked out of it under the hypothesis it can be added
>> later.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Tue, Nov 11, 2008 at 12:42 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>>
>>> None that I can see. Kelly, I think you pushed for this clampdown. Still
>>> want it?
>>> rjrjr
>>>
>>> On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]>
>>> wrote:

 I would prefer HandlerManager not be so finalized. I had a real use
 case for creating a version of fireEvent that dealt with DOM-like
 event bubbling for non-DOM events, the effect of freezing
 HandlerManager overrides would deny me the ability of creating a
 EventBubblingHandlerManager. Is there a good reason to prevent
 subclassing and overriding fireEvent?
 -Ray


 On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
 > Do you have a proposal in mind? Everything we tightened down we had
 > good
 > reason to do so.
 > On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
 >>
 >> And as Emily and I just chatted offline, if we're loosening things up
 >> I'd
 >> rather see us allow folks to provide their own HandlerManager
 >> implementation
 >> (or wrapper around ours) than just try to predict the one or two hooks
 >> they'll find useful.
 >> rjrjr
 >>
 >> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]>
 >> wrote:
 >>>
 >>> We have made the fireEvents() final in handler manager and made it
 >>> impossible for users to replace the handler manager in widget, so I
 >>> think
 >>> this change would be necessary to preserve the full spirit of what
 >>> we've
 >>> been doing to upgrade the user's event system.
 >>>
 >>> However,  we can tell people to use super-source to replace their
 >>> handler
 >>> manager class instead.  It is not as clean of a solution, but it will
 >>> work,
 >>> and we can wait to see if anyone truly howls for this feature and put
 >>> it
 >>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
 >>>
 >>>
 >>>Cheers,
 >>>
 >>>   Emily
 >>>
 >>>
 >>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]>
 >>> wrote:
 
  Is this really part of the handl

[gwt-contrib] Re: RR:GwtEventPreview


I'm not sure if the event preview mechanism would completely solve all
the problems, but it appears to offer essentially an "override"
capability to fireEvent. If you recall our earlier discussions, the
use case goes something like this:

1) a virtual widget system exists which implements widgets which are
not actually backed by any real DOM elements, but rather drawn into a
Canvas, similar to lightweight components in Swing. (GWT Widget is
more like an AWT model, with the DOM being the 'peer')

2) we wish to introduce an event system for these widgets, complete
with an event propagation model based on component events having the
capability of propagating to a parent container

3) Our original discussion was to have the source implement an
interface like PropagationModel. A subclass of HandlerManager which
check if source instanceof PropagationModel, and if so, use the
interface to a) check if the event is a type that should be propagated
b) check if it hasn't had stopPropagation() called and c) grab the
parent widget and refire the event.

What I'm not sure of, is if I shoe-horn all this functionality into
the preview mechanism, if it will still play nice with all the
fireDepth/queuing stuff that was recently added.


-Ray

On Tue, Nov 11, 2008 at 10:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> The fireEvent method is currently final  because our
> addHandler/removeHandler is relying on our version of fireEvents being
> called because we are handling concurrent adds and removes using an internal
> counter managed by fireEvent.
>
> By the way, as the GwtEventPreview interface is meant to address just this
> use case, would it work in your case? Not that we are implementing it right
> now, but it would be good to know if we have a working solution.
>
>
> Also, how important is having a protected widget createHandlers() method?
> Currently I've been talked out of it under the hypothesis it can be added
> later.
>
>
>
>
>
>
>
>
>
> On Tue, Nov 11, 2008 at 12:42 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>
>> None that I can see. Kelly, I think you pushed for this clampdown. Still
>> want it?
>> rjrjr
>>
>> On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]>
>> wrote:
>>>
>>> I would prefer HandlerManager not be so finalized. I had a real use
>>> case for creating a version of fireEvent that dealt with DOM-like
>>> event bubbling for non-DOM events, the effect of freezing
>>> HandlerManager overrides would deny me the ability of creating a
>>> EventBubblingHandlerManager. Is there a good reason to prevent
>>> subclassing and overriding fireEvent?
>>> -Ray
>>>
>>>
>>> On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>> > Do you have a proposal in mind? Everything we tightened down we had
>>> > good
>>> > reason to do so.
>>> > On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>> >>
>>> >> And as Emily and I just chatted offline, if we're loosening things up
>>> >> I'd
>>> >> rather see us allow folks to provide their own HandlerManager
>>> >> implementation
>>> >> (or wrapper around ours) than just try to predict the one or two hooks
>>> >> they'll find useful.
>>> >> rjrjr
>>> >>
>>> >> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]>
>>> >> wrote:
>>> >>>
>>> >>> We have made the fireEvents() final in handler manager and made it
>>> >>> impossible for users to replace the handler manager in widget, so I
>>> >>> think
>>> >>> this change would be necessary to preserve the full spirit of what
>>> >>> we've
>>> >>> been doing to upgrade the user's event system.
>>> >>>
>>> >>> However,  we can tell people to use super-source to replace their
>>> >>> handler
>>> >>> manager class instead.  It is not as clean of a solution, but it will
>>> >>> work,
>>> >>> and we can wait to see if anyone truly howls for this feature and put
>>> >>> it
>>> >>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
>>> >>>
>>> >>>
>>> >>>Cheers,
>>> >>>
>>> >>>   Emily
>>> >>>
>>> >>>
>>> >>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]>
>>> >>> wrote:
>>> 
>>>  Is this really part of the handler update? If this can wait, let's
>>>  wait.
>>>  We need to wrap up the changes to handlers ASAP.
>>>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]>
>>>  wrote:
>>> >
>>> > I've managed to convince myself that it would be a trivial amount
>>> > of
>>> > work to introduce a GwtEventPreview interface into the events
>>> > package and
>>> > that the change would be a good one.  In specific we would have:
>>> >
>>> > public interface GwtEventPreview {
>>> > boolean onGwtEventPreview(GwtEvent event);
>>> > }
>>> >
>>> > and, in HandlerManager:
>>> >
>>> > public void setGwtEventPreview(GwtEventPreview preview)
>>> >
>>> >
>>> > Then, in the final fireEvent method, if a preview has been
>>>

[gwt-contrib] Re: Linker artifacts in WAR


On Tue, Nov 11, 2008 at 2:02 PM, Lex Spoon <[EMAIL PROTECTED]> wrote:
> One big question: why a separate packer step?  My naive understanding
> is that the point of a linker is to decide where the various bits of
> compiler output will go on disk.  Is there a reason to discontinue
> that?  It sounds possibly quite confusing to have both packers and
> linkers that the user must choose.

The idea of a packer is separable (the thing that actually writes bits
to disk), but not currently separate.  I'm just calling it out as an
affirmation that we don't want to do this.

-- 
Bob Vawter
Google Web Toolkit Team

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



[gwt-contrib] Re: Linker artifacts in WAR


On Tue, Nov 11, 2008 at 11:34 AM, BobV <[EMAIL PROTECTED]> wrote:
> Here's a strawman proposal for handling different types of
> EmittedArtifacts in the Linker API and how that would interact with a
> WAR output format.

Cool.

First, it's great to have a list of the categories of output.  There
seem to not be very many.  The following names seem straightforward to
me:

browser (not listed): things that need to be served out to the browser
server (listed as "context"): things needed on the server, but not
being sent out
extra: other stuff, such as SOYC output and log files


One big question: why a separate packer step?  My naive understanding
is that the point of a linker is to decide where the various bits of
compiler output will go on disk.  Is there a reason to discontinue
that?  It sounds possibly quite confusing to have both packers and
linkers that the user must choose.

With a linker-only strategy, wouldn't all we need to do would be:

1. Update the artifacts to match the new categories.
2. Update the linkers to deal with these.


Someone wanting a non-war deployment would have to either pick out the
pieces from one of the standard linkers, or write their own linker.
Both seem pretty easy.


Lex

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



[gwt-contrib] [google-web-toolkit commit] r4017 - branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 10:43:20 2008
New Revision: 4017

Modified:
 
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/DomEvent.java

Log:
Fix NPE in DomEvent#fireNativeEvent, reviewed by ecc

Modified:  
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/DomEvent.java
==
---  
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/DomEvent.java
 
(original)
+++  
branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/DomEvent.java
 
Tue Nov 11 10:43:20 2008
@@ -109,12 +109,14 @@
 * Fires the given native event on the specified handlers.
 *
 * @param nativeEvent the native event
-   * @param handlers the event manager containing the handlers to fire
+   * @param handlers the event manager containing the handlers to fire  
(may be
+   *  null)
 */
public static void fireNativeEvent(Event nativeEvent, HandlerManager  
handlers) {
-if (registered != null) {
+assert nativeEvent != null : "nativeEvent must not be null";
+if (registered != null && handlers != null) {
final DomEvent.Type typeKey =  
registered.unsafeGet(nativeEvent.getType());
-  if (handlers != null) {
+  if (typeKey != null) {
  // Store and restore native event just in case we are in recursive
  // loop.
  Event currentNative = typeKey.flyweight.nativeEvent;

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



[gwt-contrib] Re: RR:GwtEventPreview

The fireEvent method is currently final  because our
addHandler/removeHandler is relying on our version of fireEvents being
called because we are handling concurrent adds and removes using an internal
counter managed by fireEvent.

By the way, as the GwtEventPreview interface is meant to address just this
use case, would it work in your case? Not that we are implementing it right
now, but it would be good to know if we have a working solution.


Also, how important is having a protected widget createHandlers() method?
Currently I've been talked out of it under the hypothesis it can be added
later.









On Tue, Nov 11, 2008 at 12:42 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:

> None that I can see. Kelly, I think you pushed for this clampdown. Still
> want it?
> rjrjr
>
>
> On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]>wrote:
>
>> I would prefer HandlerManager not be so finalized. I had a real use
>> case for creating a version of fireEvent that dealt with DOM-like
>> event bubbling for non-DOM events, the effect of freezing
>> HandlerManager overrides would deny me the ability of creating a
>> EventBubblingHandlerManager. Is there a good reason to prevent
>> subclassing and overriding fireEvent?
>> -Ray
>>
>>
>> On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>> > Do you have a proposal in mind? Everything we tightened down we had good
>> > reason to do so.
>> > On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>> >>
>> >> And as Emily and I just chatted offline, if we're loosening things up
>> I'd
>> >> rather see us allow folks to provide their own HandlerManager
>> implementation
>> >> (or wrapper around ours) than just try to predict the one or two hooks
>> >> they'll find useful.
>> >> rjrjr
>> >>
>> >> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]>
>> wrote:
>> >>>
>> >>> We have made the fireEvents() final in handler manager and made it
>> >>> impossible for users to replace the handler manager in widget, so I
>> think
>> >>> this change would be necessary to preserve the full spirit of what
>> we've
>> >>> been doing to upgrade the user's event system.
>> >>>
>> >>> However,  we can tell people to use super-source to replace their
>> handler
>> >>> manager class instead.  It is not as clean of a solution, but it will
>> work,
>> >>> and we can wait to see if anyone truly howls for this feature and put
>> it
>> >>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
>> >>>
>> >>>
>> >>>Cheers,
>> >>>
>> >>>   Emily
>> >>>
>> >>>
>> >>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]>
>> wrote:
>> 
>>  Is this really part of the handler update? If this can wait, let's
>> wait.
>>  We need to wrap up the changes to handlers ASAP.
>>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]>
>> wrote:
>> >
>> > I've managed to convince myself that it would be a trivial amount of
>> > work to introduce a GwtEventPreview interface into the events
>> package and
>> > that the change would be a good one.  In specific we would have:
>> >
>> > public interface GwtEventPreview {
>> > boolean onGwtEventPreview(GwtEvent event);
>> > }
>> >
>> > and, in HandlerManager:
>> >
>> > public void setGwtEventPreview(GwtEventPreview preview)
>> >
>> >
>> > Then, in the final fireEvent method, if a preview has been
>> installed,
>> > the event is routed through the preview first and is only fired if
>> the
>> > preview returns true.
>> > Can anyone think of any problems with this logic,  any reason this
>> > change would take more then a few minutes to create, or
>> > any potentially better solutions which we might want to use instead?
>>  As we
>> > can certainly wait until GWT 2.0 to introduce something like this if
>> we can
>> > think of any conceivable objections.
>> >
>> > 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: RR:GwtEventPreview

None that I can see. Kelly, I think you pushed for this clampdown. Still
want it?
rjrjr

On Tue, Nov 11, 2008 at 9:41 AM, Ray Cromwell <[EMAIL PROTECTED]> wrote:

> I would prefer HandlerManager not be so finalized. I had a real use
> case for creating a version of fireEvent that dealt with DOM-like
> event bubbling for non-DOM events, the effect of freezing
> HandlerManager overrides would deny me the ability of creating a
> EventBubblingHandlerManager. Is there a good reason to prevent
> subclassing and overriding fireEvent?
> -Ray
>
>
> On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> > Do you have a proposal in mind? Everything we tightened down we had good
> > reason to do so.
> > On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
> >>
> >> And as Emily and I just chatted offline, if we're loosening things up
> I'd
> >> rather see us allow folks to provide their own HandlerManager
> implementation
> >> (or wrapper around ours) than just try to predict the one or two hooks
> >> they'll find useful.
> >> rjrjr
> >>
> >> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> >>>
> >>> We have made the fireEvents() final in handler manager and made it
> >>> impossible for users to replace the handler manager in widget, so I
> think
> >>> this change would be necessary to preserve the full spirit of what
> we've
> >>> been doing to upgrade the user's event system.
> >>>
> >>> However,  we can tell people to use super-source to replace their
> handler
> >>> manager class instead.  It is not as clean of a solution, but it will
> work,
> >>> and we can wait to see if anyone truly howls for this feature and put
> it
> >>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
> >>>
> >>>
> >>>Cheers,
> >>>
> >>>   Emily
> >>>
> >>>
> >>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]>
> wrote:
> 
>  Is this really part of the handler update? If this can wait, let's
> wait.
>  We need to wrap up the changes to handlers ASAP.
>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]>
> wrote:
> >
> > I've managed to convince myself that it would be a trivial amount of
> > work to introduce a GwtEventPreview interface into the events package
> and
> > that the change would be a good one.  In specific we would have:
> >
> > public interface GwtEventPreview {
> > boolean onGwtEventPreview(GwtEvent event);
> > }
> >
> > and, in HandlerManager:
> >
> > public void setGwtEventPreview(GwtEventPreview preview)
> >
> >
> > Then, in the final fireEvent method, if a preview has been installed,
> > the event is routed through the preview first and is only fired if
> the
> > preview returns true.
> > Can anyone think of any problems with this logic,  any reason this
> > change would take more then a few minutes to create, or
> > any potentially better solutions which we might want to use instead?
>  As we
> > can certainly wait until GWT 2.0 to introduce something like this if
> we can
> > think of any conceivable objections.
> >
> > 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: RR:GwtEventPreview


I would prefer HandlerManager not be so finalized. I had a real use
case for creating a version of fireEvent that dealt with DOM-like
event bubbling for non-DOM events, the effect of freezing
HandlerManager overrides would deny me the ability of creating a
EventBubblingHandlerManager. Is there a good reason to prevent
subclassing and overriding fireEvent?
-Ray


On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> Do you have a proposal in mind? Everything we tightened down we had good
> reason to do so.
> On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>
>> And as Emily and I just chatted offline, if we're loosening things up I'd
>> rather see us allow folks to provide their own HandlerManager implementation
>> (or wrapper around ours) than just try to predict the one or two hooks
>> they'll find useful.
>> rjrjr
>>
>> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>>
>>> We have made the fireEvents() final in handler manager and made it
>>> impossible for users to replace the handler manager in widget, so I think
>>> this change would be necessary to preserve the full spirit of what we've
>>> been doing to upgrade the user's event system.
>>>
>>> However,  we can tell people to use super-source to replace their handler
>>> manager class instead.  It is not as clean of a solution, but it will work,
>>> and we can wait to see if anyone truly howls for this feature and put it
>>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
>>>
>>>
>>>Cheers,
>>>
>>>   Emily
>>>
>>>
>>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:

 Is this really part of the handler update? If this can wait, let's wait.
 We need to wrap up the changes to handlers ASAP.
 On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>
> I've managed to convince myself that it would be a trivial amount of
> work to introduce a GwtEventPreview interface into the events package and
> that the change would be a good one.  In specific we would have:
>
> public interface GwtEventPreview {
> boolean onGwtEventPreview(GwtEvent event);
> }
>
> and, in HandlerManager:
>
> public void setGwtEventPreview(GwtEventPreview preview)
>
>
> Then, in the final fireEvent method, if a preview has been installed,
> the event is routed through the preview first and is only fired if the
> preview returns true.
> Can anyone think of any problems with this logic,  any reason this
> change would take more then a few minutes to create, or
> any potentially better solutions which we might want to use instead?  As 
> we
> can certainly wait until GWT 2.0 to introduce something like this if we 
> can
> think of any conceivable objections.
>
> 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: RR:GwtEventPreview

Actually, we also should get some good feedback from the first gwt 1.6
milestone. That will also  help us calibrate how important this feature is
to folks, and we can always introduce something like it after the milestone
if it seems to be very much missed.


On Tue, Nov 11, 2008 at 11:36 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:

> The only proposal I have in mind right now is that we stop messing with
> stuff and get the branch merged.
> rjrjr
>
>
> On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>
>> Do you have a proposal in mind? Everything we tightened down we had good
>> reason to do so.
>>
>> On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>
>>> And as Emily and I just chatted offline, if we're loosening things up I'd
>>> rather see us allow folks to provide their own HandlerManager implementation
>>> (or wrapper around ours) than just try to predict the one or two hooks
>>> they'll find useful.
>>> rjrjr
>>>
>>>
>>> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>>
 We have made the fireEvents() final in handler manager and made it
 impossible for users to replace the handler manager in widget, so I think
 this change would be necessary to preserve the full spirit of what we've
 been doing to upgrade the user's event system.

 However,  we can tell people to use super-source to replace their
 handler manager class instead.  It is not as clean of a solution, but it
 will work, and we can wait to see if anyone truly howls for this feature 
 and
 put it into gwt 2.0 instead, then it can be a cool upgrade instead :-).


Cheers,

   Emily



 On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]>wrote:

> Is this really part of the handler update? If this can wait, let's
> wait. We need to wrap up the changes to handlers ASAP.
>
>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]>wrote:
>
>> I've managed to convince myself that it would be a trivial amount of
>> work to introduce a GwtEventPreview interface into the events package and
>> that the change would be a good one.  In specific we would have:
>>
>>
>> public interface GwtEventPreview {
>> boolean onGwtEventPreview(GwtEvent event);
>> }
>>
>>
>> and, in HandlerManager:
>>
>> public void setGwtEventPreview(GwtEventPreview preview)
>>
>>
>>
>> Then, in the final fireEvent method, if a preview has been installed,
>> the event is routed through the preview first and is only fired if the
>> preview returns true.
>>
>> Can anyone think of any problems with this logic,  any reason this
>> change would take more then a few minutes to create, or
>> any potentially better solutions which we might want to use instead?  As 
>> we
>> can certainly wait until GWT 2.0 to introduce something like this if we 
>> can
>> think of any conceivable objections.
>>
>>
>> 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"
>>
>
>


-- 
"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: Want to introduce HasElement interface above UIObject

1. Its more API clutter
Yep, the question is it useful  api clutter.

2. Can't users just add listeners directly to their widgets that they put
into the tabs?

Not necessarily, the tabs maybe added via some sort of injection dependency.
For instance, extra functionality, including tabs, are often added based
upon the groups a user belows to.

So, when the programmer wants to use a custom keyboard navigation on her tab
panel, she would have to go into places scattered throughout the code base
in order to convert all of the tabs to widgets which support keyboard events
and add her handlers there.

3. We have a lot of widgets that "wrap" content.  Will they all have
wrappers?
Not unless there is a compelling reason for them to do so. Here, we are
replacing functionality that already allows users to access these internal
widgets through the onKeyDown() and onClick() public methods.

Now, when there is a compelling reason, we would be exposing sub-parts using
get*Wrapper which returns a characteristic interface, so if this is the
wrong pattern, we should figure it out before we publish it!

4. I think this is too implementation specific to make public.  The fact
that we wrap tabs in a ClickDecoratorPanel so we can catch events and style
them is just an implementation.  We could just as easily (well, not as
easily) catch events on the outer element and determine where the event
occured.

Completely agreed, that is why rather then exposing ClickDecoratorPanel we
are exposing a characteristic interface instead.


P.S.
   Ray wins a cookie because he was right about you having an opinion on
this :-).


On Tue, Nov 11, 2008 at 10:43 AM, John LaBanca <[EMAIL PROTECTED]> wrote:

> At first glance, I don't see the need for a public TabWrapper interface.
> Can you tell me what the use case is for this?  My main concerns are the
> following:
> 1. Its more API clutter
> 2. Can't users just add listeners directly to their widgets that they put
> into the tabs?
> 3. We have a lot of widgets that "wrap" content.  Will they all have
> wrappers?
> 4. I think this is too implementation specific to make public.  The fact
> that we wrap tabs in a ClickDecoratorPanel so we can catch events and style
> them is just an implementation.  We could just as easily (well, not as
> easily) catch events on the outer element and determine where the event
> occured.
>
> But, since you obviously thought this out, I'm sure I'm missing some key
> point.
>
> Thanks,
> John LaBanca
> [EMAIL PROTECTED]
>
>
>
> On Mon, Nov 10, 2008 at 8:16 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>
>> (Reviving the old Response Requested meaning of RR--there is no patch
>> here, but rather a design question.)
>>
>> Take a look at the new TabWrapper getTabWrapper(int index) method on
>> TabBar in the 1_6_clean_events branch:
>>
>>
>> http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabBar.java
>>
>> See that interface it returns, TabWrapper extends HasAllKeyHandlers,
>> HasClickHandlers? Emily and I would like to make that more useful without
>> necessarily committing to it being a Widget.
>> To that end, we'd like to introduce a new interface, HasElement, which
>> will hold most or all of the public API of UIObject. We'd make similar use
>> of the interface for DialogBox#getCaptionWrapper(), and one or two other
>> places that I hope Emily will remind me of.
>>
>> Any objections or warnings before we go ahead and make the change?
>>
>> 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: RR:GwtEventPreview

The only proposal I have in mind right now is that we stop messing with
stuff and get the branch merged.
rjrjr

On Tue, Nov 11, 2008 at 8:28 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:

> Do you have a proposal in mind? Everything we tightened down we had good
> reason to do so.
>
> On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>
>> And as Emily and I just chatted offline, if we're loosening things up I'd
>> rather see us allow folks to provide their own HandlerManager implementation
>> (or wrapper around ours) than just try to predict the one or two hooks
>> they'll find useful.
>> rjrjr
>>
>>
>> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>
>>> We have made the fireEvents() final in handler manager and made it
>>> impossible for users to replace the handler manager in widget, so I think
>>> this change would be necessary to preserve the full spirit of what we've
>>> been doing to upgrade the user's event system.
>>>
>>> However,  we can tell people to use super-source to replace their handler
>>> manager class instead.  It is not as clean of a solution, but it will work,
>>> and we can wait to see if anyone truly howls for this feature and put it
>>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
>>>
>>>
>>>Cheers,
>>>
>>>   Emily
>>>
>>>
>>>
>>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]>wrote:
>>>
 Is this really part of the handler update? If this can wait, let's wait.
 We need to wrap up the changes to handlers ASAP.

  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]>wrote:

> I've managed to convince myself that it would be a trivial amount of
> work to introduce a GwtEventPreview interface into the events package and
> that the change would be a good one.  In specific we would have:
>
>
> public interface GwtEventPreview {
> boolean onGwtEventPreview(GwtEvent event);
> }
>
>
> and, in HandlerManager:
>
> public void setGwtEventPreview(GwtEventPreview preview)
>
>
>
> Then, in the final fireEvent method, if a preview has been installed,
> the event is routed through the preview first and is only fired if the
> preview returns true.
>
> Can anyone think of any problems with this logic,  any reason this
> change would take more then a few minutes to create, or
> any potentially better solutions which we might want to use instead?  As 
> we
> can certainly wait until GWT 2.0 to introduce something like this if we 
> can
> think of any conceivable objections.
>
>
> 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: Turning off runtime checks

On Tue, Nov 11, 2008 at 10:51 AM, Isaac Truett <[EMAIL PROTECTED]> wrote:

>
> > I'm curious what things you're referring to here. Generally, I think
> we're
> > pretty open to more checks in hosted mode. As an example, hosted mode
> always
> > runs with assertions enabled.
>
> More assertions are exactly what I've been hoping for. The one case
> that's stuck with me was issue 2365. As I understand it, those
> assertions (and the check method, if only called in assertions) will
> all be compiled away, so there's no size or performance penalty in web
> mode.


That's exactly right. And as we add new library classes, I anticipate we'll
be doing a lot more assertion checking versus if/then/throw type tests. This
is one area where I honestly believe the traditional Java patterns are just
plain wrong: coding that's far too defensive.

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



[gwt-contrib] Re: RR:GwtEventPreview

Do you have a proposal in mind? Everything we tightened down we had good
reason to do so.

On Tue, Nov 11, 2008 at 11:17 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:

> And as Emily and I just chatted offline, if we're loosening things up I'd
> rather see us allow folks to provide their own HandlerManager implementation
> (or wrapper around ours) than just try to predict the one or two hooks
> they'll find useful.
> rjrjr
>
>
> On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>
>> We have made the fireEvents() final in handler manager and made it
>> impossible for users to replace the handler manager in widget, so I think
>> this change would be necessary to preserve the full spirit of what we've
>> been doing to upgrade the user's event system.
>>
>> However,  we can tell people to use super-source to replace their handler
>> manager class instead.  It is not as clean of a solution, but it will work,
>> and we can wait to see if anyone truly howls for this feature and put it
>> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
>>
>>
>>Cheers,
>>
>>   Emily
>>
>>
>>
>> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
>>
>>> Is this really part of the handler update? If this can wait, let's wait.
>>> We need to wrap up the changes to handlers ASAP.
>>>
>>>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>>
 I've managed to convince myself that it would be a trivial amount of
 work to introduce a GwtEventPreview interface into the events package and
 that the change would be a good one.  In specific we would have:


 public interface GwtEventPreview {
 boolean onGwtEventPreview(GwtEvent event);
 }


 and, in HandlerManager:

 public void setGwtEventPreview(GwtEventPreview preview)



 Then, in the final fireEvent method, if a preview has been installed,
 the event is routed through the preview first and is only fired if the
 preview returns true.

 Can anyone think of any problems with this logic,  any reason this
 change would take more then a few minutes to create, or
 any potentially better solutions which we might want to use instead?  As we
 can certainly wait until GWT 2.0 to introduce something like this if we can
 think of any conceivable objections.


 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: Turning off runtime checks

Maybe John can comment on issue #2365 in particular.

On Tue, Nov 11, 2008 at 10:51 AM, Isaac Truett <[EMAIL PROTECTED]> wrote:

>
> > I'm curious what things you're referring to here. Generally, I think
> we're
> > pretty open to more checks in hosted mode. As an example, hosted mode
> always
> > runs with assertions enabled.
>
> More assertions are exactly what I've been hoping for. The one case
> that's stuck with me was issue 2365. As I understand it, those
> assertions (and the check method, if only called in assertions) will
> all be compiled away, so there's no size or performance penalty in web
> mode.
>
>
>
> On Tue, Nov 11, 2008 at 10:43 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
> > On Tue, Nov 11, 2008 at 10:38 AM, Isaac Truett <[EMAIL PROTECTED]>
> wrote:
> >>
> >> > We've been kicking around the idea of an "unsafe but fast" compile for
> >> > exactly this reason.
> >>
> >> I always thought the compile was "unsafe" already.
> >
> > Only for things that are truly unaffordable, like null checks on every
> > object access.
> >
> >>
> >>  I've even suggested adding more hosted mode-only checks
> >> and been rejected because of the "cost" of such runtime validations.
> >
> > I'm curious what things you're referring to here. Generally, I think
> we're
> > pretty open to more checks in hosted mode. As an example, hosted mode
> always
> > runs with assertions enabled.
> >
> > >
> >
>
> >
>

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



[gwt-contrib] Re: RR:GwtEventPreview

And as Emily and I just chatted offline, if we're loosening things up I'd
rather see us allow folks to provide their own HandlerManager implementation
(or wrapper around ours) than just try to predict the one or two hooks
they'll find useful.
rjrjr

On Tue, Nov 11, 2008 at 7:59 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:

> We have made the fireEvents() final in handler manager and made it
> impossible for users to replace the handler manager in widget, so I think
> this change would be necessary to preserve the full spirit of what we've
> been doing to upgrade the user's event system.
>
> However,  we can tell people to use super-source to replace their handler
> manager class instead.  It is not as clean of a solution, but it will work,
> and we can wait to see if anyone truly howls for this feature and put it
> into gwt 2.0 instead, then it can be a cool upgrade instead :-).
>
>
>Cheers,
>
>   Emily
>
>
>
> On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
>
>> Is this really part of the handler update? If this can wait, let's wait.
>> We need to wrap up the changes to handlers ASAP.
>>
>>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>
>>> I've managed to convince myself that it would be a trivial amount of work
>>> to introduce a GwtEventPreview interface into the events package and that
>>> the change would be a good one.  In specific we would have:
>>>
>>>
>>> public interface GwtEventPreview {
>>> boolean onGwtEventPreview(GwtEvent event);
>>> }
>>>
>>>
>>> and, in HandlerManager:
>>>
>>> public void setGwtEventPreview(GwtEventPreview preview)
>>>
>>>
>>>
>>> Then, in the final fireEvent method, if a preview has been installed, the
>>> event is routed through the preview first and is only fired if the preview
>>> returns true.
>>>
>>> Can anyone think of any problems with this logic,  any reason this change
>>> would take more then a few minutes to create, or any potentially better
>>> solutions which we might want to use instead?  As we can certainly wait
>>> until GWT 2.0 to introduce something like this if we can think of
>>> any conceivable objections.
>>>
>>>
>>> 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: IFrameTemplate.js broken for noserver hosted mode in trunk

Lex is going to take a look at this, it was part of the runAsync changes.

On Tue, Nov 11, 2008 at 1:47 AM, Cameron Braid <[EMAIL PROTECTED]> wrote:

> hosted.html expects the querystring to contain only the module strongName
> where as it curently contains strongName + ".cache.html"
>
> IFrameTemplate.js in maybeInjectFrame() appends .cache.html to the
> strongName (line 298).
>
> Either IFrameTemplate.js needs to not append .cache.html for hostedmode, or
> hostd.html needds to strip it out.
>
> A suggested fix (which I have verified in my dev environment) is this :
>
> Index: dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
> ===
> --- dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js(revision
> 3953)
> +++ dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js(working
> copy)
> @@ -295,7 +295,7 @@
>  millis:(new Date()).getTime(),
>  type: 'moduleRequested'
>});
> -  iframe.contentWindow.location.replace(base + strongName +
> '.cache.html');
> +  iframe.contentWindow.location.replace(base + strongName +
> strongNameExt);
>  }
>}
>
> @@ -351,9 +351,12 @@
>});
>
>var strongName;
> +  var strongNameExt;
>if (isHostedMode()) {
>  strongName = "hosted.html?__MODULE_FUNC__";
> +strongNameExt = "";
>} else {
> +strongNameExt = ".cache.html";
>  try {
>  // __PERMUTATIONS_BEGIN__
>// Permutation logic
>
>
> >
>

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



[gwt-contrib] Re: runAsync fragment loading bug in IE


On Tue, Nov 11, 2008 at 10:50 AM, John LaBanca <[EMAIL PROTECTED]> wrote:
>> Do I remember correctly that you have looked at script-loading gymnastics
>> in the HTML host pages before?
>
> No, I looked into style sheet loading gymnastics while working on the
> Showcase so we could load style sheets dynamically.  I can't recall that
> I've ever messed around with script loading.
>
> Still, the patch looks good to me.

Thanks, John.  Also, Kelly and Cameron.  It's in revision 4016.  -Lex

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



[gwt-contrib] Re: RR:GwtEventPreview

We have made the fireEvents() final in handler manager and made it
impossible for users to replace the handler manager in widget, so I think
this change would be necessary to preserve the full spirit of what we've
been doing to upgrade the user's event system.

However,  we can tell people to use super-source to replace their handler
manager class instead.  It is not as clean of a solution, but it will work,
and we can wait to see if anyone truly howls for this feature and put it
into gwt 2.0 instead, then it can be a cool upgrade instead :-).


   Cheers,

  Emily



On Tue, Nov 11, 2008 at 10:31 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:

> Is this really part of the handler update? If this can wait, let's wait. We
> need to wrap up the changes to handlers ASAP.
>
>  On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>
>> I've managed to convince myself that it would be a trivial amount of work
>> to introduce a GwtEventPreview interface into the events package and that
>> the change would be a good one.  In specific we would have:
>>
>>
>> public interface GwtEventPreview {
>> boolean onGwtEventPreview(GwtEvent event);
>> }
>>
>>
>> and, in HandlerManager:
>>
>> public void setGwtEventPreview(GwtEventPreview preview)
>>
>>
>>
>> Then, in the final fireEvent method, if a preview has been installed, the
>> event is routed through the preview first and is only fired if the preview
>> returns true.
>>
>> Can anyone think of any problems with this logic,  any reason this change
>> would take more then a few minutes to create, or any potentially better
>> solutions which we might want to use instead?  As we can certainly wait
>> until GWT 2.0 to introduce something like this if we can think of
>> any conceivable objections.
>>
>>
>> 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: RR: eager upref


On Mon, Nov 10, 2008 at 6:42 PM, Scott Blum <[EMAIL PROTECTED]> wrote:
> Here is the result of our live desk review.

Thank you.  After some quick tests, I committed it at revision 4015.  -Lex

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



[gwt-contrib] [google-web-toolkit commit] r4016 - trunk/dev/core/src/com/google/gwt/core/linker


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 07:53:27 2008
New Revision: 4016

Modified:
trunk/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java

Log:
When creating a script tag to load code for runAsync,
create the tag in the same DOM element that the tag
will be attached to.

Suggested by: Cameron Braid
Review by: jlabanca, knorton


Modified: trunk/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
==
--- trunk/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java  
(original)
+++ trunk/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java Tue Nov 
 
11 07:53:27 2008
@@ -85,7 +85,7 @@
  out.print("function __gwtStartLoadingFragment(frag) {");
  out.newlineOpt();
  out.indentIn();
-out.print("  var script = $doc.createElement('script');");
+out.print("  var script = document.createElement('script');");
  out.newlineOpt();
  out.print("  script.src = '" + strongName + "-' + frag + '" +  
FRAGMENT_EXTENSION + "';");
  out.print("   
document.getElementsByTagName('head').item(0).appendChild(script);");

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



[gwt-contrib] Re: Turning off runtime checks


> I'm curious what things you're referring to here. Generally, I think we're
> pretty open to more checks in hosted mode. As an example, hosted mode always
> runs with assertions enabled.

More assertions are exactly what I've been hoping for. The one case
that's stuck with me was issue 2365. As I understand it, those
assertions (and the check method, if only called in assertions) will
all be compiled away, so there's no size or performance penalty in web
mode.



On Tue, Nov 11, 2008 at 10:43 AM, Bruce Johnson <[EMAIL PROTECTED]> wrote:
> On Tue, Nov 11, 2008 at 10:38 AM, Isaac Truett <[EMAIL PROTECTED]> wrote:
>>
>> > We've been kicking around the idea of an "unsafe but fast" compile for
>> > exactly this reason.
>>
>> I always thought the compile was "unsafe" already.
>
> Only for things that are truly unaffordable, like null checks on every
> object access.
>
>>
>>  I've even suggested adding more hosted mode-only checks
>> and been rejected because of the "cost" of such runtime validations.
>
> I'm curious what things you're referring to here. Generally, I think we're
> pretty open to more checks in hosted mode. As an example, hosted mode always
> runs with assertions enabled.
>
> >
>

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



[gwt-contrib] Re: runAsync fragment loading bug in IE

>
> Do I remember correctly that you have looked at script-loading gymnastics
> in the HTML host pages before?
>
No, I looked into style sheet loading gymnastics while working on the
Showcase so we could load style sheets dynamically.  I can't recall that
I've ever messed around with script loading.

Still, the patch looks good to me.

Thanks,
John LaBanca
[EMAIL PROTECTED]


On Mon, Nov 10, 2008 at 6:08 PM, Lex Spoon <[EMAIL PROTECTED]> wrote:

> On Mon, Nov 10, 2008 at 2:33 PM, Kelly Norton <[EMAIL PROTECTED]> wrote:
> > For iframe loading, Cameron's change is correct. We should be loading
> > code into the document corresponding to our code context and not the
> > host page context.
>
> Can I consider that an LGTM?
>
>
> > However, I am wondering how this is going to work
> > in the xs case where the code is loaded into an anonymous function in
> > the host page context?
>
> No, that sounds like a problem all right.  For independent reasons,
> using XHR instead of script tags sounds better, anyway.  The
> downloaded result could then be eval-ed in the correct scope.  That
> strategy would seem to work fine for the XS linker, so long as the
> call to eval happens within the anonymous function.
>
>
> Lex
>

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



[gwt-contrib] Re: Review request: JSE (Invalid argument) in AbstractScrollTable

LGTM

Thanks,
John LaBanca
[EMAIL PROTECTED]


On Mon, Nov 10, 2008 at 9:31 PM, Isaac Truett <[EMAIL PROTECTED]> wrote:

> John,
>
> I wanted to run this one-liner by you before committing. I'm seeing
> the JSE below in hosted mode when the body of my PagingScrollTable is
> empty and has 0 height. The headerHeight is positive and (totalHeight
> - headerHeight - footerHeight) comes out to a negative number. The
> patch following the stacktrace fixes the problem.
>
> Thanks,
> Isaac
>
>
> [ERROR] Uncaught exception escaped
> com.google.gwt.core.client.JavaScriptException: (Error): Invalid argument.
>  number: -2147024809
>  description: Invalid argument.
>at com.google.gwt.dom.client.Style$.setProperty$(Native Method)
>at com.google.gwt.user.client.DOM.setStyleAttribute(DOM.java:1201)
>at
> com.google.gwt.gen2.table.client.AbstractScrollTable.resizeTablesVerticallyNow(AbstractScrollTable.java:1375)
>at
> com.google.gwt.gen2.table.client.AbstractScrollTable$1.execute(AbstractScrollTable.java:614)
>at
> com.google.gwt.user.client.CommandExecutor.doExecuteCommands(CommandExecutor.java:311)
>at
> com.google.gwt.user.client.CommandExecutor$2.run(CommandExecutor.java:206)
>at com.google.gwt.user.client.Timer.fireImpl(Timer.java:164)
>at com.google.gwt.user.client.Timer.fireAndCatch(Timer.java:150)
>at com.google.gwt.user.client.Timer.fire(Timer.java:142)
>
>
>
> Index: src/com/google/gwt/gen2/table/client/AbstractScrollTable.java
> ===
> --- src/com/google/gwt/gen2/table/client/AbstractScrollTable.java
> (revision
> 1195)
> +++ src/com/google/gwt/gen2/table/client/AbstractScrollTable.java
> (working copy)
> @@ -1395,7 +1395,7 @@
>   DOM.setStyleAttribute(footerWrapper, "height", footerHeight + "px");
> }
> DOM.setStyleAttribute(dataWrapper, "height",
> -(totalHeight - headerHeight - footerHeight) + "px");
> +Math.max(totalHeight - headerHeight - footerHeight, 0) + "px");
> DOM.setStyleAttribute(dataWrapper, "overflow", "hidden");
> DOM.setStyleAttribute(dataWrapper, "overflow", "auto");
> scrollTables(true);
>

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



[gwt-contrib] Re: RR: Want to introduce HasElement interface above UIObject

At first glance, I don't see the need for a public TabWrapper interface.
Can you tell me what the use case is for this?  My main concerns are the
following:
1. Its more API clutter
2. Can't users just add listeners directly to their widgets that they put
into the tabs?
3. We have a lot of widgets that "wrap" content.  Will they all have
wrappers?
4. I think this is too implementation specific to make public.  The fact
that we wrap tabs in a ClickDecoratorPanel so we can catch events and style
them is just an implementation.  We could just as easily (well, not as
easily) catch events on the outer element and determine where the event
occured.

But, since you obviously thought this out, I'm sure I'm missing some key
point.

Thanks,
John LaBanca
[EMAIL PROTECTED]


On Mon, Nov 10, 2008 at 8:16 PM, Ray Ryan <[EMAIL PROTECTED]> wrote:

> (Reviving the old Response Requested meaning of RR--there is no patch here,
> but rather a design question.)
>
> Take a look at the new TabWrapper getTabWrapper(int index) method on
> TabBar in the 1_6_clean_events branch:
>
>
> http://code.google.com/p/google-web-toolkit/source/browse/branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabBar.java
>
> See that interface it returns, TabWrapper extends HasAllKeyHandlers,
> HasClickHandlers? Emily and I would like to make that more useful without
> necessarily committing to it being a Widget.
> To that end, we'd like to introduce a new interface, HasElement, which will
> hold most or all of the public API of UIObject. We'd make similar use of the
> interface for DialogBox#getCaptionWrapper(), and one or two other places
> that I hope Emily will remind me of.
>
> Any objections or warnings before we go ahead and make the change?
>
> rjrjr
>
>

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



[gwt-contrib] Re: Turning off runtime checks

On Tue, Nov 11, 2008 at 10:38 AM, Isaac Truett <[EMAIL PROTECTED]> wrote:

>
> > We've been kicking around the idea of an "unsafe but fast" compile for
> > exactly this reason.
>
> I always thought the compile was "unsafe" already.


Only for things that are truly unaffordable, like null checks on every
object access.


>  I've even suggested adding more hosted mode-only checks
> and been rejected because of the "cost" of such runtime validations.
>

I'm curious what things you're referring to here. Generally, I think we're
pretty open to more checks in hosted mode. As an example, hosted mode always
runs with assertions enabled.

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



[gwt-contrib] Re: RR:GwtEventPreview


> Can you think of any other relevant use cases?

4. Uncaught exception in onGwtEventPreview().


On Tue, Nov 11, 2008 at 10:25 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
> The naming was mimicking the EventPreview  interface we have for the
> underlying native events. Don't mind changing it, but it seems like
> the consistency is nice.
> I think the testing should be fairly trivial as we have three use cases.
>
> no event preview set on a handler manager.
> an event preview set on a handler manager that returns false
> an event preview set on a handler manager that returns true
>
> Can you think of any other relevant use cases?  I'll wait until after the
> kids are asleep tonight to implement, so if any of you can think of any
> objections throughout the day, please pipe up!  Especially any reason  that
> would lead us to believe that his is not the canonical solution we want to
> implement.
>
>
>
> On Tue, Nov 11, 2008 at 10:11 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:
>>
>> It's fine with me if the trivial amount of time it will take to add
>> includes time for test coverage.
>> On naming, how about GwtEventPreviewer and setEventPreviewer.
>> rjrjr
>> On Tue, Nov 11, 2008 at 6:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>>>
>>> I've managed to convince myself that it would be a trivial amount of work
>>> to introduce a GwtEventPreview interface into the events package and that
>>> the change would be a good one.  In specific we would have:
>>>
>>> public interface GwtEventPreview {
>>> boolean onGwtEventPreview(GwtEvent event);
>>> }
>>>
>>> and, in HandlerManager:
>>>
>>> public void setGwtEventPreview(GwtEventPreview preview)
>>>
>>>
>>> Then, in the final fireEvent method, if a preview has been installed, the
>>> event is routed through the preview first and is only fired if the preview
>>> returns true.
>>> Can anyone think of any problems with this logic,  any reason this change
>>> would take more then a few minutes to create, or any potentially better
>>> solutions which we might want to use instead?  As we can certainly wait
>>> until GWT 2.0 to introduce something like this if we can think of
>>> any conceivable objections.
>>>
>>> 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: Turning off runtime checks

On Tue, Nov 11, 2008 at 10:38 AM, Isaac Truett <[EMAIL PROTECTED]> wrote:

>
> > We've been kicking around the idea of an "unsafe but fast" compile for
> > exactly this reason.
>
> I always thought the compile was "unsafe" already. Hasn't the GWT
> philosophy been to perform type safety/bounds/null checks only in
> hosted mode, if at all? Are there many such checks currently left in
> compiled code? I've even suggested adding more hosted mode-only checks
> and been rejected because of the "cost" of such runtime validations.
>

It depends... we've definitely avoided doing certain checks in the JRE, but
we do most of the language-level checks the JVM would do (with the notable
exception of array bounds checking).  But I definitely take your point to
heart.

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



[gwt-contrib] Re: Turning off runtime checks

That's a great find, Ray.

In terms of ideal product direction, I'd rather consider a flag like that
(at least, one that's documented) as the last resort. Extra options tend to
lead to option-shock, and we don't want people to have to think about things
like that too much.
Instead, I think we ought to prioritize doing better optimizations of the
sort Scott mentioned because they would help not only this issue but many
other aspects of performance as well. Then, once we've done everything we
can reasonably think of, it might be worth considering complicating things
with an extra published flag.

All that said, I personally wouldn't object to a "-Xunsafe:"
family of undocumented flags that people can use at their discretion. We
should just try our best to ensure almost nobody ever has to really know
about such flags.

Do you have a patch for that, by any chance? :-)

On Tue, Nov 11, 2008 at 10:30 AM, Scott Blum <[EMAIL PROTECTED]> wrote:

> We've been kicking around the idea of an "unsafe but fast" compile for
> exactly this reason.
> OTOH, there are a couple of things we could do to make the type checks
> faster even in the short term:
>
> 1) Do actual null tracking so as to omit the null check part in many cases.
>
> 2) Get away from using typeIdArray in favor of having cast information
> accessible directly off the object, which should be faster.
>
> 3) Make sure it's inlined in all cases.
>
>
> On Tue, Nov 11, 2008 at 2:14 AM, Ray Cromwell <[EMAIL PROTECTED]>wrote:
>
>>
>> Heads up guys,
>>
>> I just profiled my app trying to squeeze every last drop of
>> performance out for speedups on the iPhone which has slow Javascript,
>> and I noticed that the canCastUnsafe/dynamicCast functions are
>> collectively eating up 8.5% of the total runtime. It seems that the
>> sole purpose of dynamicCast() is to throw a ClassCastException where
>> the JVM would, but in production web-deployment mode, I would honestly
>> prefer the option of having these checks omitted. Yes, there are some
>> cases where throwing the exception would give the end user a better
>> error message, but if the user is able to reproduce incorrect
>> behavior, I think I would prefer to direct them to a debug
>> build/permutation which has the checks. It seems the major place where
>> this could trip up legitimate code is if someone was triggering CCEs
>> on purpose and expecting to catch them with an exception handler.
>>
>> The main reason these checks are being inserted is because I switched
>> from using a custom collection, to a List, and the compiler
>> appears to be unable to use the generic type information of the JField
>> to determine that the cast is unneccessary.
>>
>> Anyway, the question for discussion is, should the compiler have an
>> -O2 mode which eliminates range checks, runtime cast checks, etc
>>
>> -Ray
>>
>>
>>
>
> >
>

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



[gwt-contrib] Re: Turning off runtime checks


> We've been kicking around the idea of an "unsafe but fast" compile for
> exactly this reason.

I always thought the compile was "unsafe" already. Hasn't the GWT
philosophy been to perform type safety/bounds/null checks only in
hosted mode, if at all? Are there many such checks currently left in
compiled code? I've even suggested adding more hosted mode-only checks
and been rejected because of the "cost" of such runtime validations.



On Tue, Nov 11, 2008 at 10:30 AM, Scott Blum <[EMAIL PROTECTED]> wrote:
> We've been kicking around the idea of an "unsafe but fast" compile for
> exactly this reason.
> OTOH, there are a couple of things we could do to make the type checks
> faster even in the short term:
> 1) Do actual null tracking so as to omit the null check part in many cases.
> 2) Get away from using typeIdArray in favor of having cast information
> accessible directly off the object, which should be faster.
> 3) Make sure it's inlined in all cases.
>
> On Tue, Nov 11, 2008 at 2:14 AM, Ray Cromwell <[EMAIL PROTECTED]> wrote:
>>
>> Heads up guys,
>>
>> I just profiled my app trying to squeeze every last drop of
>> performance out for speedups on the iPhone which has slow Javascript,
>> and I noticed that the canCastUnsafe/dynamicCast functions are
>> collectively eating up 8.5% of the total runtime. It seems that the
>> sole purpose of dynamicCast() is to throw a ClassCastException where
>> the JVM would, but in production web-deployment mode, I would honestly
>> prefer the option of having these checks omitted. Yes, there are some
>> cases where throwing the exception would give the end user a better
>> error message, but if the user is able to reproduce incorrect
>> behavior, I think I would prefer to direct them to a debug
>> build/permutation which has the checks. It seems the major place where
>> this could trip up legitimate code is if someone was triggering CCEs
>> on purpose and expecting to catch them with an exception handler.
>>
>> The main reason these checks are being inserted is because I switched
>> from using a custom collection, to a List, and the compiler
>> appears to be unable to use the generic type information of the JField
>> to determine that the cast is unneccessary.
>>
>> Anyway, the question for discussion is, should the compiler have an
>> -O2 mode which eliminates range checks, runtime cast checks, etc
>>
>> -Ray
>>
>>
>
>
> >
>

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



[gwt-contrib] Re: RR:GwtEventPreview

The naming was mimicking the EventPreview  interface we have for the
underlying native events. Don't mind changing it, but it seems like
the consistency is nice.
I think the testing should be fairly trivial as we have three use cases.

   1. no event preview set on a handler manager.
   2. an event preview set on a handler manager that returns false
   3. an event preview set on a handler manager that returns true


Can you think of any other relevant use cases?  I'll wait until after the
kids are asleep tonight to implement, so if any of you can think of any
objections throughout the day, please pipe up!  Especially any reason  that
would lead us to believe that his is not the canonical solution we want to
implement.




On Tue, Nov 11, 2008 at 10:11 AM, Ray Ryan <[EMAIL PROTECTED]> wrote:

> It's fine with me if the trivial amount of time it will take to add
> includes time for test coverage.
>
> On naming, how about GwtEventPreviewer and setEventPreviewer.
>
> rjrjr
>
> On Tue, Nov 11, 2008 at 6:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:
>
>> I've managed to convince myself that it would be a trivial amount of work
>> to introduce a GwtEventPreview interface into the events package and that
>> the change would be a good one.  In specific we would have:
>>
>>
>> public interface GwtEventPreview {
>> boolean onGwtEventPreview(GwtEvent event);
>> }
>>
>>
>> and, in HandlerManager:
>>
>> public void setGwtEventPreview(GwtEventPreview preview)
>>
>>
>>
>> Then, in the final fireEvent method, if a preview has been installed, the
>> event is routed through the preview first and is only fired if the preview
>> returns true.
>>
>> Can anyone think of any problems with this logic,  any reason this change
>> would take more then a few minutes to create, or any potentially better
>> solutions which we might want to use instead?  As we can certainly wait
>> until GWT 2.0 to introduce something like this if we can think of
>> any conceivable objections.
>>
>>
>> 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: RR:GwtEventPreview

Is this really part of the handler update? If this can wait, let's wait. We
need to wrap up the changes to handlers ASAP.

On Tue, Nov 11, 2008 at 9:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:

> I've managed to convince myself that it would be a trivial amount of work
> to introduce a GwtEventPreview interface into the events package and that
> the change would be a good one.  In specific we would have:
>
>
> public interface GwtEventPreview {
> boolean onGwtEventPreview(GwtEvent event);
> }
>
>
> and, in HandlerManager:
>
> public void setGwtEventPreview(GwtEventPreview preview)
>
>
>
> Then, in the final fireEvent method, if a preview has been installed, the
> event is routed through the preview first and is only fired if the preview
> returns true.
>
> Can anyone think of any problems with this logic,  any reason this change
> would take more then a few minutes to create, or any potentially better
> solutions which we might want to use instead?  As we can certainly wait
> until GWT 2.0 to introduce something like this if we can think of
> any conceivable objections.
>
>
> Cheers,
>
> 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: Turning off runtime checks

We've been kicking around the idea of an "unsafe but fast" compile for
exactly this reason.
OTOH, there are a couple of things we could do to make the type checks
faster even in the short term:

1) Do actual null tracking so as to omit the null check part in many cases.

2) Get away from using typeIdArray in favor of having cast information
accessible directly off the object, which should be faster.

3) Make sure it's inlined in all cases.

On Tue, Nov 11, 2008 at 2:14 AM, Ray Cromwell <[EMAIL PROTECTED]> wrote:

>
> Heads up guys,
>
> I just profiled my app trying to squeeze every last drop of
> performance out for speedups on the iPhone which has slow Javascript,
> and I noticed that the canCastUnsafe/dynamicCast functions are
> collectively eating up 8.5% of the total runtime. It seems that the
> sole purpose of dynamicCast() is to throw a ClassCastException where
> the JVM would, but in production web-deployment mode, I would honestly
> prefer the option of having these checks omitted. Yes, there are some
> cases where throwing the exception would give the end user a better
> error message, but if the user is able to reproduce incorrect
> behavior, I think I would prefer to direct them to a debug
> build/permutation which has the checks. It seems the major place where
> this could trip up legitimate code is if someone was triggering CCEs
> on purpose and expecting to catch them with an exception handler.
>
> The main reason these checks are being inserted is because I switched
> from using a custom collection, to a List, and the compiler
> appears to be unable to use the generic type information of the JField
> to determine that the cast is unneccessary.
>
> Anyway, the question for discussion is, should the compiler have an
> -O2 mode which eliminates range checks, runtime cast checks, etc
>
> -Ray
>
> >
>

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



[gwt-contrib] [google-web-toolkit commit] r4015 - in trunk/dev/core/src/com/google/gwt/dev: . jjs/impl


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 07:29:02 2008
New Revision: 4015

Modified:
trunk/dev/core/src/com/google/gwt/dev/GWTCompiler.java
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/CodeSplitter.java
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java

Log:
Removes UpRefVisitor from ControlFlowAnalyzer, which scans the whole
program to find extra methods that need rescuing due to virtual
method calls.  Instead, such methods are now checked at the
time a new method or type becomes instantiable.

Also, adds PerfLogger calls to GWTCompiler, to make it easy to time
an entire compile.

Review by: scottb


Modified: trunk/dev/core/src/com/google/gwt/dev/GWTCompiler.java
==
--- trunk/dev/core/src/com/google/gwt/dev/GWTCompiler.java  (original)
+++ trunk/dev/core/src/com/google/gwt/dev/GWTCompiler.java  Tue Nov 11  
07:29:02 2008
@@ -20,6 +20,7 @@
  import com.google.gwt.dev.CompilePerms.CompilePermsOptionsImpl;
  import com.google.gwt.dev.CompileTaskRunner.CompileTask;
  import com.google.gwt.dev.Precompile.PrecompileOptionsImpl;
+import com.google.gwt.dev.util.PerfLogger;
  import com.google.gwt.dev.util.arg.ArgHandlerExtraDir;

  import java.io.File;
@@ -100,6 +101,7 @@
  if (options.isValidateOnly()) {
return new Precompile(options).run(logger);
  } else {
+  PerfLogger.start("compile");
logger = logger.branch(TreeLogger.INFO, "Compiling module "
+ options.getModuleName());
if (new Precompile(options).run(logger)) {
@@ -112,11 +114,13 @@
  if (new CompilePerms(permsOptions).run(logger)) {
if (new Link(options).run(logger)) {
  logger.log(TreeLogger.INFO, "Compilation succeeded");
+PerfLogger.end();
  return true;
}
  }
}
logger.log(TreeLogger.ERROR, "Compilation failed");
+  PerfLogger.end();
return false;
  }
}

Modified: trunk/dev/core/src/com/google/gwt/dev/jjs/impl/CodeSplitter.java
==
--- trunk/dev/core/src/com/google/gwt/dev/jjs/impl/CodeSplitter.java 
(original)
+++ trunk/dev/core/src/com/google/gwt/dev/jjs/impl/CodeSplitter.javaTue  
Nov 11 07:29:02 2008
@@ -267,7 +267,6 @@

  initiallyLive = new ControlFlowAnalyzer(jprogram);
  traverseEntry(initiallyLive, 0);
-initiallyLive.finishTraversal();

  methodsInJavaScript = fragmentExtractor.findAllMethodsInJavaScript();
}
@@ -310,7 +309,6 @@
// Traverse leftoversFragmentHasLoaded, because it should not
// go into any of the exclusive fragments.
cfa.traverseFromLeftoversFragmentHasLoaded();
-  cfa.finishTraversal();
allButOnes.add(cfa);
  }

@@ -326,7 +324,6 @@
traverseEntry(everything, entry);
  }
  everything.traverseFromLeftoversFragmentHasLoaded();
-everything.finishTraversal();
  return everything;
}

@@ -368,7 +365,6 @@
  for (int base = 1; base < numEntries; base++) {
ControlFlowAnalyzer baseCfa = new ControlFlowAnalyzer(initiallyLive);
traverseEntry(baseCfa, base);
-  baseCfa.finishTraversal();
LivenessPredicate baseLive = new CfaLivenessPredicate(baseCfa);

// secondary base

Modified:  
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java
==
--- trunk/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java 
 
(original)
+++ trunk/dev/core/src/com/google/gwt/dev/jjs/impl/ControlFlowAnalyzer.java 
 
Tue Nov 11 07:29:02 2008
@@ -57,15 +57,15 @@
  import com.google.gwt.dev.js.ast.JsVisitor;

  import java.util.ArrayList;
+import java.util.HashMap;
  import java.util.HashSet;
  import java.util.List;
+import java.util.Map;
  import java.util.Set;

  /**
   * This class finds out what code in a program is live based on starting
- * execution at a specified location. Note that the client must call
- * [EMAIL PROTECTED] #finishTraversal()} after the other traversal methods 
have been
- * called, or the results will be incomplete.
+ * execution at a specified location.
   */
  public class ControlFlowAnalyzer {

@@ -182,7 +182,7 @@
// Rescue my super type
rescue(type.extnds, true, isInstantiated);

-  // Rescue my clinit (it won't ever be explicitly referenced
+  // Rescue my clinit (it won't ever be explicitly referenced)
rescue(type.methods.get(0));

// JLS 12.4.1: don't rescue my super interfaces just because I'm  
rescued.
@@ -192,6 +192,8 @@
  rescue(intfType, false, isInstantiated);
}

+  rescueMethodsIfInstantiable(type);
+
return false;
  }

@@ -256,6 +258,8 @@
  accept(it);
}

+  rescueMethodsIfIns

[gwt-contrib] [google-web-toolkit commit] r4014 - releases/1.6/user


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 07:11:09 2008
New Revision: 4014

Modified:
releases/1.6/user/build.xml

Log:
Leverage -workDir to allow parallelized testing without clobbering.

Patch by: fabbott

Modified: releases/1.6/user/build.xml
==
--- releases/1.6/user/build.xml (original)
+++ releases/1.6/user/build.xml Tue Nov 11 07:11:09 2008
@@ -78,7 +78,7 @@


  
-
+

  

@@ -87,7 +87,7 @@


  
-
+

  

@@ -95,7 +95,7 @@



-
+

  

@@ -103,7 +103,7 @@



-
+

  


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



[gwt-contrib] Re: RR:GwtEventPreview

It's fine with me if the trivial amount of time it will take to add includes
time for test coverage.

On naming, how about GwtEventPreviewer and setEventPreviewer.

rjrjr

On Tue, Nov 11, 2008 at 6:37 AM, Emily Crutcher <[EMAIL PROTECTED]> wrote:

> I've managed to convince myself that it would be a trivial amount of work
> to introduce a GwtEventPreview interface into the events package and that
> the change would be a good one.  In specific we would have:
>
>
> public interface GwtEventPreview {
> boolean onGwtEventPreview(GwtEvent event);
> }
>
>
> and, in HandlerManager:
>
> public void setGwtEventPreview(GwtEventPreview preview)
>
>
>
> Then, in the final fireEvent method, if a preview has been installed, the
> event is routed through the preview first and is only fired if the preview
> returns true.
>
> Can anyone think of any problems with this logic,  any reason this change
> would take more then a few minutes to create, or any potentially better
> solutions which we might want to use instead?  As we can certainly wait
> until GWT 2.0 to introduce something like this if we can think of
> any conceivable objections.
>
>
> Cheers,
>
> 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] [google-web-toolkit commit] r4013 - releases/1.6/dev/core/src/com/google/gwt/dev


Author: [EMAIL PROTECTED]
Date: Tue Nov 11 07:07:46 2008
New Revision: 4013

Modified:
releases/1.6/dev/core/src/com/google/gwt/dev/GWTCompiler.java
releases/1.6/dev/core/src/com/google/gwt/dev/GWTShell.java
releases/1.6/dev/core/src/com/google/gwt/dev/Link.java

Log:
Fix build by making -out actually work for GWTCompiler, Link, and  
GWTShell.java

Patch by: fabbott, scottb


Modified: releases/1.6/dev/core/src/com/google/gwt/dev/GWTCompiler.java
==
--- releases/1.6/dev/core/src/com/google/gwt/dev/GWTCompiler.java   
(original)
+++ releases/1.6/dev/core/src/com/google/gwt/dev/GWTCompiler.java   Tue Nov 
 
11 07:07:46 2008
@@ -22,6 +22,7 @@
  import com.google.gwt.dev.Link.LinkOptionsImpl;
  import com.google.gwt.dev.Precompile.PrecompileOptionsImpl;
  import com.google.gwt.dev.util.arg.ArgHandlerExtraDir;
+import com.google.gwt.dev.util.arg.ArgHandlerOutDir;

  import java.io.File;

@@ -34,6 +35,7 @@
  public ArgProcessor(CompilerOptions options) {
super(options);
registerHandler(new ArgHandlerExtraDir(options));
+  registerHandler(new ArgHandlerOutDir(options));
  }

  @Override

Modified: releases/1.6/dev/core/src/com/google/gwt/dev/GWTShell.java
==
--- releases/1.6/dev/core/src/com/google/gwt/dev/GWTShell.java  (original)
+++ releases/1.6/dev/core/src/com/google/gwt/dev/GWTShell.java  Tue Nov 11  
07:07:46 2008
@@ -43,6 +43,7 @@
  import com.google.gwt.dev.util.arg.ArgHandlerLogLevel;
  import com.google.gwt.dev.util.arg.ArgHandlerOutDir;
  import com.google.gwt.dev.util.arg.ArgHandlerScriptStyle;
+import com.google.gwt.dev.util.arg.ArgHandlerWorkDir;
  import com.google.gwt.dev.util.log.AbstractTreeLogger;
  import com.google.gwt.util.tools.ArgHandlerExtra;
  import com.google.gwt.util.tools.ArgHandlerFlag;
@@ -438,12 +439,13 @@
  registerHandler(new ArgHandlerLogLevel(options));

  registerHandler(new ArgHandlerGenDir(options));
-registerHandler(new ArgHandlerExtraDir(options));
+registerHandler(new ArgHandlerWorkDir(options));

  if (!noURLs) {
registerHandler(new ArgHandlerStartupURLsExtra());
  }

+registerHandler(new ArgHandlerExtraDir(options));
  registerHandler(new ArgHandlerOutDir(options));

  registerHandler(new ArgHandlerScriptStyle(options));

Modified: releases/1.6/dev/core/src/com/google/gwt/dev/Link.java
==
--- releases/1.6/dev/core/src/com/google/gwt/dev/Link.java  (original)
+++ releases/1.6/dev/core/src/com/google/gwt/dev/Link.java  Tue Nov 11  
07:07:46 2008
@@ -28,6 +28,7 @@
  import com.google.gwt.dev.cfg.StaticPropertyOracle;
  import com.google.gwt.dev.util.Util;
  import com.google.gwt.dev.util.arg.ArgHandlerExtraDir;
+import com.google.gwt.dev.util.arg.ArgHandlerOutDir;
  import com.google.gwt.dev.util.arg.OptionExtraDir;
  import com.google.gwt.dev.util.arg.OptionOutDir;

@@ -51,6 +52,7 @@
  public ArgProcessor(LinkOptions options) {
super(options);
registerHandler(new ArgHandlerExtraDir(options));
+  registerHandler(new ArgHandlerOutDir(options));
  }

  @Override

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



[gwt-contrib] A wee code review: Fix bug with date in DataTable


Reviewers: zundel, dglibicki,

Description:
Fix bug with date in DataTable

   private native void setValueDate(int rowIndex, int columnIndex, int
value) /*-{
-this.setValue(rowIndex, columnIndex, new Date(value));
+this.setValue(rowIndex, columnIndex, new $wnd.Date(value));
}-*/;


Please review this at http://galgwt-reviews.appspot.com/402

Affected files:
   visualization/src/com/google/gwt/visualization/client/DataTable.java


Index: visualization/src/com/google/gwt/visualization/client/DataTable.java
===
--- visualization/src/com/google/gwt/visualization/client/DataTable.java
 
(revision 978)
+++ visualization/src/com/google/gwt/visualization/client/DataTable.java
 
(working copy)
@@ -215,6 +215,6 @@
}-*/;

private native void setValueDate(int rowIndex, int columnIndex, int  
value) /*-{
-this.setValue(rowIndex, columnIndex, new Date(value));
+this.setValue(rowIndex, columnIndex, new $wnd.Date(value));
}-*/;
  }



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



[gwt-contrib] RR:GwtEventPreview

I've managed to convince myself that it would be a trivial amount of work to
introduce a GwtEventPreview interface into the events package and that the
change would be a good one.  In specific we would have:


public interface GwtEventPreview {
boolean onGwtEventPreview(GwtEvent event);
}


and, in HandlerManager:

public void setGwtEventPreview(GwtEventPreview preview)



Then, in the final fireEvent method, if a preview has been installed, the
event is routed through the preview first and is only fired if the preview
returns true.

Can anyone think of any problems with this logic,  any reason this change
would take more then a few minutes to create, or any potentially better
solutions which we might want to use instead?  As we can certainly wait
until GWT 2.0 to introduce something like this if we can think of
any conceivable objections.


Cheers,

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: Linker artifacts in WAR


I'm working on a srawman proposal for this; expect a copy later today.

-- 
Bob Vawter
Google Web Toolkit Team

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



[gwt-contrib] Re: Turning off runtime checks


Seems to be a good idea! I guess it is hard to find an approach that
will cover all the "contract checking" code snippets in the gwt
widgets.
Do you have an idea in mind how to handle this? Annotations?


On 11 Nov., 08:14, "Ray Cromwell" <[EMAIL PROTECTED]> wrote:
> Heads up guys,
>
> I just profiled my app trying to squeeze every last drop of
> performance out for speedups on the iPhone which has slow Javascript,
> and I noticed that the canCastUnsafe/dynamicCast functions are
> collectively eating up 8.5% of the total runtime. It seems that the
> sole purpose of dynamicCast() is to throw a ClassCastException where
> the JVM would, but in production web-deployment mode, I would honestly
> prefer the option of having these checks omitted. Yes, there are some
> cases where throwing the exception would give the end user a better
> error message, but if the user is able to reproduce incorrect
> behavior, I think I would prefer to direct them to a debug
> build/permutation which has the checks. It seems the major place where
> this could trip up legitimate code is if someone was triggering CCEs
> on purpose and expecting to catch them with an exception handler.
>
> The main reason these checks are being inserted is because I switched
> from using a custom collection, to a List, and the compiler
> appears to be unable to use the generic type information of the JField
> to determine that the cast is unneccessary.
>
> Anyway, the question for discussion is, should the compiler have an
> -O2 mode which eliminates range checks, runtime cast checks, etc
>
> -Ray
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Code Review: Example how to create a GWT based visualization.

Can we get someone to weigh in on this?

This is for the integration of the Google visualization, demonstrating the
'preferred' way to create a custom visualization with GWT accessible from
JavaScript.

The current solution is to use the standard linker and fire a global
callback

$wnd.onVisualizationNameCallback() from the onModuleLoad() entry point.

which I don't feel would be extensible if we had many visualizations
implemented with GWT.

-Eric.

On Mon, Nov 10, 2008 at 10:55 AM, Uwe Maurer <[EMAIL PROTECTED]> wrote:

>
>
> On Nov 10, 3:36 pm, [EMAIL PROTECTED] wrote:
> > I added some code to have a callback from GWT to javascript, to make
> > sure the GWT visualization is loaded before using it.
> >
>
> I am wondering what is the preferred way to make sure a GWT
> application is loaded before some other javascript (non GWT) in the
> hosting page is executed.
>
> In my example I would like to load a GWT application that exports some
> functions to javascript. The javascript in the hosting page need to be
> executed after the GWT application is done with registering these
> functions.
>
> Can I just put the script tag that loads the GWT application in the
> ? Or is a callback from GWT to javascript necessary?  If yes,
> what is the best way to implement such a callback? Can the GWT
> bootstrap code help or a special linker?
>
> As example please see this code:
> http://galgwt-reviews.appspot.com/202/patch/205/207
> http://galgwt-reviews.appspot.com/202/patch/205/209
>
> Thanks,
> Uwe
>
>
> >
>


-- 
Eric Z. Ayers - GWT Team - Atlanta, GA USA
http://code.google.com/webtoolkit/

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



[gwt-contrib] Comment on DesignOOPHM in google-web-toolkit


Comment by cristescu.sorinel:

Is it going to be faster that the old one or not? that's the big  
question ... 'cause I waste lots of time with starting/debugging in "hosted  
mode" ... brrr ...

Thanks,
Sorinel Cristescu


For more information:
http://code.google.com/p/google-web-toolkit/wiki/DesignOOPHM

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