ZK 2.3 RC

Released on February 13, 2007.

Download Now

Getting Simpler and Richer

New Feature Highlight

Feature Updates

  • 75 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:
    • 1653099: JavaScript support (for zscript)
    • 1613080: Groovy support (for zscript)
    • 1656785: Ruby support (for zscript)
    • 1636304: Add Grid footer (foot and footer)
    • 1639117: Add Tree footer (treefoot and treefooter)
    • 1467524: Component and Page supports getZScriptMethod
    • 1627515: A way to turn off logs completely.
    • 1628339: Make the tooltip open/close delay intravals configurable.
    • 1628452: Make the delay to prompt the Processing dialog configurable.
    • 1632869: Support messages in Bulgarian. Thank Boril Yonchev for his contribution.
    • 1641269: Supports URIInterceptor.
    • 1639628: Add afterSuspend method to EventThreadSuspend interface.
    • 1647101: Upgrade to script.aculo.us 1.7.0
    • 1636000: Remove indexOf() method from ListModel interface.
    • 1647599: Allow the page directive being placed under other elements
    • 1652091: A way to let developer create Listitem with live data
    • 1649781: DataBind support nullify default configuration
    • 1649795: DataBind support disable default configuration
    • 1639707: A way to determine whether there's any suspended thread
  • Bug fixes:
    • 1630359: RequestResolver's application scope was implemented wrong
    • 1636562: Include a page that include another failed if relative path is used
    • 1635685: popup menu conflict with confirmClose (IE only)
    • 1633335: usability bug on "autocomplete" of combobox
    • 1633982: Label spanning 2 colums and specified width (IE only)
    • 1633176: Hiding zhtml component with visible property is not working
    • 1638447: Modal nested window positioning problem
    • 1642270: InterPortletFilter doesn't work
    • 1642386: Output of DHtmllayoutFilter is truncated if content-length
    • 1639558: Uploaded Media cannot be processed more than once
    • 1647114: Draggable in a scrollable listbox positioned wrong (Opera)
    • 1647085: Clients.confirmClose(null) does not work with sendRedirect
    • 1647139: A JS error if user press NO for sendRedirect+confirmCllose
    • 1647572: not working
    • 1649625: listbox inserted to wrong position if refChild is wrong
    • 1649554: Listbox failed to move an item (IndexOutOfBoundsException)
    • 1641191: AnnotateDataBinder save error
    • 1643148: Bind save-when method problem
    • 1647811: Data Binding: EventListeners get lost...
    • 1647817: Data Binding: DOS with two Listboxes in same page
    • 1655128: Nested modal windows positioning problem (again)
    • 1650585: onOK event missing for combobox with autodrop="true" (IE)
    • 1657764: Combobox with autodrop won't close dropdown (FF)
    • 1657810: onOpen isn't fire when menu opens menupopup
    • 1650540: Usability bug:listbox with checkmark="true" multiple="true" (FF/Safari)
    • 1647845: Validation popups conflicts with visibility
    • 1649718: Droppable attributes suppress each other

Upgrade Notes

  • The concept of variables and methods defined in zscript are changed. Each interpreter now supports only one logical scope. Variables and methods defined in zscript are visible for the same interpreter. Refer to the Developer's Guide for details.
  • Page
    • The signature of getInterpreter and interpret are changed. You have to specify a language now.
    • getClass is renamed to getZScriptClass.
    • getVariable returns variables defined in namespace, excluding those defined in the interpreters.
      To retrieve variables defined in the interpreter, use getZScriptVariable.
  • Component
    • getVariable returns variables defined in namespace, excluding those defined in the interpreters. To retrieve variables defined in the interpreter, use getZScriptVariable.
  • EventThreadSuspend adds a new method called afterSuspend
  • ListModel removes indexOf() method
  • Interpreter, Namespace, Namespaces, VariableResolver and Method are moved from org.zkoss.zk.ui.util to org.zkoss.zk.scripting
  • Evaluator is moved from org.zkoss.zk.ui.util to org.zkoss.zk.el
  • Richlet adds the getZScriptLanguage method.