Released on February 5, 2009.
Getting Simpler and Richer
New Feature Highlight
- lang-addon.xml supports library-property.
- Able to access the URI of the error page
- A way to instantiate a macro programmingly w/o macro declaration
- Enhance <listheader> auto sorting to sort on fieldnames
89 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.
- 2354640: lang-addon.xml supports library-property
- 2433264: Able to access the URI of the error page
- 2493161: A way to instantiate a macro programmingly w/o macro declaration
- 2494920: Enhance auto sorting to sort on fieldnames
- 2512555: Converter convert date to String with annotated format
- 2559476: A way to turn off the filtering of clicks
- 2051014: NPE error with ZK + Tomcat Clusteriing
- 2165067: Fail to remove children via invoking it.previous()
- 2198961: AuUploader ignores 'nextURI' parameter
- 2208873: fail to loop an array declared in zsciprt using python
- 2241429: Cross-Site Scripting Vulnerability in ZK
- 2217915: filedownload doesn't work when opera opera 9.5.x
- 2337652: ID space cleanup problem if not attached to a page
- 2388345: Defect in use of forEach, arrays and data binding
- 2439090: Groupbox onVisi not called when visible.
- 2443726: Iframe with PDF cannot show when hidden (Firefox only)
- 2433176: Radiogroup.getSelectedItem and Index returns first item
- 2446672: toolbarbutton, disibled,can click image to fire event
- 2446682: Components.addForwards() occus an dead loop
- 2448170: i3-label-en.properties never use
- 2448099: FF only.SetAttr fail when addEventListener with $ event name
- 2448987: Unexpected ListModelList.subList() behaviour
- 2464484: Binding selectedItem of Radiogroup causes StackOverflowExcep
- 2468048: Namespace is not consitent with component hierarchy
- 2480892: Native component with forEach and non-native child incorrect
- 2487562: Keyboard problem in textbox inside a listbox (Firefox 3.0.5)
- 2463857: Popup window positioning problem and wierd behaviour!
- 2493245: zscript failed badly if macro's setMacroURI before setParent
- 2522437: Error display after invalidate desktop
- 2523090: Some binding load twice when binder.loadAll()
- 2555730: Unnecessary String cast on 'series' in SimpleCategoryModel
- 2562880: Popup should be closed when click on the arrow of the sort
- The default setting disables the feature of ignoring the consecutive
click events if it happens too close to the previous one
(within 390 milliseconds).
This feature is used to prevent the denial-of-service attack
and the user's clicking twice before a long operation returns.
However, it causes some confusion for the unit test
(if the click rate is too high), so it is disabled by default.
To enable it, specify the following in zk.xml.