GWT Tk Release Notes
0.2.3
GWT Tk 0.2.3 was compiled against GWT 1.3.3
- This is a maintainence which includes some minor additions.
Tk module
- ModalDialog
setWidget(Widget)now throws UnsupportedOperationException. UseaddWidget(Widget)instead.- the content panel's minimum height is now set in a cross-platform manner
- centering logic now accounts for non-reflowable content such as long TextBoxes (Amir Michail)
- eliminated scrollbar flicker in Opera/Firefox[Mac] when showing most dialogs
- fixed an issue where centering was sometimes off horizontally by the width of a scrollbar
- Document can now be scrolled when dialog is displayed in Firefox[Win] (Adam Duston)
- FocusModel
add()throwsIllegalArgumentExceptionif the specified widget is already present in the modelinsert()throwsIllegalArgumentExceptionif the specified widget is already present in the modelsetFocusWidget()throwsIllegalArgumentExceptionif the specified widget is not present in the focus model- now skips
FocusWidgetinstances which are not enabled (avoids error message in IE)
- GwtUtil
arrayCopy()added. Performs checked copying of arrays.toArray()added. Same as List.toArray(Object[]), except does not auto-expand destination array.rangeCheck()fixed a bug affecting ranges which do not start at 0
- BasicPanel now implements
IndexedPanel - JsUtil: fixed a rare issue where a SWTException would be thrown instead of JavaScriptException in hosted mode
- PreventSelectionController: singleton field is depricated, use
getInstance()instead - FocusCommand: added support for blurring widgets
- CPopupPanel: added. Same as
PopupPanel, with controller support. Also allows scrolling in Firefox while popup is shown. - ControllerSupportDelegate: renamed
unSinkEventstounsinkEvents(capitalization) - DomUtil
getId(Element)addedsetId(Element, String)added- improved performance when fetching values which depend on quirks/strict rendering mode
- DragStyleController is available as a reusable
top-level class (previously nested in
ModalDialog) - DragController: added an optional movement threshold which must be exceeded before the drag action will activate.
Patch module
- Fix Mozilla error when mouseover/mouseout a TextBox or
TextArea (Mozilla bug 208427)
GWT issue 671
Emulation module
- Created a new module for jre emulation:
asquare.gwt.tk.emul.Emulation - Added
CloneNotSupportedException - Added
Serializableinterface
Debug module
- Debug enable state can be toggled from console, rather than just disabled
- Debug.dump(): fix a JavaScript variable not declared with "var"
Sandbox module
- Added this module to share works in progress
- Added an experimental, data-centric UI framework (
asquare.gwt.sb.client.fw)
Demo
- Demo panels load incrementally at startup
- Rewrote demo tab panel based on a
ListModel - Rewrote the tab/history coordination logic eliminating necessity for circularity checks (relationships are now hierarchical model-observer)
- Added a
ModalDialogexample demonstrating focus management - Addded a
GlassPanelexample demonstrating cross-platform, alpha-transparent PNG background (useful in Safari when Flash is used).
Known Problems
- Checkboxes are not added to focus cycle.
Workaround:
CheckBox cb = new CheckBox("my check box"); DOM.setIntAttribute(cb.getElement(), "tabIndex", 0); dialog.getFocusModel().add(cb);
See GWT issue 878
0.2.2
GWT Tk 0.2.2 was compiled against GWT 1.3.3
- This is a maintainence release primarily addressing GlassPanel/ListBox interactions.
- PopupPanels with no CSS are now transparent in IE (this matches behavior on other platforms).
Tk module
- DomUtil: added getter methods for some DOM attributes
- DomUtil: added pixel-unit getter and setter for style attributes
- GlassPanel: ListBox (SELECT) components are now hidden by GlassPanel in IE [reporter: Tom Chen]
Debug module
- Debug.printToBrowserConsole(): added support for Opera's error console
- Debug: print() and println() javadocs are clearer [reporter: Klaus-Peter Berg]
- Debug: print() is now mirrored to the native browser console (if available)
Patch module
- Patched PopupImplIE6 to allow popup transparency
GWT issue 85 - Patched PopupImplIE6 to eliminate mixed content warning when
displaying popups via SSL (https://)
GWT issue 174 - Moved PopupImplIE6 patch to PopupImplIE6Patched. The patch is applied by a deferred binding rule in Patch.gwt.xml. This change was made to give users the option to override/revert the patch impl via a deferred binding rule in their own .gwt.xml file.
Demo
- ModalDialog demo: added an example with 2 dialogs
- ModalDialog demo: the example of an explicitly positioned dialog is now displayed in upper left of the page so it is more obvious [reporter: Klaus-Peter Berg]
- DropDownPanel demo: 2nd dropdown is open by default
JUnit patch
- removed this source tree (the bugs were fixed in GWT 1.1.10)
0.2.1
GWT Tk 0.2.1 was compiled against GWT 1.2.22
- The primary purpose of this release is to bring GWT Tk up to date with GWT 1.2
- Added a server binary which only contains compiled server-side classes
Tk module
- EventWrapper: added a constructor to make it a little easier to subclass anonymously
- CWrapper: only events which were sunk by the widget itself are passed to the widget's onBrowserEvent() method
- ControllerSupportDelegate: was not initializing the value of legacyEventBits in constructor
- DomUtil: renamed getKeyCode() to eventGetKeyCode()
- DomUtil: renamed getCharCode() to eventGetCharCode()
- DomUtil: added eventGetAbsoluteX()
- DomUtil: added eventGetAbsoluteY()
- ExposedCellPanel: added removeCellStyleName(String styleName)
- ExposedCellPanel: added removeCellStyleName(int cellIndex, String styleName)
- Created the server package
- Added GWTCacheFilter. This servlet filter sets appropriate Pragma, Expires & Cache-control headers for *.cache.html and *.nocache.html.
- Removed Gray20.png from the public directory. It is still
available in
/src/resources/
Patch module
Removed fixes for DOM.getAbsoluteTop() & DOM.getAbsoluteLeft() for Opera, Mozilla & IE. (The fix was left in for Safari because the value is still off by the doc scroll in GWT 1.2.22.)
Demo
- Modified one of the DropDownPanel examples to change the the header image in response to a DropDownListener
- Removed the invalid CSS rule which referred to
.tk-DropDownPanel-closed - Renamed TabCollection to HistoryWidgetCollection
- Added Events tab to demonstrate handling of unsupported events with EventWrapper and Controller
- Added an obfuscated compile target for a faster online download
- Tab bodies are lazily appended to the document to improve application load performance
0.2.0
GWT Tk 0.2.0 was compiled against GWT 1.1.10
RowPanel, ColumnPanel
http://www.asquare.net/gwttk/apps/demo/Demo.html#RowPanel
Flexible replacements for VerticalPanel & HorizontalPanel
- Support multiple widgets in each table cell
- Allow empty TDs
- Expose TDs to CSS
- Simplify layout by eliminating a nested container (e.g. TabBar tabs)
- Random access to cells and widgets
ModalDialog
http://www.asquare.net/gwttk/apps/demo/Demo.html#ModalDialog
- caption is optional
- caption supports widgets
- prevents text selection in the caption
- CSS-stylable GlassPanel covers entire document / viewport (whichever is larger)
- automatic centering in browser's main viewport (regardless of document scroll)
- resizable: if you set the size of the content area the layout will hold integrity on all platforms & quirks/strict modes
- minimum size specification for content area (optional, default is 200 x 75px)
- focus containment & management (IE, Mozilla [Win] and Safari)
- prevents click-focus of background elements (all browsers)
- works in strict/quirks mode on all browsers
- option to restore focus to a widget after the dialog is hidden
AlertDialog
http://www.asquare.net/gwttk/apps/demo/Demo.html#AlertDialog
A modal dialog tailored to conveniently displaying alerts
- can display alert via a static method (think JOptionPane)
- highly configurable
- icon in the caption indicates severity
- button hotkeys
- default button is automatically focused (optional)
- Esc key automatically triggers Cancel button (optional)
- button focus cycle is traversable with arrow keys
GlassPanel
http://www.asquare.net/gwttk/apps/demo/Demo.html#GlassPanel
A panel which covers the entire viewport or document, whichever is larger. Useful for modal dialogs and the "lightbox" effect. Window resizing logic is handled in a pluggable controller whose implementation varies by platform. When shown, a style name is applied to the body element; the style name is removed when the GlassPanel is hidden.
ExternalHyperLink
http://www.asquare.net/gwttk/apps/demo/Demo.html#ExternalHyperLink
The ultimate answer to "How do I link to another page?". An anchor linking to a page or resource external to the application.
Features text, HTML, URL and target properties
Tk module
- Added methods to get viewport size and scroll on the main 4 browsers in quirks/strict modes. See http://www.asquare.net/javascript/tests/ViewportTestResults.html
- JsUtil.appendText() now has an option to create a text node if none is found
- DomUtil: added getTitle(), setTitle() (element tooltips)
- DomUtil: renamed clear() to clean()
- GwtUtil: addded array range checking methods
- DropDownPanel: removed "tk-DropDownPanel-closed" style name, added controller support, factored browser specific code into controller class.
- DropDownPanel.gwt.xml: deleted module descriptor
- BasicPanel: removed "tk-BasicPanel" style name, added controller support
- RenderMode.gwt.xml: detects quirks mode and sets up a deferred binding property
- Refactored event handling into Controllers
- SimpleHyperLink: implemented HasHTML
Patch module
- Renamed DOMPatch module to Patch
- Fixed MouseListener coordinates for scrolled documents.
GWT issue 286 - Fixed DOM.getAbsoluteTop()/DOM.getAbsoluteLeft() bugs for
strict mode and scrolled documents.
GWT issue 286 & 321 - Removed the strict mode CSS value fix
Forum post - Fixed an IE issue for PopupPanel and DialogBox where a white
box and/or scrollbars flash breifly when the a popup is displayed.
GWT issue 455
Debug module
http://www.asquare.net/gwttk/apps/demo/Demo.html#Debug
- Debug output is mirrored to Safari's native JavaScript console. See http://developer.apple.com/internet/safari/faq.html#anchor14
- Changed debug enable key to "Esc" because Caps Lock doesn't genereate an event on Safari
- You can now set the debug enabler key
- Added enableSilently() to JSNI Debug api
- Console tweaks:
- no longer auto-hides when debug is disabled
- gave the console a style name (tk-DebugConsole)
- added tool tips to console controls
- added a "Disable Debug" button - Changed Debug.prettyPrint() to Debug.dump(). Debug.prettyPrint() now prints a 1 line description.
- Added a hierarchy inspector. Press 'h' twice to enable and click an HTML element to print it's continment hierarchy to the console.
- Added an element dump inspector. Press 'd' twice to enable and click an HTML element to dump it's members to the console.
- DebugEventListener: changed the "use default" enableKey character to '0' becuase '-1' wasn't working
- Removed dependency on Tk module so that the debug module can be used to demonstrate core GWT bugs.
Known Problems
- Debug is enabled on Safari after pressing 'Esc' only once because Safari generates duplicate key events for Esc & arrow keys.
- ModalDialog causes the scrollbars to momentarily jump in when
it is shown in Camino and Firefox[Mac]. The dialog cannot be centered
until it is added to the DOM and it's size is determined.
Workaround: remove the PositionDialogController and set the dialog size and position the dialog manually before showing it. See the Explicitly positioned example in the demo. - ModalDialog focus cycle does not work for Shift-Tab in Safari because Safari doesn't generate a valid keycode for Shift-Tab
- ModalDialog prevents scrolling browser window when visible.
Happens with GWT PopupPanel and DialogBox as well. The root cause is
PopupPanel.onEventPreview() cancelling the mousedown event.
GWT issue 399 - ModalDialog focus containment is implemented only for IE, Mozilla[Win] and Safari. In Opera and Mozilla[Mac], cancelling the tab keydown does not prevent transfer of focus. Mozilla[Linux] is unknown. A possible workaround is to write a controller which uses a timer to grab the focus back after it is transferred to a control outside the focus cycle.
- AlertDialog button hotkeys do not work in Opera unless a) mouse is over the dialog b) an element in the dialog is focused
0.1.0
GWT Tk 0.1.0 was compiled against GWT 1.0.21
Debug utility
http://www.asquare.net/gwttk/apps/demo/Demo.html#Debug
Print debug statements from "Java", JNSI and external JavaScript. In-browser console and hot-key enabling. Stub class provided for easy removal from deliverable.
DropDownPanel
http://www.asquare.net/gwttk/apps/demo/Demo.html#DropDownPanel
Same concept as the "Labels" and "Contacts" tip-downs in GMail.
SimpleHyperLink
http://www.asquare.net/gwttk/apps/demo/Demo.html#SimpleHyperLink
A hyperlink based on an anchor. No pesky DIV messing up your text flow. No history tokens in the location bar.
GWT Patch
Includes an example of how to patch the GWT DOM implementation. Uses inheritance and deferred binding to override the desired methods. The patch is applied by inheriting the patch module after the GWT User module. Use as a template for your own patches.
Ant build script
Build multiple GWT projects. Show usage messages. Generate javadocs. Generate javadocs for the GWT User library. Properties are externalized. In Eclipse, if you set the ${project_loc} property you can just click the External Tools shortcut to build the project containing the select resource.