ZK 3.0.2

Released on January 22, 2008.

Download Now

Getting Simpler and Richer

New Feature Highlight

  • jasperreports allows you to produce report in pdf.
  • ListModel and DataBinding supports Combobox
  • Datebox supports valid range of date.
  • Echo Event allows you post message before long operation.
  • The performance of live data for Grid and Listbox is improved.
  • JpaUtil and OpenEntityManagerInView allows you to support J2EE more easily
  • See also New Features of ZK 3.0.2.

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:
    • 1862036: Combobox supports ListModel
    • 1764967: Combobox to support List binding
    • 1392551: Add filter for combobox
    • 1867539: Combobox to support type-ahead
    • 1796281: Improve Working with Combobox
    • 1598234: strict autocomplete in comboboxes
    • 1867638: The fulfill attribute support multiple component
    • 1854894: Allow EL expression in the use attr (consistent with apply)
    • 1874335: Support the forward directive to forward to another page
    • 1854857: A way to specify a range for datebox's constraint
    • 1482341: Datebox supports a valid range of days
    • 1485247: Datebox supports a valid range
    • 1855653: Optimize Live Data with Listbox and Grid
    • 1853745: A way to customize input&textarea's invalid look with CSS
    • 1857363: A way to invoke event listener after updating client
    • 1853791: JpaUtil and OpenEntityManagerInView
    • 1845408: Add getReference() in SelectEvent
    • 1858762: A way to show the busy message from server
    • 1859501: Close fileupload dialog if ESC is pressed
    • 1859533: Prevent the same button clicked twice for long operation
    • 1869053: A way to plugin a processor to DHtmlUpdateServlet
    • 1836002: Window component to support re-size
    • 1870974: JasperReports component
    • 1870980: A way to retrieve the native interpreter
    • 1840878: Multiple uploads limitations
    • 1676304: import link, variable-resolver, taglib, xel-method and so on
    • 1869370: Missing elements in zul.xsd
    • 1872505: Provide a "parent" position for Window component
    • 1873426: Don't stop loading lang.xml if class not found
    • 1834408: Additional setter for context menu
  • Bug fixes:
    • 1859776: Not responsing if session timeout with IE6
    • 1710925: The style component has no effect if added dynamically (IE)
    • 1852313: 'offsetWidth' is null or not a number
    • 1854571: Two clicks to close Messagebox if it took long to process
    • 1852895: Combo getSelectedItem()
    • 1853902: Radiogroup in schema does not allow content other then radio
    • 1852304: Menuitem popup="" does not stay up
    • 1857166: Error with tabbox + listbox filled in onCreate method
    • 1857731: tabbox + listbox filled in onCreate + simple window
    • 1858869: onOK in textbox fires onOK twice
    • 1859568: Change toolbarbutton href changes layout
    • 1858838: Close the closable window over the listbox(IE6 only)
    • 1862830: Grid's border dispears
    • 1862835: The width of row of Grid doesn't resize corretly
    • 1865584: Character Encoding error in Tomcat 4.1+ZK 3.0
    • 1860825: MessageBox Question Button Cancelar
    • 1867370: If column hid, each cell should be hidden at paging mold
    • 1867591: iDOM's Element is not serializable
    • 1862935: The height of window is not initiated to property value.
    • 1867534: zul css loaded in upload frame even if globally disabled
    • 1868454: nested modal windows problem
    • 1869003: grid+databinding+HashSet defect when remove an item
    • 1869062: onChange Combobox with ENTER choice
    • 1870821: shift + tab doesn't go back to the previous input comp in FF
    • 1870996: Exception when use ListModelSet with SimpleListModelSharer
    • 1869614: Problem when switching from ListModelList to ListModelMap
    • 1871762: Failed to import init if the importing page has no init
    • 1868228: bug in the zul.xsd
    • 1871684: Treeitem Visible Issue
    • 1871833: Data binder should read "self".
    • 1873021: If listbox model size < rows broken in 2008-01-15 freshly
    • 1868371: desktop already "half-destroyed" when ExecutionCleanup runs
    • 1861715: hyphenation with Label objects not appropriate
    • 1829397: Timer repeatedly fired
    • 1873669: org.zkoss.zk.ui.event.Events doesnt work with custom UiEngine
    • 1873950: nested modal windows positioning(IE only)
    • 1874396: Audio and Firefox: Error
    • 1876198: Error msg appears when load page (databind+CustomConstraint)
    • 1876252: Listbox with the rows property doesn't appear very well
    • 1876991: zkdemo positive Intbox constraint failure
    • 1876988: Messagebox's button with wrong style in Opera
    • 1876292: Combobox initially returns old selectedItem after setValue
    • 1877059: Bug in removing tree's first-level treeitems
    • 1877051: Positive intbox can't accept "+123" as value

Upgrade Notes

  • The animating effect of window component in modal mode is changed. If you'd like the previous effect, you can use the setDefaultActionOnShow() method of window component to set the empty string ("") or use an easier way to define a preference name that a deployer can use to configure in WEB-INF/zk.xml. For example,
    
    <preference>
        <name>org.zkoss.zul.Window.defaultActionOnShow</name>
        <value>moveDown</value>
    </preference>