ZK 5.0.2 release notes

Released on May 12, 2010.

ZK 5.0.2 is a maintenance release focusing on fixing some issues and introducing requested features. The release feature over 12 new features and 72 bug fixes. Requested features include, enhanced jQuery selectors to enable ZTL testing, auto setting of pageSize when using a paging mold and introduction of a method to track Ajax requests in Google Analytics.

Getting Simpler and Richer

New Feature Highlight

  • Auto pageSize depending on the component's height
  • Enhanced jQuery selectors
  • Tracking Ajax requests with Google Analytics
  • A simple implementation of the FileuploadDialog
  • Defer rendering of client widgets

  • Please see the New Features for more information!
  • If you would like to upgrade from an older version the upgrade notes are available here!

Feature Updates

  • 120+ off-the-shelf Ajax 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, CKeditor, and Timeline components.
  • Event-driven, server-centric model
    • Ajax requests, application notification, and server push are all managed as events
    • Event Queue shields developers from the complexity of Ajax and server push, such as multi-thread programming
    • 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 access 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.
    • POJO components supporting interfaces and clustering. Easy to instantiate and manipulate directly with pure Java, or injected and managed by an AOP framework, such as Spring
    • Macro components. Develope full-featured new component by using other 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 Tracker:
    • 2988039:A way to defer rendering of client widgets
    • 2972509:Enhance jQuery selector to handle zk widget's ID and tag name
    • 2940704:auto-set pageSize in paging mold per the component height
    • 2994541:A way to specify the widget class
    • 2979894:Widget's client script supports EL
    • 2982454:A way to make AU work with, say, Google Analytics
    • 2974340:Generate zul's HTML content with JavaScript array/map
    • 2985686:A simpler way to change the implimentation of FileuploadDlg
    • 2989181:Notify a desktop that it has been recycled- onDesktopRecycle
    • 2992673:A directive allow set custom HTTP response header key-value in zul page
    • 2983365:Able to get application event queue on a worker thread
    • 2998003:An option to control whether to use IE 7 Compatible mode
  • Bugs fixed:
    • 2972950:Dynamic adding a SimpleConstraint cause js error
    • 2972980:Failed to add widget listener dynamically(addWidgetListener)
    • 2979875:Widget's method/field cannot be overridden dynamically
    • 2973036:ScalableTimer shall stop when hot redeployed (memory issue)
    • 2974364:bandbox setStyle not work correctly
    • 2973059:getValue() does not reflect last state in Safari/Chrome
    • 2974370:The maximizable comp in panel cause size problem with IE6
    • 2975362:Unable to close Messagebox using ceaseSuspendedThread()
    • 2976912:vflex="min" not work proper in borderlayout + grid
    • 2979680:dom.src.js using zk.innerX which is re-packaged
    • 2976519:Messagebox onClose with event thread disabled
    • 2979776:Safari+Chrome only. hflex="min" hides the grid
    • 2977948:IE6: sizable=true windows generate 404 errors
    • 2973306:Bad detail rendering if the grid has invisible column
    • 2980383:Tab scrolling places wrong position
    • 2980977:the stripe of the row will be disappeared by row.setSpans()
    • 2980478:Javadoc error Box.setPack(): "stretch" is not set by default
    • 2980425:Listfooter not aligning after listheader
    • 2980254:sendRedirect problem
    • 2981273:datebox display year incorrect
    • 2976323:Dragging menuitems on menubar
    • 2976934:Checkbox cannot be checked in a comp with listener onClick
    • 2984382:The dropdown list of the combobox is not align
    • 2980894:datebox year selection on ubuntu does not work
    • 2986282:The input of combobox is misalign on ubuntu
    • 2986413:DOM content generated not ending correctly
    • 2984412:On 2nd refresh app stucked if DesktopRecycle and defer include
    • 2986891:DesktopRecycle shall not reuse cache if query string changed
    • 2986905:The value of select mold listbox is wrong in Servlet
    • 2975748:Component with popup and onClick handler in ZK5
    • 2987076:The tooltip of treerow is null
    • 2984235:Tooltips not supported on textbox and combobox
    • 2981016:The combobox has wrong width when sets width "80px" with IE6
    • 2988327:When clicking draggable, 2nd browser window showup (FF only)
    • 2974195:Flashchart generates Exception for line/bar/column types
    • 2986227:The splitter can't drag well when cursor move to iframe
    • 2988261:Dropdown list of combobox disappear in panel and portallayout
    • 2989172:DesktopRecycle failed to send onClientInfo after reused
    • 2987059:Fileupload /include error on any version of Internet Explore
    • 2976395:Cannot open tree nodes(ZK JSP+Liferay)
    • 2990657:Combobox autocomplete="false" not work
    • 2990719:JsContentRenderer.java renderValue() missed "Boolean" type
    • 2990659:Decimalbox doesn't support the format with "R"
    • 2989808:decimalbox does not support "%" as input
    • 2988404:DecimalBox error formatting , and . (loss the scale!!)
    • 2991309:Tree: select tree row, then open, get wrong selected item
    • 2988046:Bookmarking in IE 7/8 doesn't work correctly
    • 2992688:The disabled attribute in combobox will not set the background
    • 2992785:Databind assigned an unallowed uuid format with @ sign
    • 2993604:The tree can't close after sets a new label on the treecell
    • 2994060:Set treeitem disable="true", append duplicate treeitem
    • 2994592:East/South appears on the wrong side
    • 2994634:Vflex calculate height incorrectly
    • 2995800:The height of portallayout down to 1 after panel maximized
    • 2995770:Region disappears when setOpen(true)
    • 2996359:Listbox unselectable after modal confirm from modal window
    • 2987885:Graphical glitch on datebox and timebox
    • 2996589:Unrecognized Unicode-Character in Textbox cause JS error
    • 2997034:scrolling bug
    • 2997079:Unable to define global function if loaded dynamically
    • 2997037:cannot enter large long integer into longbox
    • 2997402:Imagemap rightclick/doubleclick wrong coordinates
    • 2997111:BlackBerry mouse click error
    • 2997040:Fileupload.get(1) is not work with the limit
    • 2997975:datebox in readonly with buttonVisible="false"
    • 2998028:Include created in Java doesn't become instant mode
    • 2997862:vflex="min" not working on nested tabpanel
    • 2999154:Request a non-existent resource thru /zkau causes download
    • 2997548:Whitespace and native components
    • 2998196:Problem with dynamic setting of format pattern
    • 2999696:Exception when set <grid vflex="min"> (grid rod on)
    • 2999786:borderlayout in window with vflex="min" chop the bottom