ZK 3.0.5

Released on April 30, 2008.

Download Now

Getting Simpler and Richer

New Feature Highlight

  • A user-friendier way to handle server's out-of-service
  • The client side library has been enhanced.
  • An easy way to get focus.
  • See also New Features of ZK 3.0.5.

Feature Updates

  • 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 (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:
    • 1951358: A way to have component-specific Command
    • 1951286: JavaScript utils: comm.sendClick and comm.sendUser
    • 1936373: Translate messages to Arabic. Thank Ayman Ahmed Elgharabawy for his contribution.
    • 1944509: textbox supports onCancel
    • 1944512: HtmlBasedComponent supports setFocus(boolean)
    • 1947534: A way to specify the session cache
    • 1948462: AuResponse supports DeferredValue
    • 1953246: Smart update supports an array of values
    • 1949336: Component supports isInvalidated
    • 1914491: BindingListModel subclasses are not accessible.
  • Bug fixes:
    • 1929139: [IE6/IE7 only] Incomplete requests being dropped
    • 1926759: Invisible splitter still visible
    • 1926742: Javascript Error after filedownload + doModal
    • 1926092: Treeitem/listitem popup/context does not stay up
    • 1926990: Timebox didn't show button when buttonVisible from false to true
    • 1927788: ESC stops Ajax (FF only)
    • 1927196: groupbox with grid bug (IE6Only)
    • 1927154: IE6Only: grid inside tabbox floats outside tabbox area
    • 1926480: Cant change header label dynamically.
    • 1930068: IE appears corpse of Paging while using external Paging comp
    • 1926094: Listfooter overlays Listheader (IE6)
    • 1822717: slider's layout went wrong if sliding parent groupbox(IE6)
    • 1882277: Overflow:auto lost when swiching accord tabbox (Safari only)
    • 1752907: groupbox mold=3d FF animation jumping
    • 1920793: The focused style of selected item differences Firefox/IE
    • 1936366: focus don’t work after Messagebox
    • 1933050: onSelect fail in Listbox's select mold when use key(FF&Sa)
    • 1936804: combobox.onInitRender(Event data) triggers validation.
    • 1472534: error popup is shown behind select inputs(IE6 only)
    • 1938345: Log shall use Locale.getDefault, not Locales.getCurrent
    • 1882432: Scrolbar of listbox is moved after sorting in Opera
    • 1939059: Messagebox fail when the last node is a native HTML
    • 1939061: <?page complete="true"?> not applicable to zul pages
    • 1938534: Upload causes an exception, not reproducible but with log
    • 1813518: Component namespace not work for page-level compoenent-def
    • 1906748: Combobox, binding and selected item Fail in Java6 only
    • 1942735: Failed to render with invalid URL as href(IE7 only)
    • 1943783: Timebox fail to listen onOK event
    • 1944918: character encoding problem with pre-Servlet 2.4
    • 1945361: AjaxDevice's getContentType() shall not return charset
    • 1943594: onblur shall not be sent if click on combobox's dropdown
    • 1896267: zul.xsd invalid
    • 1941947: Cannot find associated CollectionItem error
    • 1948963: Timebox validation
    • 1950313: F - 1764967 bug

Upgrade Notes

  • Session's getNativeSession() returns an instance of PortletSession (rather than HttpSession), if ZK porlet is used.
  • DataBinder's addCollectionItem(String comp, CollectionItem decor) is deprecated. Use addCollectionItem(Class item, Class owner, CollectionItem decor) instead.