ZK 3.5.2

Released on December 8, 2008.

Download Now

Getting Simpler and Richer

New Feature Highlight

  • New ZKDemo - more use cases, easier searching, and better usability.
  • MVC Pattern enhanced with Data Binding
  • Use Template to Layout Web Pages
  • Define Library Properties in lang-addon.xml
  • New Features

Feature Updates

  • 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 (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:
    • 2173627: A way to specify where to gen ZK tags in JSP (incl zul)
    • 2173943: Enhance the generation of noscript (unavailable message)
    • 2188951: Provide layout(template)-injection page composition
    • 2086692: Data binder should have access to the composer
    • 2314150: Execution.isBrowser(type) should be able to detect iphone..
    • 2354640: lang-addon.xml supports library-property
    • 2354769: Add the ZK 3.0.x button mold for ZK 3.5.x
    • 2354768: Add the ZK 3.0.x paging mold for ZK 3.5.x
    • 2368975: Data binder provide getAllBindings() to ease getting all
    • 2386550: ZK Component Interface
  • Bug fixes:
    • 2154845: tab switch in Java - setImage makes layout go crazy
    • 2156410: <noscript> shall be placed inside body rather than head (FF)
    • 2162808: False alarm when using xsi:schemaLocation="..."
    • 2163047: Some Zul components fail to clone and serialize
    • 2165067: Fail to remove children via invoking it.previous()
    • 2182062: Scroll button show in nested tabbox
    • 2182111: tab strange when label is null
    • 2188572: forEachStatus sample code does not work
    • 2182972: issue with overlapped window, no title or border
    • 2154611: Menuitem in Menubar - quirks
    • 2197450: getNextSibling() not maintained in root components
    • 2186722: Typo in window code sample
    • 2199361: Failed to create components in Initiator.init()
    • 2198961: AuUploader ignores 'nextURI' parameter
    • 2202620: Comet unable to stop in the comet thread
    • 2208873: fail to loop an array declared in zsciprt using python
    • 2227929: createComponents(String, Map) shall not add to current page
    • 2224964: FileUpload hang in IE on 1st click
    • 2241429: Cross-Site Scripting Vulnerability in ZK
    • 2233787: No selected item in radiogroup if select by arrow key
    • 2261249: the bug of Grid with sorting
    • 2280308: WrongValueException message is disappearing...
    • 2280258: Setting the widths property of hbox with splitter is wrong
    • 2308265: forEach doesn't handle boolean array
    • 2313106: Fail to invalidate cmp inside borderlayout if flex=true...
    • 2313445: It looks like strange after invalidate verticle tabs.
    • 2217915: filedownload doesn't work when opera opera 9.5.x
    • 2337652: ID space cleanup problem if not attached to a page
    • 2319972: Tree with checkmarks shows layout quirks
    • 2349456: It's not possible to navigate a listbox with keyboard only
    • 2355376: IE fail in some special case
    • 2241309: Clone component shall clone GenericAutowireComposer as well
    • 2355943: Default content font-family (fontFamilyC) in Linux
    • 2376488: DateBox parsing problem
    • 2383106: Back button and form values reset not recognized
    • 2388345: Defect in use of forEach, arrays and data binding

Upgrade Notes

  • getMoldSclass is deprecated and replaced with getZclass since we are going to provide ZK Cascading Classes that allow developers to configure the CSS with the component name.