[gwt-contrib] Re: Code Review: Example how to create a GWT based visualization.
Uwe, Sorry we aren't getting a lot of input here. I was thinking that we should just trying the xs linker with Chrome. If that works, then put it in the gwt.xml file with a comment that explains why it is there and commit this patch. Meanwhile, I'll try to corner someone on the SDK team. I was thinking that maybe we should add your callback scheme to the standard linker's selection script, maybe passing back the name of the script in the callback in case there are multiple GWT modules loaded. Still, that would only solve the problem for future releases of GWT, and I think we need to assume that the gviz bindings will be running against the public GWT 1.5 release. -Eric. On Wed, Nov 12, 2008 at 6:59 AM, Eric Ayers [EMAIL PROTECTED] wrote: +scottb,cromwellian,bobv On Tue, Nov 11, 2008 at 7:51 AM, Eric Ayers [EMAIL PROTECTED] wrote: 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 head? 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/ -- Eric Z. Ayers - GWT Team - Atlanta, GA USA http://code.google.com/webtoolkit/ -- Eric Z. Ayers - GWT Team - Atlanta, GA USA http://code.google.com/webtoolkit/ --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4045.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4045. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4045 Score: Positive General Comment: Looks good to me. Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4045 -- 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 r4043.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4043. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4043 Score: Positive General Comment: LGTM Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4043 -- 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 r4042.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4042. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4042 Score: Positive General Comment: LGTM Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4042 -- 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 r4044.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4044. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4044 Score: Positive General Comment: LGTM Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4044 -- 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 r4040.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4040. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4040 Score: Positive General Comment: LGTM, and thanks for doing this one so I didn't have to! Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4040 -- 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] r4046 - in branches/1_6_clean_events/user: src/com/google/gwt/event/dom/client src/com/google/gwt...
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:31:02 2008 New Revision: 4046 Removed: branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerAdaptor.java Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/BlurEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ChangeEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ContextMenuEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/DoubleClickEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ErrorEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/FocusEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyDownEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyPressEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/KeyUpEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/LoadEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/LoseCaptureEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseDownEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseMoveEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseOutEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseOverEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseUpEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/MouseWheelEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ScrollEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/CloseEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/OpenEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/SelectionEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java branches/1_6_clean_events/user/src/com/google/gwt/event/shared/GwtEvent.java branches/1_6_clean_events/user/test/com/google/gwt/event/logical/shared/LogicalEventsTest.java Log: Making javadoc tweaks and removing HandlerAdaptor as unused now. Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/BlurEvent.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/BlurEvent.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/BlurEvent.java Thu Nov 13 08:31:02 2008 @@ -40,7 +40,7 @@ /** * Protected constructor, use - * [EMAIL PROTECTED] DomEvent#fireNativeEvent(Event, com.google.gwt.event.shared.HandlerManager) + * [EMAIL PROTECTED] DomEvent#fireNativeEvent(Event, com.google.gwt.event.shared.HandlerManager)} * to fire blur events. */ protected BlurEvent() { Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ChangeEvent.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ChangeEvent.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ChangeEvent.java Thu Nov 13 08:31:02 2008 @@ -40,7 +40,7 @@ /** * Protected constructor, use - * [EMAIL PROTECTED] DomEvent#fireNativeEvent(Event, com.google.gwt.event.shared.HandlerManager) + * [EMAIL PROTECTED] DomEvent#fireNativeEvent(Event, com.google.gwt.event.shared.HandlerManager)} * to fire change events. */ protected ChangeEvent() { Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ContextMenuEvent.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ContextMenuEvent.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/ContextMenuEvent.java Thu Nov 13 08:31:02 2008 @@ -40,7 +40,7 @@ /** * Protected constructor, use - * [EMAIL PROTECTED] DomEvent#fireNativeEvent(Event, com.google.gwt.event.shared.HandlerManager) + * [EMAIL PROTECTED] DomEvent#fireNativeEvent(Event, com.google.gwt.event.shared.HandlerManager)} * to fire context menu events. */ protected ContextMenuEvent() { Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/dom/client/DoubleClickEvent.java == ---
[gwt-contrib] [google-web-toolkit commit] r4047 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:33:15 2008 New Revision: 4047 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/PopupPanel.java Log: Removed bas HasKeyCode reference. Modified: 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/PopupPanel.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/PopupPanel.java Thu Nov 13 08:33:15 2008 @@ -529,7 +529,7 @@ * * @param key the key code of the depressed key * @param modifiers keyboard modifiers, as specified in - * [EMAIL PROTECTED] com.google.gwt.event.dom.client.HasKeyCodes}. + * [EMAIL PROTECTED] com.google.gwt.event.dom.client.KeyCodes}. * @return codefalse/code to suppress the event */ public boolean onKeyDownPreview(char key, int modifiers) { @@ -542,7 +542,7 @@ * * @param key the unicode character pressed * @param modifiers keyboard modifiers, as specified in - * [EMAIL PROTECTED] com.google.gwt.event.dom.client.HasKeyCodes}. + * [EMAIL PROTECTED] com.google.gwt.event.dom.client.KeyCodes}. * @return codefalse/code to suppress the event */ public boolean onKeyPressPreview(char key, int modifiers) { @@ -555,7 +555,7 @@ * * @param key the key code of the released key * @param modifiers keyboard modifiers, as specified in - * [EMAIL PROTECTED] com.google.gwt.event.dom.client.HasKeyCodes}. + * [EMAIL PROTECTED] com.google.gwt.event.dom.client.KeyCodes}. * @return codefalse/code to suppress the event */ public boolean onKeyUpPreview(char key, int modifiers) { --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4048 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:38:29 2008 New Revision: 4048 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/HTMLTable.java Log: Adding javadoc for cell and depricated table methods Modified: 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/HTMLTable.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/HTMLTable.java Thu Nov 13 08:38:29 2008 @@ -47,19 +47,35 @@ private final int rowIndex; private final int cellIndex; +/** + * Creates a cell. + * @param rowIndex the cell's row + * @param cellIndex the cell's inded + */ protected Cell(int rowIndex, int cellIndex) { this.cellIndex = cellIndex; this.rowIndex = rowIndex; } - + +/** + * Gets the cell index. + * @return the cell index + */ public int getCellIndex() { return cellIndex; } - +/** + * Gets the cell's element. + * @return the cell's element. + */ public Element getElement() { return getCellFormatter().getElement(cellIndex, rowIndex); } +/** + * Get row index. + * @return the row index + */ public int getRowIndex() { return rowIndex; } @@ -804,7 +820,7 @@ * Adds a listener to the current table. * * @param listener listener to add - * @deprecated + * @deprecated add a click handler instead and use [EMAIL PROTECTED] HTMLTable#getCellForEvent(ClickEvent)} to get the cell information */ public void addTableListener(TableListener listener) { ListenerWrapper.Table.add(this, listener); --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4049 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:42:02 2008 New Revision: 4049 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java Log: More javadoc tweaks, this time for DialogBox. Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java Thu Nov 13 08:42:02 2008 @@ -276,7 +276,7 @@ } /** - * @deprecated Use [EMAIL PROTECTED] #finishDragging} and [EMAIL PROTECTED] #getCaption} instead + * @deprecated Use [EMAIL PROTECTED] #endDragging} and [EMAIL PROTECTED] #getCaption} instead */ @Deprecated public void onMouseUp(Widget sender, int x, int y) { @@ -326,7 +326,7 @@ * * @see DOM#setCapture * @see #continueDragging - * @param event + * @param event the mouse down event that triggered dragging */ protected void beginDragging(MouseDownEvent event) { onMouseDown(caption, event.getRelativeX(getElement()), @@ -339,7 +339,7 @@ * * @see #beginDragging * @see #endDragging - * @param event + * @param event the mouse move event that continues dragging */ protected void continueDragging(MouseMoveEvent event) { onMouseMove(caption, event.getRelativeX(getElement()), @@ -368,6 +368,7 @@ /** * Called on mouse up in the caption area, ends dragging by ending event * capture. + * @param event the mouse up event that ended dragging * * @see DOM#releaseCapture * @see #beginDragging --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4050 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:47:31 2008 New Revision: 4050 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java Log: Adding javadoc Modified: 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/DisclosurePanel.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java Thu Nov 13 08:47:31 2008 @@ -305,7 +305,7 @@ * Creates a DisclosurePanel that will be initially closed using the specified * text in the header. * - * @param headerText the text to be displayed in the header. + * @param headerText the text to be displayed in the header */ public DisclosurePanel(String headerText) { this(createDefaultImages(), headerText, false); @@ -363,6 +363,8 @@ * notification. * * @param handler the handler to be added (should not be null) + * @deprecated use [EMAIL PROTECTED] DisclosurePanel#addOpenHandler(OpenHandler)} and + * [EMAIL PROTECTED] DisclosurePanel#addCloseHandler(CloseHandler)} instead */ @Deprecated public void addEventHandler(final DisclosureHandler handler) { @@ -400,7 +402,7 @@ * the header widget does provide such access. * * @return a reference to the header widget if it implements [EMAIL PROTECTED] HasText}, - * codenull/code otherwise + * codenull/code otherwise */ public HasText getHeaderTextAccessor() { Widget widget = header.getWidget(); @@ -484,7 +486,7 @@ * Changes the visible state of this codeDisclosurePanel/code. * * @param isOpen codetrue/code to open the panel, codefalse/code to - * close + * close */ public void setOpen(boolean isOpen) { if (this.isOpen != isOpen) { --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4053 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:52:43 2008 New Revision: 4053 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java Log: adding javadoc Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java Thu Nov 13 08:52:43 2008 @@ -25,6 +25,8 @@ /** * Adds a handler interface to receive click events. * + * @deprecated use [EMAIL PROTECTED] FormPanel#addSubmitCompleteHandler} and + * [EMAIL PROTECTED] FormPanel#addSubmitHandler} instead * @param handler the handler interface to add */ @Deprecated --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4054 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:54:24 2008 New Revision: 4054 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java Log: Javadoc tweaks. Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java Thu Nov 13 08:54:24 2008 @@ -24,6 +24,7 @@ /** * Adds a handler interface to receive suggestion events. * + * @deprecated add a selection handler instead * @param handler the handler to add */ @Deprecated @@ -32,7 +33,7 @@ /** * Removes a previously added handler interface. * - * @param handler the handler to remove. + * @param handler the handler to remove */ @Deprecated void removeEventHandler(SuggestionHandler handler); --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4055 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 08:56:22 2008 New Revision: 4055 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FormPanel.java Log: Javadoc tweaks. Modified: 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/FormPanel.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/FormPanel.java Thu Nov 13 08:56:22 2008 @@ -20,8 +20,8 @@ import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.FormElement; -import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; @@ -85,6 +85,10 @@ private String resultHtml; +/** + * Create a submit complete event + * @param resultsHtml the results from submitting the form + */ protected SubmitCompleteEvent(String resultsHtml) { this.resultHtml = resultsHtml; } @@ -403,6 +407,7 @@ * Adds a [EMAIL PROTECTED] SubmitCompleteEvent} handler. * * @param handler the handler + * @return the handler registration used to remove the handler */ public HandlerRegistration addSubmitCompleteHandler( SubmitCompleteHandler handler) { @@ -413,6 +418,7 @@ * Adds a [EMAIL PROTECTED] SubmitEvent} handler. * * @param handler the handler + * @return the handler registration used to remove the handler */ public HandlerRegistration addSubmitHandler(SubmitHandler handler) { return addHandler(handler, SubmitEvent.getType()); --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4056 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 09:32:55 2008 New Revision: 4056 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java Log: Adding simple depreciated redirects here. Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java Thu Nov 13 09:32:55 2008 @@ -24,7 +24,8 @@ /** * Adds a listener interface to receive scroll events. * - * @param listener the listener interface to add. + * @param listener the listener interface to add + * @deprecated use addScrollHandler instead */ @Deprecated void addScrollListener(ScrollListener listener); @@ -32,7 +33,7 @@ /** * Removes a previously added scroll listener. * - * @param listener the listener interface to remove. + * @param listener the listener interface to remove */ @Deprecated void removeScrollListener(ScrollListener listener); Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java Thu Nov 13 09:32:55 2008 @@ -25,6 +25,7 @@ * Adds a listener interface to receive click events. * * @param listener the listener interface to add + * @deprecated use addBeforeSelectionHandler and addSelectionHandler instead */ @Deprecated void addTabListener(TabListener listener); Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java Thu Nov 13 09:32:55 2008 @@ -25,6 +25,7 @@ * Adds a listener interface to receive click events. * * @param listener the listener interface to add + * @deprecated use addClickHandler and getCell(DomEvent) instead */ @Deprecated void addTableListener(TableListener listener); Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java Thu Nov 13 09:32:55 2008 @@ -25,6 +25,7 @@ * Adds a listener interface to receive tree events. * * @param listener the listener interface to add + * @deprecated use addSelectionHandler,addOpenHandler, and addCloseHandler instead */ @Deprecated void addTreeListener(TreeListener listener); --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] Commits Code Reviews
As a lurker, I have to say I really like seeing the commit messages come across...it makes me feel like I can see what's coming down the pipe, and what I ought to be thinking about / getting ready to take advantage of. To save my time, though, I follow this group with Google Reader... I was wondering if there is any way that the synopsis which gets produced for the RSS feed could be expanded? For commit messages, it'd be nice to see some (all?) of the diff. For code reviews, it'd be nice to just have the complete text. thanks, jay --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit] [EMAIL PROTECTED] commented on revision r4048.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4048. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4048 Score: Negative Line-by-line comments: File: /branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/HTMLTable.java (r4048) === Line 53: * @param cellIndex the cell's inded --- typo Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4048 -- 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 r4030.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4030. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4030 Score: Negative General Comment: ping Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4030 -- 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: Commits Code Reviews
Jay, You'll find a similar request among the comments of this (now closed/fixed) issue: http://code.google.com/p/support/issues/detail?id=190 Assuming you don't find an existing issue to star, you can add your request here: http://code.google.com/p/support/issues/list Fred Sauer [EMAIL PROTECTED] On Thu, Nov 13, 2008 at 11:48 AM, jay [EMAIL PROTECTED] wrote: As a lurker, I have to say I really like seeing the commit messages come across...it makes me feel like I can see what's coming down the pipe, and what I ought to be thinking about / getting ready to take advantage of. To save my time, though, I follow this group with Google Reader... I was wondering if there is any way that the synopsis which gets produced for the RSS feed could be expanded? For commit messages, it'd be nice to see some (all?) of the diff. For code reviews, it'd be nice to just have the complete text. thanks, jay --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4058 - branches/1_6_clean_events/user/src/com/google/gwt/event/shared
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:07:43 2008 New Revision: 4058 Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java Log: Removing JsHandlerRegistry while we do benchmarks in the background to determine if we need it. Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java Thu Nov 13 12:07:43 2008 @@ -15,8 +15,6 @@ */ package com.google.gwt.event.shared; -import com.google.gwt.core.client.GWT; -import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.event.shared.GwtEvent.Type; import com.google.gwt.user.client.Command; @@ -83,182 +81,10 @@ } } - /** - * Default JavaScript handler registry. This is in the shared class but should - * never be called outside of a GWT runtime environment. - * - * The JsHandlerRegistry makes use of the fact that in the large majority of - * cases, only one or two handlers are added for each event type. Therefore, - * rather than storing handlers in a list of lists, we store then in a single - * flattened array with an escape clause to handle the rare case where we have - * more handlers then expected. - */ - private static class JsHandlerRegistry extends JavaScriptObject { - -/** - * Required constructor. - */ -protected JsHandlerRegistry() { -} - -public final H extends EventHandler void addHandler( -TypeH type, H myHandler) { - - // The base is the equivalent to a c pointer into the flattened handler - // data structure. - int base = type.hashCode(); - int count = getCount(base); - boolean flattened = isFlattened(base); - H handler = myHandler; - // If we already have the maximum number of handlers we can store in the - // flattened data structure, store the handlers in an external list - // instead. - if ((count == EXPECTED_HANDLERS) flattened) { -unflatten(base); -flattened = false; - } - if (flattened) { -setFlatHandler(base, count, handler); - } else { -setHandler(base, count, handler); - } - setCount(base, count + 1); -} - -public final H extends EventHandler void fireEvent(GwtEventH event) { - TypeH type = event.getAssociatedType(); - int base = type.hashCode(); - int count = getCount(base); - boolean isFlattened = isFlattened(base); - if (isFlattened) { -for (int i = 0; i count; i++) { - // Gets the given handler to fire. - H handler = getFlatHandler(base, i); - // Fires the handler. - event.dispatch(handler); -} - } else { -JavaScriptObject handlers = getHandlers(base); -for (int i = 0; i count; i++) { - // Gets the given handler to fire. - - H handler = getHandler(handlers, i); - - // Fires the handler. - event.dispatch(handler); -} - } -} - -public final H extends EventHandler H getHandler(GwtEvent.TypeH type, -int index) { - int base = type.hashCode(); - int count = getCount(base); - if (index = count) { -throw new IndexOutOfBoundsException(index: + index); - } - return getHandler(base, index, isFlattened(base)); -} - -public final int getHandlerCount(GwtEvent.Type? eventKey) { - return getCount(eventKey.hashCode()); -} - -public final H void removeHandler(GwtEvent.TypeH eventKey, -EventHandler handler) { - int base = eventKey.hashCode(); - - // Removing a handler is unusual, so smaller code is preferable to - // handling both flat and dangling list of pointers. - if (isFlattened(base)) { -unflatten(base); - } - boolean result = removeHelper(base, handler); - // Hiding this behind an assertion as we'd rather not force the compiler - // to have to include all handler.toString() instances. - assert result : handler + did not exist; -} - -private native int getCount(int index) /*-{ - var count = this[index]; - return count == null? 0:count; -}-*/; - -private native H extends EventHandler H getFlatHandler(int base, int index) /*-{ - return this[base + 2 + index]; -}-*/; - -private native H extends EventHandler H getHandler(int base, int index, -boolean flattened) /*-{ - return flattened? this[base + 2 + index]: this[base + 1][index]; -}-*/; - -private native H extends EventHandler H getHandler( -JavaScriptObject handlers, int index) /*-{ - return handlers[index]; -}-*/; - -private native JavaScriptObject
[gwt-contrib] [google-web-toolkit commit] r4060 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:15:57 2008 New Revision: 4060 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/HTMLTable.java Log: Fixed type-o in javadoc Modified: 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/HTMLTable.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/HTMLTable.java Thu Nov 13 12:15:57 2008 @@ -50,7 +50,7 @@ /** * Creates a cell. * @param rowIndex the cell's row - * @param cellIndex the cell's inded + * @param cellIndex the cell's index */ protected Cell(int rowIndex, int cellIndex) { this.cellIndex = cellIndex; --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit] e...@google.com commented on revision r4048.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4048. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4048 General Comment: Fixed in 4060 Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4048 -- 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] r4062 - branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:30:57 2008 New Revision: 4062 Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java Log: Made value final. Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java Thu Nov 13 12:30:57 2008 @@ -83,7 +83,7 @@ return TYPE; } - private I value; + private final I value; /** * Creates a value change event. --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit] e...@google.com commented on revision r4046.
[google-web-toolkit] [EMAIL PROTECTED] commented on revision r4046. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4046 General Comment: Fixed in r4062 Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4046 -- 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] r4061 - branches/1_6_clean_events/user/src/com/google/gwt/event/shared
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:29:04 2008 New Revision: 4061 Removed: branches/1_6_clean_events/user/src/com/google/gwt/event/shared/GwtEventUtil.java Log: Moving GwtEventUtil to museum, as we will figure out a different way to allow people, in general, to subclass handler manager. --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4063 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:41:10 2008 New Revision: 4063 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabBar.java Log: Explaining why getTab must be final. Modified: 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/TabBar.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/TabBar.java Thu Nov 13 12:41:10 2008 @@ -54,19 +54,11 @@ * li.gwt-TabBar .gwt-TabBarItem { unselected tabs }/li * li.gwt-TabBar .gwt-TabBarItem-wrapper { table cell around tab }/li * li.gwt-TabBar .gwt-TabBarItem-selected { additional style for selected - * tabs } /li - * li.gwt-TabBar .gwt-TabBarItem-wrapper-selected { table cell around - * selected tab }/li - * li.gwt-TabBar .gwt-TabBarItem-disabled { additional style for disabled - * tabs } /li - * li.gwt-TabBar .gwt-TabBarItem-wrapper-disabled { table cell around - * disabled tab }/li - * /ul * p * h3Example/h3 * [EMAIL PROTECTED] com.google.gwt.examples.TabBarExample} * /p - */ + */ @SuppressWarnings(deprecation) public class TabBar extends Composite implements SourcesTabEvents, HasBeforeSelectionHandlersInteger, HasSelectionHandlersInteger, @@ -250,10 +242,14 @@ /** * Gets the given tab. * + * This method is final because the Tab interface will expand. Therefore + * it is highly likely that subclasses which implemented this method would end up + * breaking. + * * @param index the tab's index * @return the tab wrapper */ - public final Tab getTab(int index) { + public final Tab getTab(int index) { if (index = getTabCount()) { return null; } @@ -363,18 +359,16 @@ /** * @deprecated this method has been doing nothing for the entire last release, - * if what you wanted to do was to listen to key press events on - * tabs, add the key press handler to the individual tab wrappers - * instead. + * if what you wanted to do was to listen to key press events on tabs, add the + * key press handler to the individual tab wrappers instead. */ public void onKeyPress(Widget sender, char keyCode, int modifiers) { } /** * @deprecated this method has been doing nothing for the entire last release, - * if what you wanted to do was to listen to key up events on - * tabs, add the key up handler to the individual tab wrappers - * instead. + * if what you wanted to do was to listen to key up events on tabs, add the + * key up handler to the individual tab wrappers instead. * */ public void onKeyUp(Widget sender, char keyCode, int modifiers) { @@ -407,7 +401,7 @@ * * @param index the index of the tab to be selected * @return codetrue/code if successful, codefalse/code if the change - * is denied by the [EMAIL PROTECTED] BeforeSelectionHandler}. + * is denied by the [EMAIL PROTECTED] BeforeSelectionHandler}. */ public boolean selectTab(int index) { checkTabIndex(index); @@ -488,7 +482,7 @@ * Subclasses can use this method to wrap tabs in decorator panels. * * @return a [EMAIL PROTECTED] SimplePanel} to wrap the tab contents, or null to leave - * tabs unwrapped + * tabs unwrapped */ protected SimplePanel createTabTextWrapper() { return null; @@ -558,7 +552,7 @@ * * @param tabWidget The widget for the tab to be selected * @return true if the tab corresponding to the widget for the tab could - * located and selected, false otherwise + * located and selected, false otherwise */ private boolean selectTabByTabWidget(Widget tabWidget) { int numTabs = panel.getWidgetCount() - 1; --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4064 - branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:42:58 2008 New Revision: 4064 Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java Log: Making DialogBox final and adding explanations for why it is final. Modified: branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java == --- branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/user/client/ui/DialogBox.java Thu Nov 13 12:42:58 2008 @@ -183,10 +183,14 @@ /** * Provides access to the dialog's caption. + * + * This method is final because the Caption interface will expand. Therefore + * it is highly likely that subclasses which implemented this method would end up + * breaking. * * @return the logical caption for this dialog box */ - public Caption getCaption() { + public final Caption getCaption() { return caption; } --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4067 - branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/mu seum/client/defaultm...
Author: [EMAIL PROTECTED] Date: Thu Nov 13 12:52:44 2008 New Revision: 4067 Modified: branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDialogBox.java Log: Using diffs to remove whitespace formmatting was NOT a success in last commit, recommitting. Modified: branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDialogBox.java == --- branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDialogBox.java (original) +++ branches/1_6_clean_events/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForDialogBox.java Thu Nov 13 12:52:44 2008 @@ -41,7 +41,7 @@ private final class VisibleDialogBox extends DialogBox { private FlexTable layout = null; -private final MapVisibleEvents, Element eventToElement = +private final MapVisibleEvents, Element eventToElement = new HashMapVisibleEvents, Element(); private boolean maybeClose; @@ -61,8 +61,8 @@ layout.setHTML(0, 0, bVisibleEvents/b); layout.setHTML(0, 1, bStatus/b); - final String style = - float:right; border: 1px solid blue; color:blue; + final String style = float:right; border: 1px solid blue; color:blue; + + font-weight:bold; font-size:85%; setHTML(I Gots a Close Boxdiv id='vis-closebox' style=' + style + 'nbsp;Xnbsp;/div); --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4068 - branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared
Author: [EMAIL PROTECTED] Date: Thu Nov 13 13:13:26 2008 New Revision: 4068 Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java Log: Removing final from isCanceled. Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java Thu Nov 13 13:13:26 2008 @@ -80,7 +80,9 @@ } /** - * Cancel the selection event. + * Cancel the before selection event. + * + * Classes overriding this method should still call super.cancel(). */ public void cancel() { canceled = true; @@ -100,7 +102,7 @@ * * @return is canceled */ - public final boolean isCanceled() { + public boolean isCanceled() { return canceled; } --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] Re: Turning off runtime checks
This problem could be solved by introducing the ability to remove methods marked with a particular annotation when some option was enabled and have them eliminated accordingly. Imagine the ClassCastChecking and ArrayIndexChecking were done by two methods on some imaginary helper class used by the gwt runtime. class GwtRuntime @CheckClassCast - checkClassCast @CheckArrayIndex - checkArrayIndex Given that the compiler in this contrived example insert calls to the above two methods all over the place one could easily remove them if you wanted to improve performance as per Ray's suggestion. Pseudo code for the JModVisitor could look like this... Visit all method target invocations. if target method has one of the eliminate me annotations then remove method invocation. end if If the actual list of annotations could be set on the command line it would also allow me to eliminate my own check methods which i might not want in my super fast production version. As a side note the problem with asserts is its an all of nothing its quite difficult / hard to pinpoint that one wants to remove only one type of js construct as opposed to all. Using different annotations allows one to categorise and eliminate at will. On Thu, Nov 13, 2008 at 9:03 PM, Ray Cromwell [EMAIL PROTECTED] wrote: Bruce, I'm kinda swamped myself right now, but I can whip something up after Thanksgiving. I like John's proposal too, since I like more powerful general purpose optimizations, but it seems like a lot more work than yours, and given time constraints I'd probably hack in your -X proposals. Of course, I'd like to hear any and all objections from the GWT team before I start a patch, since there's a difference between potentially unsafe and guaranteed to break correct programs :) -Ray On Tue, Nov 11, 2008 at 12: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. 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. -- mP --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4071 - branches/1_6_clean_events
Author: [EMAIL PROTECTED] Date: Thu Nov 13 17:14:57 2008 New Revision: 4071 Modified: branches/1_6_clean_events/branch-info.txt Log: update branchinfo.txt w/previous up-integrate change number Modified: branches/1_6_clean_events/branch-info.txt == --- branches/1_6_clean_events/branch-info.txt (original) +++ branches/1_6_clean_events/branch-info.txt Thu Nov 13 17:14:57 2008 @@ -6,6 +6,6 @@ /branches/1_6_clean_events was created from /releases/[EMAIL PROTECTED] Merges: -/releases/[EMAIL PROTECTED]:3957 was merged () into this branch +/releases/[EMAIL PROTECTED]:3957 was merged (3963) into this branch - The next merge into this branch will be r3957: --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] Re: review request: GwtTransient annotation
Minor nit regarding the terminology, probably mostly just aesthetic on my part. GwtTransient doesn't sound that cool to me. Could we name it now to align with a more comprehensive effort later related to more developer control of RPC? For example, what if we called the annotation @NotSerializable. Then, we could also honor the annotation applying to an entire class in addition to fields. If that spanned inheritance, then it would be an easy way to blacklist entire hierarchies of classes. It isn't perfect, but we'd get a useful first step toward an full-featured RPC whitelist/blacklist facility. (In the general case, of course, you want to specify serializable-ness relative to a particular RPC service interface, not on the class itself. But it's a start...) On Thu, Nov 13, 2008 at 11:30 AM, Lex Spoon [EMAIL PROTECTED] wrote: Bob, can you review the small attached patch? I can ask others if you are slammed, but it's small and affects code you are familiar with, so I thought I'd ask you first. This patch implements support for a @GwtTransient annotation. @GwtTransient means the same thing as the transient keyword, but it is ignored by all serialization systems other than GWT's. Usually the codetransient/code keyword should be used in preference to this annotation. However, for types used with multiple serialization systems, it can be useful. The motivation is discussed further in these bug reports: http://code.google.com/p/google-web-toolkit/issues/detail?id=2931 http://code.google.com/p/google-web-toolkit/issues/detail?id=2964 The patch simply adds the annotation and checks it in the places isTransient is currently checked. So, from GWT's point of view, isTransient and @GwtTransient are equivalent. -Lex --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit commit] r4072 - branches/1_6_clean_events/user/src/com/google/gwt/event/shared
Author: [EMAIL PROTECTED] Date: Thu Nov 13 20:22:40 2008 New Revision: 4072 Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java Log: As initial benchmarks are leaning towards the desire to include the more complicated handler registry, it seems reasonably safe to add it back in. Modified: branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java == --- branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java (original) +++ branches/1_6_clean_events/user/src/com/google/gwt/event/shared/HandlerManager.java Thu Nov 13 20:22:40 2008 @@ -15,6 +15,8 @@ */ package com.google.gwt.event.shared; +import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.event.shared.GwtEvent.Type; import com.google.gwt.user.client.Command; @@ -81,10 +83,182 @@ } } + /** + * Default JavaScript handler registry. This is in the shared class but should + * never be called outside of a GWT runtime environment. + * + * The JsHandlerRegistry makes use of the fact that in the large majority of + * cases, only one or two handlers are added for each event type. Therefore, + * rather than storing handlers in a list of lists, we store then in a single + * flattened array with an escape clause to handle the rare case where we have + * more handlers then expected. + */ + private static class JsHandlerRegistry extends JavaScriptObject { + +/** + * Required constructor. + */ +protected JsHandlerRegistry() { +} + +public final H extends EventHandler void addHandler( +TypeH type, H myHandler) { + + // The base is the equivalent to a c pointer into the flattened handler + // data structure. + int base = type.hashCode(); + int count = getCount(base); + boolean flattened = isFlattened(base); + H handler = myHandler; + // If we already have the maximum number of handlers we can store in the + // flattened data structure, store the handlers in an external list + // instead. + if ((count == EXPECTED_HANDLERS) flattened) { +unflatten(base); +flattened = false; + } + if (flattened) { +setFlatHandler(base, count, handler); + } else { +setHandler(base, count, handler); + } + setCount(base, count + 1); +} + +public final H extends EventHandler void fireEvent(GwtEventH event) { + TypeH type = event.getAssociatedType(); + int base = type.hashCode(); + int count = getCount(base); + boolean isFlattened = isFlattened(base); + if (isFlattened) { +for (int i = 0; i count; i++) { + // Gets the given handler to fire. + H handler = getFlatHandler(base, i); + // Fires the handler. + event.dispatch(handler); +} + } else { +JavaScriptObject handlers = getHandlers(base); +for (int i = 0; i count; i++) { + // Gets the given handler to fire. + + H handler = getHandler(handlers, i); + + // Fires the handler. + event.dispatch(handler); +} + } +} + +public final H extends EventHandler H getHandler(GwtEvent.TypeH type, +int index) { + int base = type.hashCode(); + int count = getCount(base); + if (index = count) { +throw new IndexOutOfBoundsException(index: + index); + } + return getHandler(base, index, isFlattened(base)); +} + +public final int getHandlerCount(GwtEvent.Type? eventKey) { + return getCount(eventKey.hashCode()); +} + +public final H void removeHandler(GwtEvent.TypeH eventKey, +EventHandler handler) { + int base = eventKey.hashCode(); + + // Removing a handler is unusual, so smaller code is preferable to + // handling both flat and dangling list of pointers. + if (isFlattened(base)) { +unflatten(base); + } + boolean result = removeHelper(base, handler); + // Hiding this behind an assertion as we'd rather not force the compiler + // to have to include all handler.toString() instances. + assert result : handler + did not exist; +} + +private native int getCount(int index) /*-{ + var count = this[index]; + return count == null? 0:count; +}-*/; + +private native H extends EventHandler H getFlatHandler(int base, int index) /*-{ + return this[base + 2 + index]; +}-*/; + +private native H extends EventHandler H getHandler(int base, int index, +boolean flattened) /*-{ + return flattened? this[base + 2 + index]: this[base + 1][index]; +}-*/; + +private native H extends EventHandler H getHandler( +JavaScriptObject handlers, int index) /*-{ + return handlers[index];
[gwt-contrib] [google-web-toolkit commit] r4076 - trunk/tools/api-checker/config
Author: [EMAIL PROTECTED] Date: Thu Nov 13 21:11:40 2008 New Revision: 4076 Modified: trunk/tools/api-checker/config/gwt15_16userApi.conf Log: LinkedHashMap_CustomFieldSerializer.java was included twice when building the TypeOracle, one in user/super and the other in user/src. It seems that when both were included, sometime both were dropped. And when that happened for the 1.6/trunk api, it resulted in an error. The proper fix seems to be to just include one of them in this file, and have another api-checker run to check compatibility between the super-source and non-super-source files. Patch by: amitmanjhi Review by: scottb (TBR) Modified: trunk/tools/api-checker/config/gwt15_16userApi.conf == --- trunk/tools/api-checker/config/gwt15_16userApi.conf (original) +++ trunk/tools/api-checker/config/gwt15_16userApi.conf Thu Nov 13 21:11:40 2008 @@ -3,7 +3,7 @@ name_old gwt15userApi #sourceFiles and excludedFiles are specified as colon-separated list of files sourceFiles_old @OLDROOT@/dev/core/super:@OLDROOT@/user/super:@OLDROOT@/user/src -excludedFiles_old @OLDROOT@/user/src/com/google/gwt/benchmarks:@OLDROOT@/user/src/com/google/gwt/junit:@OLDROOT@/user/src/com/google/gwt/i18n/rebind:@OLDROOT@/user/src/com/google/gwt/i18n/tools:@OLDROOT@/user/src/com/google/gwt/json:@OLDROOT@/user/src/com/google/gwt/user/rebind:@OLDROOT@/user/src/com/google/gwt/user/server:@OLDROOT@/user/src/com/google/gwt/user/tools:@OLDROOT@/user/super/com/google/gwt/benchmarks:@OLDROOT@/user/super/com/google/gwt/junit +excludedFiles_old @OLDROOT@/user/src/com/google/gwt/benchmarks:@OLDROOT@/user/src/com/google/gwt/junit:@OLDROOT@/user/src/com/google/gwt/i18n/rebind:@OLDROOT@/user/src/com/google/gwt/i18n/tools:@OLDROOT@/user/src/com/google/gwt/json:@OLDROOT@/user/src/com/google/gwt/user/rebind:@OLDROOT@/user/src/com/google/gwt/user/server:@OLDROOT@/user/src/com/google/gwt/user/tools:@OLDROOT@/user/super/com/google/gwt/benchmarks:@OLDROOT@/user/super/com/google/gwt/junit:@OLDROOT@/user/super/com/google/gwt/user ## #new Api @@ -12,7 +12,7 @@ #sourceFiles and excludedFiles are specified as colon-separated list of files sourceFiles_new ./dev/core/super:./user/super:./user/src #:dev/core/src -excludedFiles_new ./user/src/com/google/gwt/benchmarks:./user/src/com/google/gwt/junit:./user/src/com/google/gwt/i18n/rebind:./user/src/com/google/gwt/i18n/tools:./user/src/com/google/gwt/json:./user/src/com/google/gwt/user/rebind:./user/src/com/google/gwt/user/server:./user/src/com/google/gwt/user/tools:./user/super/com/google/gwt/benchmarks:./user/super/com/google/gwt/junit +excludedFiles_new ./user/src/com/google/gwt/benchmarks:./user/src/com/google/gwt/junit:./user/src/com/google/gwt/i18n/rebind:./user/src/com/google/gwt/i18n/tools:./user/src/com/google/gwt/json:./user/src/com/google/gwt/user/rebind:./user/src/com/google/gwt/user/server:./user/src/com/google/gwt/user/tools:./user/super/com/google/gwt/benchmarks:./user/super/com/google/gwt/junit:./user/super/com/google/gwt/user ## #excluded packages --~--~-~--~~~---~--~~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~--~~~~--~~--~--~---
[gwt-contrib] [google-web-toolkit] kellegous commented on revision r4076.
[google-web-toolkit] kellegous commented on revision r4076. Details are at http://code.google.com/p/google-web-toolkit/source/detail?r=4076 General Comment: Going back through changes since last review. Some more comments on GwtEvent. Line-by-line comments: File: /branches/1_6_clean_events/user/src/com/google/gwt/event/shared/GwtEvent.java (r4046) === Line 19: * Root of all gwt events. All gwt events are considered dead and should no --- s/gwt/GWT/ Line 26: public abstract class GwtEventH extends EventHandler { --- I must admit that I'm still bothered by the fact that the ability to revive events is part of the root class of events and therefore must be a part of every event in the system. Yet, it's a system we don't even use in our non-dom events. Plus, if we were to remove everything pertaining to reviving events, the only thing left would be the source. When you do that, GwtEvent as an interface seems pretty appealing. Line 38: private int index; --- final Line 59: private boolean dead; --- Did we ever resolve this: quot;Do we need this? It seems like dead == true and source == null have the same meaning.quot; Respond to these comments at http://code.google.com/p/google-web-toolkit/source/detail?r=4076 -- 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 -~--~~~~--~~--~--~---