Released on April 28, 2009.
Getting Simpler and Richer
New Feature Highlight
- MVC pattern enhanced.
- An intuitive way to access Composer directly.
- Use Component ID as UUID for unit test.
- A way to delay databinding behaviors.
- New Features
123 XUL and 83 HTML off-the-shelf components.
Tabbox, grid, listbox, tree, menu, combobox, bandbox, datebox, chart,
hbox, vbox, window, slider, paging, audio, image, timer, include, iframe...
Drag-and-drop supported by all components, such that users can drag
components and drop them to any other or particular set of components.
Context menus and customizable tooltips supported by all components,
such that a menu or any popup appears when user click, right-click or
move the mouse over a component.
Customizable sorting of listbox, grid and children of any component
with 100% Java codes (
Auto-completion for combobox.
Load on demand with writing Java codes.
Live data for listbox.
Grids, listboxes and trees with sizable columns.
All components are cloneable and serializable.
Validation and formatting for any input components, such as regular
100% Java API of Google Maps,
and Timeline components.
Event-driven, server-centric model
More than 20 events are supported:
All events are processed at the server. No hurdle to communicate between clients
All events are synchronized. No racing condition to worry about.
ZK User-interface Markup Language (ZUML).
Rich user interface could be designed in ZUML as simple as authoring
- Powerful yet intuitive control flow by the
Scripting in EL expressions and your favorite scripting languages,
include but not limited to Java,
Ruby and Groovy.
Hot changes and updates without restarting your Web applications.
Annotations that allow a page to acess database with zero Java codes.
Browser history management.
Add states to browser's back button history. Then, users can bookmark
and use the back and forward button to navigate different
states of the same ZK desktop.
Simple yet boundless component model.
Macro components. Developing a full-feature new component
by using another ZUML pages.
Inheritable customization. Developing a new component by extending
Seamlessly and easily to encapsulate pure-client components as ZK
components with 100% Java API.
Customizing components with pre-compiled Java classes, or by scripting in
your favorite scripting languages,
include but not limited to Java,
Ruby and Groovy.
The choice is yours.
Simple yet flexible threading model.
Thread-safe component handling.
True server-side Modal dialog.
Suspend and resume event listeners freely.
100% Customizable User-Interface factory.
Loading ZUML pages not only from Web contents but also any repository
such as database.
Customizing the features of sessions, desktops and pages.
- New Features:
- 2677655: A way to use ID as UUID for unit test purpse
- 2724923: Support scrollIntoView to scroll an element to become visible
- 2779199: A way to let composer monitor the composing of all children
- 2778508: GenericXxxComposer shall be accessible immediatly
- 2778513: Add "xxx$composer" as a variabl of applied GenericXxxComposer
- 2666743: Support component-apply in lang-addon
- 2666812: Log ZK version number at server bootup
- 2677873: A way to always get full stacktrace
- 2681333: Resumable filedownload limit to allowed period and number
- 2681775: Resumable filedownload supports relative path
- 2689696: Native namespace supports zkhead
- 2708855: A way to customize CometServerPush for diff device
- 2675648: Server Push and number of browser windows issue
- 2713463: Audio supports the loop attribute
- 2718665: Flash supports the dynamic content (setContent)
- 2770471: GenericAutowireComposer shall support wiring ZScript varible
- 2209199: BeanShell error message shall show the correct line number
- 2314215: A way to specify the position of the popup component
- 2778507: Add load-after descriptive to DataBinder
- 2779281: Add save-after descriptive to DataBinder
- Bug fixes:
- 2684510: Unable to access implict objects if func defined in other namespace
- 2781051: The self implicit variable lost after doModal
- 2685872: Comet not send back new value of textbox if no listener
- 2684322: Nullpoint when accese to a nonexist page
- 2681819: normal page throws exception after installed zkspring
- 2689443: script in native namespace shall not encode the content
- 2687399: Filedownload error if included by JSP or other servlet
- 2691017: Filedownload with InputStream results empty file if blocked
- 2669197: filedownload.save(reader, content, filename) not working
- 2668190: NullPointerException on SessionsCtrl.getSession() when undeploy
- 2673128: Impossible to select some date
- 2705040: Navigating Combobox causes JS error
- 2711600: Applet generates the wrong param tags
- 2716731: flash component doesn't support absolute URI
- 2721780: Nested window resize problem
- 2722982: Tree render proble with a combobox and a lot of comboitems
- 2726542: The result of zk.revisedOffset is inconsistent between IE&FF2
- 2746948: Datebox shadow not sync
- 2747825: Add the attribute "title" in XSD for BorderLayout children
- 2769863: Unnecessary scrollbar appear in IE with Menu
- 2771231: Add attribute "oddRowSclass" for listbox
- 2769836: Favicon in Safari is not work
- 2715894: The header of Grid, listbox, and tree display error in IE8
- 2721977: WrongValuesException and focus
- 2560497: Dateboxes: "ddMMyy" is not working
- 2716537: Large data set in chart cause browser no response
- 2761151: fail to import zkdemo-3.6.0.war to Eclipse
- 1939263: Splitter - Dark blue bar won't overlap the light blue bar
- 2564298: Clear a Datebox with constraint
- 2777241: Exception StringIndexOutOfBoundsException in Maps loading
- 2697462: Tree selection is remembered even when unselected
- 2777293: Tree keeps old data with new Model
- 2778334: The doModal window in IE6 with SSL shows security issue
- 2710830: Position doesn't work if closable is set for window
- 2777216: Problem paging detail at Grid Component
- 2688197: Popup border disappearance on IE 7
- 2778524: Datebox always shows constraint-error
- 2688620: setSelectionRange() fails in Timebox and Spinner
- 2678340: timebox bug when tabbing to change foucs
- 2721980: Drag+Drop Problem on IE 6/7
- 2713338: Node object is not set in treeitem
- 2779453: Checkmarks lost when used in a detail component
- 2780038: zhtml.Messagebox.INFORMATION returns wrong value
- 2779247: No tooltip in chart after using jfreechart 1.0.13
- 2685842: Panel and Window corner's position error in Tabpanel(IE)
- 2780144: rendering of tree with z-dottree and hidden treeitems
- 2783319: Datebox format enhance