ZK 2.3.1
Released on May 2, 2007.
Download Now
Getting Simpler and Richer
New Feature Highlight
- New (and simpler) way to customize the display of error messages.
- Support the file download that opens a Save dialog at the client
to let the user download arbitary file from the server.
- A new component called
captcha is added
to simplify the use of CAPTCHA.
- Java Interpreter (based on BeanShell)
supports hierachical scopes, aka., nest scopes.
- Many more...
- See also New Features of ZK 2.3.1.
Feature Updates
-
76 XUL and 82 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 (
java.lang.Comparator).
-
Auto-completion for combobox.
-
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
expression and
$#,##0.
-
100% Java API of Google Maps,
FCKeditor,
DOJO,
and Timeline components.
-
Event-driven, server-centric model
-
More than 20 events are supported:
onChange, onChanging,
onScroll, onSelect, onShow,
onZIndex...
-
All events are processed at the server. No hurdle to communicate between clients
and servers.
-
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
HTML pages.
- Powerful yet intuitive control flow by the
if, unless and forEach attribute.
-
Scripting in EL expressions and your favorite scripting languages,
include but not limited to Java,
JavaScript,
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
existent components.
-
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,
JavaScript,
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.

What's New
- New Features:
- 1698249: A way to customize the error box withouot writing JavaScript
- 1690498: A way to download a file from server with save as dialog
- 1663482: BeanShell shall support hierachical scopes like 2.2 does
- 1688892: A way to abandom Milieu
- 1699729: Adds the deferred option to zscript
- 1686198: A way to specify custom attributes in lang addon
- 1688093: Remove Component's param since it's redundant to custom-attribute
- 1686617: generate onClientInfo when browser size changes
- 1687371: button and checkbox suport DoubleClick
- 1689560: Add Events.sendEvent(Event evt)
- 1684148: support captcha component
- 1693686: Rightclick shall select the list item if it is not selected
- 1692783: ListModelConverter coerce empty Listmodel from null
- 1692772: a way to limit live-threads
- 1696799: doModal shall be allowed if not in processing an event
- 1642306: Position overlapped/popup widows at center, left, right...
- 1698195: Translate messages to Swedish. Thank Easit AB (http://www.easit.com) for his contribution.
- 1699225: Translate messages to Turkish. Thank Kursat Kurt for his contribution.
- 1699073: A way to prevent removing a desktop when user browse away
- 1617806: A way to support custom failover mechanism
- 1704040: Add onSelection event to InputElement
- 1705531: Textbox supports setSelectionRange
- 1704040: Add onSelection event to InputElement
- 1705715: InputElement's clearErrorMessage shall be public
- 1704194: Get value without validation -- getRawValue and getRawText
- 1708577: A way to control default encoding of the uploaded text file
- 1708000: ListModelXxx support Listbox and Grid sorting
- 1708615: Upgrade to jFreechart 1.0.5
- 1708616: Upgrade to jRuby 0.9.9
- 1710373: ListModelConverter should accept BindingListModel
- 1710542: Make AImage serializable
- Bug fixes:
- 1682844: Java 1.4.2 compatibility problem with StringBuffer.insert
- 1685165: bundled asm.jar imcompatibility with ZK 2.3
- 1686521: IE6 only. Opaque round corner of Window title
- 1686278: Rightclick event request's dtid param is null (with Liferay)
- 1687233: Grid creates blank row into wrong place when model changed
- 1673839: zkFilter doesn't handle redirect response properly
- 1688261: Groupbox/window caption wrong behavoir when null
- 1688071: tabpanel incorrectly rendered in FF2.x
- 1689346: Listbox Databind broken in 2007-03-27
- 1688200: Variable Resolver in Macro Components broken
- 1690524: animation onshow, onhide fail to apply on menupopup
- 1690399: ListModel out of sync when Listbox sorted
- 1692660: Resize the width of a child of hbox doesn't work properly
- 1690992: Hbox doesn't render correctly if a cell is invisble
- 1690583: popup incorrectly rendered when attached to
- 1698190: Constraint in zscript cannot access components by name
- 1694879: Fileupload of txt file not working
- 1699786: Execution.isAsyncUpdate(null) shall return if in async-updat
- 1702216: DHtmllayoutFilter cannot parsing DOCTYPE
- 1701319: setVisible method is not working for Vbox
- 1698981: The constraint doesn't works when assing value first
- 1701986: The error msgbox remains even if error is corrected
- 1697214: in TAB:slider always in left position even if curpos changed
- 1706019: Bandbox validation on firing always
- 1706290: Menu and comobox in popup causes unexpected dismiss
- 1707153: Menu and comobox doesn't work properly in a context popup
- 1707254: Menu and comobobox in bandbox causes unexpected dismiss
- 1704072: Can not work with spring 2.0.x
- 1692495: Invisible iframe in tab incorrectly handled on FF2.0
- 1708752: org.zkoss.zk.ui.sys.ConfigParser Typo
- 1684164: Readonly attribute on checkbox doesn't works
- 1709788: databind with checkboxes
- 1710412: Window border incorrect if height specified and shown later
- 1710552: No need to hide iframe if it is HTML
- 1710697: Unable to add style dynamically (IE only)
- 1707818: Validate in onChange failed to check for 2nd onblur
- 1710946: Comobox not allow shift+tab if autodrop (Safari only)

Upgrade Notes
org.zkoss.zul.Constraint is simplified while
org.zkoss.zul.ClientConstraint and
org.zkoss.zul.CustomConstraint are added to
have better control.
- The way to sort listbox/grid with live data is changed:
implements ListModelExt instead of overriding the sort method.
Refer to the dev's guide for details.
- To embed an iframe with contents other than HTML (such as PDF), you
have to specify autohide to true.
<iframe autohide="true" src="my.pdf"/>
UiFactory's newComponent() adds an extra argument, clsnm.
- Milieu and InstanceDefinition are removed. ComponentInfo is added.
- A component has a reference to the component definition
- ComponentInfo represents a node in a ZUML page.
It is used to create a component, but the component doesn't
have any reference to it once created.
- max-event-threads is renamed to max-spare-threads
- onModal is no longer sent to the error page. Developers have to
specify
mode="modal" explicity.
- The protected getRawValue method of InputElement is renamed to
getTargetValue.
- Execution.isAsyncUpdate(null) means whether the execution is
asynchronous updating a page (rather than creating a new page).
- The readonly property for checkbox, button and listbox is removed,
since it is not applicable.
|
- 3.5.0 on September 10, 2008
- 3.0.7 on August 1, 2008
- 3.0.6 on June 24, 2008
- 2.4.3 on June 23, 2008
- 3.0.5 on April 30, 2008
- 3.0.4 on March 25, 2008
- 3.0.3 on Feburary 01, 2008
- 3.0.2 on January 22, 2008
- 2.4.2 on December 19, 2007
- 3.0.1 on December 17, 2007
- 3.0.0 on November 6, 2007
- 2.4.1 on July 6, 2007
- 2.4.0 on June 8, 2007
- 2.3.1 on May 2, 2007
- 2.3.0 on March 20, 2007
- 2.2.1 on January 2, 2007
- 2.2.0 on December 13, 2006
- 2.1.3 on October 24, 2006
- 2.1.2 on October 3, 2006
- 2.1.1 on September 19, 2006
- 2.1.0 on August 28, 2006
- 2.0.1 on June 26, 2006
- 2.0.0 on June 13, 2006
- 1.1.0 on March 20, 2006
- 1.0.0 on February 27, 2006
|