ZK 3.0 RC
Released on September 14, 2007.
Download Now
Getting Simpler and Richer
New Feature Highlight
- The performance of ZK is much improved - four ~ five times faster than ever!
- Server push is enabled which allows you to update client’s information actively and the usage is simple and intuitive.
- Add
forward property of components to forward event without programming.
- New expression of annotation is ease of use, and easy-to-read.
TreeModel is introduced which simplifies the job of Tree rendering.
- Flash components allow you to play audio and video files. (including youtube clip)
- Native namespace is implemented to speed up the performance while integration with HTML.
- To speed up the performance of ZK, EL evaluator is pluggable, and a new way to render ZK components is introduced.
- More integration with other frameworks, ZK has integrated with JSF, JSP, and Ext-JS.
- See also New Features of ZK 3.0 RC.
Feature Updates
-
79 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 (
java.lang.Comparator).
-
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
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:
- 1787513: Translate messages to Hungarian. Thank Andreas Klein (andiklein@idatso.com) for his contribution.
- 1579332: Server Push
- 1776116: A way to forward event to another component w/o programming
- 1774559: Introduce the native namespace to speed up the handling of HTML
- 1780018: A way to specify the namespace of native components
- 1780020: Support to generate XML output directly
- 1765987: Add timebox (by merge timebox from zkforge to zul)
- 1758837: ZK Flash Component
- 1537229: Treemodel for Tree
- 1786163: A way to make EL evaluator pluggable
- 1786165: Provide MVEL plug-in
- 1788194: A way to specify a class mold for rendering a component
- 1787604: A way to import classes for EL evaluator, such as MVEL, OGNL
- 1760212: A simpler way to annotation a component
- 1760689: Data Binding using new simpler annotation to component
- 1760691: DataBinder support validation phase
- 1776269: Comboitem supports description in HTML raw content
- 1638395: Timer component and Session timeout
- 1771412: DSP TLD shall support tag uri
- 1780301: Performance measurement of ZK applications
- 1765119: Authentication & AU Http Status Code Handling
- 1753222: A way to assign text to a property instead of child component
- 1758761: A way to attach a root component before another one
- 1751674: WebApp retrieves the major/minor version from getVersion
- 1752559: The script component shall support the content property
- 1752569: The style component shall support the content property
- 1752431: Change the modifier of addMoved in AbstractComponent
- 1753168: nextComponentUuid shall be called as late as possible
- 1759278: A way to get the request path of desktop
- 1766020: Icon of datebox shall be configurable (like combobox)
- 1760850: DHtmllayoutServlet.process() as protected
- 1766667: DataBinder support multiple save-when events
- 1769025: Move isAsapRequired from HtmlBasedComponent to AbstractComponent
- 1769792: Component add onPageAttached and onPageDetached
- 1767347: DesktopCleanup shall called before UiEngine.desktopDestroyed
- 1770594: Tab: use class instead of hardcode background in style
- 1770613: Groupbox: use class instead of hardcode background in style
- 1770614: Slider: use class instead of hardcode background in style
- 1771384: a way to add xmlns on generated tag
- 1772915: Desktop supports getPageIfAny
- 1775445: DSP Loader supports the compress option (like ZK Loader)
- 1760203: expiration time of events execution in UiEngineImpl
- 1776006: Slider supports value submitting in form
- 1776007: Calendar supports value submitting in form
- 1780078: A way to map an extension to a language
- 1780128: shall support contentType
- 1780111: A way to specify DOCTYPE that will be generated to the client
- 1780804: A way to allow the client to cache the output
- 1782250: Performance improve: don't go thru Web container if incl ~./
- 1765212: Avoid annoying selection during drag-drop
- 1789258: A way to configure the cache of the event methods
- 1789830: A way to decouple Caption assumes LEGENG if default mold
- 1791353: Tabbox adds a simpler look
- 1441351: zebra colors for listbox
- 1792877: Tab and gbox's default height shall be configurable with CSS
- Bug fixes:
- 1751603: zk.renType in common.js not handling sessionid
- 1752477: combobox in groupbox and vbox failed to pos button (IE only)
- 1753712: Detaching component in DesktopCleanup causing IllegalStateException
- 1753216: ZUL Tree onOpen vs Page Size
- 1753269: Inproper deleting rows from grid with live data
- 1755235: zkplus doesn't work with Java 1.4
- 1755843: if/unless not working for onClick events
- 1757607: Failed to open two or more treeitem of the same tree
- 1759419: Path.getRequestPath returns "" if generated by zkFilter
- 1761686: Failed to reposition grid foot
- 1769047: Fail to data binding listbox with nested attributes
- 1765819: Combobox.setReadonly(boolean) doesn't work
- 1766244: IE only (6.0, 7.0): Combobox arrows render outside grid
- 1773652: Error message for non-existent zs fie is wrong
- 1773575: button href attribute with "#" character leads to js-loop
- 1768343: zk-2.4.1 - annotations not available at constructor
- 1773902: OpenSessionInViewListener not properly close Hibern. Session
- 1774432: Bug in adding treeitem to tree's first-level treechildren
- 1775339: getWriter() has already been called while use forward
- 1775051: Listbox multiple select and databinding issue
- 1778258: EL cause nullpoint when createComponent or fulfill
- 1778320: Grid/listbox/tree don't support scrollTop well
- 1777696: Richlet served error page fails
- 1770144: Memory Leak in AImage
- 1783363: Unable to drag a listitem out of the box (IE only)
- 1786348: Failed to include two ZUL files
- 1789211: French translation errors
- 1786154: forEachStatus.previous.index fail to set inner forEachBegin
- 1786082: tab - onClick not fired
- 1780044: Dynamically created tab box not shown properly in Firefox
- 1785457: SpringTransactionSynchronizationListener requires Hibernate3
- 1771810: Incorret display of a datebox calendar inside a popup
- 1760140: Comboitem error in overlapped windows
- 1789428: ON_DROP event not fired on imagemap (FF and Safari only)
- 1757257: Bandbox dtid is null in Firefox with Liferay
- 1791498: Visual effect of tab's width incorrect if select large panel
- 1758638: Trunked filename when Filedownload
- 1792403: Listbox/combobox use class instead of style to style onmouseove
- 1756589: Updated Listitem cannot be select in IE after a few seconds
- 1719826: Listbox componet disapear
- 1760929: Overlapped windows can't be created in not visible container
- 1793044: Returns wrong value from Utils.intsToString()
- 1775014: Grid Size Growing After SetModel
- 1755847: Overlapped window owned by popup closes both when closed
- 1756559: Listbox ("select" mold) mouseless selection (FF only)
- 1731646: error-popup not visible
- 1694095: Combobox list vertical position
- 1765047: tabbox not rendering well with percent width

