ZK 3.6.1

Released on April 28, 2009.

Download Now

Getting Simpler and Richer

New Feature Highlight

  • MVC pattern enhanced.
  • An intuitive way to access Composer directly.
  • Use Component ID as UUID for unit test.
  • A way to delay databinding behaviors.
  • 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:
    • 2677655: A way to use ID as UUID for unit test purpse
    • 2724923: Support scrollIntoView to scroll an element to become visible
    • 2779199: A way to let composer monitor the composing of all children
    • 2778508: GenericXxxComposer shall be accessible immediatly
    • 2778513: Add "xxx$composer" as a variabl of applied GenericXxxComposer
    • 2666743: Support component-apply in lang-addon
    • 2666812: Log ZK version number at server bootup
    • 2677873: A way to always get full stacktrace
    • 2681333: Resumable filedownload limit to allowed period and number
    • 2681775: Resumable filedownload supports relative path
    • 2689696: Native namespace supports zkhead
    • 2708855: A way to customize CometServerPush for diff device
    • 2675648: Server Push and number of browser windows issue
    • 2713463: Audio supports the loop attribute
    • 2718665: Flash supports the dynamic content (setContent)
    • 2770471: GenericAutowireComposer shall support wiring ZScript varible
    • 2209199: BeanShell error message shall show the correct line number
    • 2314215: A way to specify the position of the popup component
    • 2778507: Add load-after descriptive to DataBinder
    • 2779281: Add save-after descriptive to DataBinder
  • Bug fixes:
    • 2684510: Unable to access implict objects if func defined in other namespace
    • 2781051: The self implicit variable lost after doModal
    • 2685872: Comet not send back new value of textbox if no listener
    • 2684322: Nullpoint when accese to a nonexist page
    • 2681819: normal page throws exception after installed zkspring
    • 2689443: script in native namespace shall not encode the content
    • 2687399: Filedownload error if included by JSP or other servlet
    • 2691017: Filedownload with InputStream results empty file if blocked
    • 2669197: filedownload.save(reader, content, filename) not working
    • 2668190: NullPointerException on SessionsCtrl.getSession() when undeploy
    • 2673128: Impossible to select some date
    • 2705040: Navigating Combobox causes JS error
    • 2711600: Applet generates the wrong param tags
    • 2716731: flash component doesn't support absolute URI
    • 2721780: Nested window resize problem
    • 2722982: Tree render proble with a combobox and a lot of comboitems
    • 2726542: The result of zk.revisedOffset is inconsistent between IE&FF2
    • 2746948: Datebox shadow not sync
    • 2747825: Add the attribute "title" in XSD for BorderLayout children
    • 2769863: Unnecessary scrollbar appear in IE with Menu
    • 2771231: Add attribute "oddRowSclass" for listbox
    • 2769836: Favicon in Safari is not work
    • 2715894: The header of Grid, listbox, and tree display error in IE8
    • 2686585: fileupload.get javascript error on jsp pages
    • 2721977: WrongValuesException and focus
    • 2560497: Dateboxes: "ddMMyy" is not working
    • 2716537: Large data set in chart cause browser no response
    • 2761151: fail to import zkdemo-3.6.0.war to Eclipse
    • 1939263: Splitter - Dark blue bar won't overlap the light blue bar
    • 2564298: Clear a Datebox with constraint
    • 2777241: Exception StringIndexOutOfBoundsException in Maps loading
    • 2697462: Tree selection is remembered even when unselected
    • 2777293: Tree keeps old data with new Model
    • 2778334: The doModal window in IE6 with SSL shows security issue
    • 2710830: Position doesn't work if closable is set for window
    • 2777216: Problem paging detail at Grid Component
    • 2688197: Popup border disappearance on IE 7
    • 2778524: Datebox always shows constraint-error
    • 2688620: setSelectionRange() fails in Timebox and Spinner
    • 2678340: timebox bug when tabbing to change foucs
    • 2721980: Drag+Drop Problem on IE 6/7
    • 2713338: Node object is not set in treeitem
    • 2779453: Checkmarks lost when used in a detail component
    • 2780038: zhtml.Messagebox.INFORMATION returns wrong value
    • 2779247: No tooltip in chart after using jfreechart 1.0.13
    • 2685842: Panel and Window corner's position error in Tabpanel(IE)
    • 2780144: rendering of tree with z-dottree and hidden treeitems
    • 2783319: Datebox format enhance