ZK 3.0.7

Released on August 1, 2008.

Download Now

Getting Simpler and Richer

New Feature Highlight

  • Tree supports paging mold.
  • Image supports javax.awt.image.RenderedImage.
  • A more convenient way to forward events in Java.
  • See also New Features of ZK 3.0.7.

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.

New Features

  • 2026318: Enhance Tree's paging to use Paging cmp as its paging mold
  • 2003033: Provides an utitlity to forward events to a component
  • 2003751: GenericAutowireComposer support implicit objects and alert()
  • 2010314: A way to post event that will be executed after others
  • 2015827: Provide utilities to encode AWT image to ZK image
  • 2016523: Stop timer at the client if session timeout
  • 2028549: Support Image.setContent(javax.awt.image.RenderedImage)
  • 2033582: Adds the execution variable as builtin
  • 2034518: Support library(application)-level propertities

Bug Fixes

  • 2008676: Firefox 3: toolbarbutton with href causes false alarm
  • 2017848: ListModelList.iterator().remove() does not work
  • 2018378: ListModelList.listIterator(1).previous().remove() not work
  • 2018385: ListModelList.listIterator(0).next().set() not work
  • 2015878: ThreadLocalListener causes NullPointerException on timeout
  • 2020152: requestCompleteAtClient not called if browse to another URL
  • 2019171: IE Bookmark Bug - first bookmark is ignored
  • 2020454: JpaUtil.getEntityManagerFactory should cache in WebApp scope
  • 2010389: Data binding error: changing selected item of combobox
  • 2021100: When IdGenerator.nextComponentUuid called, parent/page null
  • 2023407: JavaScript error if zk.load called with ckfn
  • 2024133: ZKdemo's theme cannot be changed
  • 2024223: Shall throw Exception when pass in arg0 is not correct
  • 2026493: The height of Listbox with vflex is wrong in paging mold
  • 2009958: auto selection by key doesn't fire event
  • 2010019: listbox firing select event with null as a parameter
  • 2003798: Cannot select tree row using hbox inside treecell
  • 2027442: Paging mold Listbox + model not in order
  • 2027719: Changing Include's src causes ServletException
  • 2030986: Disable checkmarks can be selected by shift button
  • 2033357: PerformanceMeter doesn't work if multiple desktops (Liferay)
  • 1869744: Fileupload display mess label in upload and cancel button

Upgrade Notes

  • Tree supports the paging mold. The original way to paginate treechild is discarded. To enable the paging mode, use the following codes
      	<tree mold="paging">