Upgrade Notes
- The way to customize the zebra color (striping) of
grid is changed.
ZK 3.0 uses dual class names, grid and odd, to provide the style
instead of renaming the class name to grid-od. Note: odd is the
default value returned by getOddRowSclass(), which is customizable.
Example,
tr.odd td.gc {
background: yellow;
}
- The way to customize a
grid not to stripe rows is changed:
<grid oddRowSclass="none">
-
el-config (of zk.xml) is replaced with xel-config, and the class
must implement org.zkoss.xel.ExpressionFactory instead of
javax.servlet.jsp.el.ExpressionEvaluator.
-
org.zkoss.zk.scripting.VariableResolver is removed.
Use org.zkoss.xel.VariableResolver instead.
- EL expressions specified in
lang.xml and lang-addon.xml need to
specify self to access a property.
-
org.zkoss.zk.scripting.Method is deprecated
Use org.zkoss.xel.Function instead.
-
Page.getZScriptMethod() is deprecated.
Use Page.getZScriptFunction() instead.
- The
onTimer event won't keep the session alive.
To make it behave the same way as old versions, you can specify
<session-config>
<timer-keep-alive>false</timer-keep-alive>
</sesion-config>
- The signature of
PageCtrl's init method is changed.
- The signagure of
ComponentInfo's applyProperties is changed
- Utilities of JSP, such as JspLoaderServlet, are removed, since they are
nothing to do with ZK
- The signature of
LanguageDefinition's contructor is changed.
- About directives:
New name are introduced though it is backward compatible with old versions:
The component directive
mold-name is renamed to moldName
mold-uri is renamed to moldURI
macro-uri is renamed to macroURI
The page directive:
script-language is renamed to scriptLanguage
- About
zk.xml:
The disable-behind-modal, keep-across-visits, processing-prompt-delay
and tooltip-delay elements are moved to the client-config element,
though you still can specify them under the desktop-config element
(because of the backward compatibility)
- Device is shared by all desktops. The
init method is changed.
It is better to derive from org.zkoss.zk.device.GenericDevice.
|
- 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
|