Released on September 10, 2008.
Getting Simpler and Richer
New Feature Highlight
- Comet Server Push is enabled which allows developer to create Web application in a new way.
- The layout of all ZK components are upgraded to a brand-new style, more responsive, and more interactive.
- Grouping Grid and Listbox is designed display data in an intuitive way.
- More Layout Components - Portallayout, Columnlayout, and Tablelayout are introduced to satisfy various requirements of UI design.
- A Powerful Container Component - Panel is introduced with more functionalities.
- Tabbox is much enhanced with scrolling features, and more molds.
- The concept of
moldSclass is introduced to customize layout of ZK components with ease.
- Spinner and Fisheyebar component is introduced.
- Chart supports Gannt Chart, Watermap Chart, Bubble Chart, Wind Chart.
- A convenient mechanism to monitor the performance of Web application.
- Fulfill Event is enhanced with URI Expression, and onFulfill Event.
- Iframe supports Bookmark management.
- Event Supports subscribe/publish Mechanism.
- ZUML Supports switch/case and choose/when
- See also New Features of ZK 3.5.
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:
- 1973888: Listbox support Listgroupfoot in Group
- 1972591: Grid support Groupfoot in Group
- 1907300: Listbox: support grouping
- 1997391: Provide a new component, Panel, like Window but more richer
- 2002986: Columnlayout Component
- 2049401: Provide a new component, Portal Layout, like iGoogle
- 2014828: Implement ZK own Fisheye component
- 2019158: Provide a Menupopup for Columns component
- 1959952: Support Comet-based Server Push
- 1951422: Grid: support grouping
- 2032202: Provide a detail component as master details
- 1962747: Allow to specify a XML fragment as compnent's content
- 1901211: Simplify the outline of Menu component with single TD
- 1845373: Support switch/case and choose/when
- 1925928: Add Spinner Component
- 1926069: Pass current value for bandbox/comobox in onOpen
- 1890941: chart support bubble chart
- 1890942: chart support wafermap chart
- 1890944: chart support gannt chart
- 1890943: chart support wind chart
- 1937237: Grid support vflex like Listbox and Tree
- 1957737: Support the function-mapper directive
- 1955900: A subscribe/publish meachism to handle events
- 1959380: Window support both properties minheight and minwidth
- 1955562: For theme: menuitem unchecked not visible
- 1895872: Keyboard support for menues
- 1944610: Data Binding support non-distinct collection items
- 1977343: The booting progress bar covers only ZK page if included
- 1981878: Groupbox's default mold support open/close effect as 3d mold
- 1990503: The blank text shall be preserved for some components
- 1997383: Provide a panel mold for Toolbar as Panel's foot toolbar
- 1997384: Toolbar support alignment control
- 2009346: Support event listener of ZK client cmp for cmp developer
- 1444991: Minimize / Maximize window decorations
- 2023188: A way to avoid the conflict of the prototype's method names
- 2032228: A way to call PerformanceMeter in ZK Loader
- 2039788: A way to notify parent if iframe's URL or bookmark changed
- 2041292: Borderlayout support title and animation like Outlook
- 2046034: Trendy Button
- 2046129: Trendy Slider and veritcal orient
- 2056723: Support tabbox scrolling and new mold
- 2056753: Tablelayout
- 2063596: A way to specify where to generate JS/CSS in ZHTML pages
- 2045837: PerformanceMeter adds the time after updating all components
- 2052603: A way to proxy ComponentInfo with ComposerExt
- 2045810: AnnotatedDataBinderInit accept relative path in arg0
- 2060367: More neat startup log for ignorable errors
- 2066299: fulfill: fire onFulfill after fulfilling the children
- 2070812: Fulfill allows to specify URI to create children from
- 2075293: Allow to specify listener in metainfo/zk/config.xml
- 2086401: A way to 'reset' component ID to be anonymous
- 2090533: button/listcell/menu/tab... supports the hover image
- 2092160: Image supports hover image
- 2092356: Unwrap ForwardEvent automatically in GenericEventListener
- 2094526: Components.wireVariables() shall wire implicit objects
- Bug fixes:
- 1953249: <borderlayout> inside <tabbox> is not visible
- 1944729: Windows and boxes inside tab panels
- 1911280: Borderlayout and iframe issue
- 1958774: cannot create tree with all treeitem branches opened
- 1962220: datebox: when 31th of May selected, select June - shows July
- 1939919: Borderlayout does not fit inside Window (IE6)
- 2009503: Datebox fail to verify when use a Local format such as 'MMM'
- 1939859: splitter of borderLayout problem
- 2051014: NPE error with ZK + Tomcat Clusteriing
- 2056760: Fail to change the width of Listbox
- 2051639: Data binding longbox does not work
- 2037288: Clustering failed with AnnotateDataBinder
- 2041347: F1 key not overridden correctly in IE
- 2071996: Selection on a paged Listbox doesn't work an last page
- 2077739: Events.addEventListeners() cause Exception in onEvent()
- 2077792: GenericAutowireComposer shall support implicit objects "arg"
- 2041674: Menubar popup disappears with disabled menuitem
- 2080237: A disabled Menuitem with href can link to the href location
- 2080346: Onchaning evt of combobox wrongly includes type-ahead string
- 2075332: Paginated listbox doesn't expand properly inside a BL(IE)
- 2079837: Timebox behaves wrongly if there is scrollbar
- 2081560: Unresponsive script warning when changing big ListModel
- 2086020: onchanging event of combobox didn't fired properly
- 2086350: Select a nested listbox that should not throw a exception
- 2088269: radiogroup wouldn't work before ZK finish loading
- 2088496: OPERA ONLY - hbox setAlign does not update in view.
- 2090731: Button... unable to setImage if setImageContent was called
- 2082896: ZK conflicts with Liferay 5.1.1
- 2088712: separator with bar & spacing=1px not show in IE
- 2092632: Session.invalidate causes an exception in Jetty
- 2092716: Desktop.isAlive always true
- 2094523: Components.wireFellows() shall wire fellows then ancentors