ZK 5.0.4 release notes

Released on August 31, 2010.

ZK 5.0.4 is a release focusing on memory improvements and introducing requested new features. In addition to a significant reduction in memory usage ZK 5.0.4 also introduces many new features such as communication between iFrames, new horizontal and vertical layouts and enhanced components such as the slider and combobox.

Getting Simpler and Richer

  • 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
    • 3026623: Able to communicate among iframes without server push
    • 3040368: Provide a simple horizontal/vertical layout
    • 3031544: Allow to specify a shortcut instead of full namespace
    • 3046952: Clients.echoEvent supports any kind of object
    • 3041822: A way to minimize memory by not maintaining state at server
    • 3030392: Minimized the memory print of AbstractComponent and HtmlBasedComponent
    • 3030481: Combobox support Selectable (used with ListModel)
    • 3048583: Allow radiogroup not ancestor of radio so it can be anywhere
    • 3049306: A way to control the position of a modal window by left/top
    • 3034530: The footer of components supports content alignment
    • 3047459: Include old value in InputEvent
    • 3038615: Include data of old width in ColSizeEvent
    • 3027193: Add CSS, z-drag-ghost, to the ghosting when dragging
    • 3025422: The listbox in a container support fixed header
    • 3026221: Databinder shall fire onCreate when cloning each items
    • 3025279: Client: Able to listen the Ajax error
    • 3035171: (in lang.xml) shall support EL
    • 3032033: A way to customize the data format of AU requests
    • 3027238: A way to customize the resource loader of PageDefinitions
    • 3025419: The fixed header in listbox without width has correct size
    • 3029931: Post onAfterRender after onInitRender/onInitRenderLater
    • 3042290: Provide utility to make component complaint with JSF easily
    • 3038128: Allow all system-config (eg, engine-class) in zk/config.xml
    • 3028270: Slider support for clicking to increment or decrement
    • 1860341: Button support type="submit"
    • 2990932: Allow disable load-on-save mechanism in databinder
    • 3024156: Make Spring DelegatingVariableResolver execution-independent
    • 3050359: A way to merge serveral Javascript packages into the zk package
    • 2142143: Support for Value property in checkbox
    • 3051362: A way to specify system-wide variable resolver
    • 3052723: Avoid unnecessary onScrollPos from being fired
    • 3052761: Calendar supports moving to next/prev mon by mouse scrolling
    • 3052857: Provide a utile class for ListModel to support ListSubModel
  • Bugs fixed
    • 3023619: inline macro might cause nRoot to become a negative number
    • 3025339: incorrect implementation in Timebox and Spinner widget
    • 3026819: InputElement.setTabindex(-1) doesn't work
    • 3027158: The checkbox set focus dosen't work
    • 3029341: Click at "a" comp in the listbox will trigger select event
    • 3027322: draggable & sizeable conflicts
    • 3024208: Datebox rounded mold has error in image
    • 3030342: setModel to Listbox fail when onCreate and turn ROD on
    • 3031526: Focus-look incorrect if window changes overlapped/embed
    • 3033334: Reset listbox'smodel cause ClassCastException if UUID recycled
    • 3031562: hbox, vbox layout has error in ZK5.0.4
    • 3033010: Listbox with hflex listheader can expand but can not shrink
    • 3033016: Extra empty row when shrink fixed width Listbox
    • 3034505: A listbox in poup, open it first-time, the position is wrong
    • 3035079: Dom elem doesn't exist when parent do appendChild and rerender
    • 3034771: <script> shall have the type attribute to W3C compliant
    • 3035818: The longbox, doublebox receive a wrong value on server side
    • 3035847: The popup of combobox shall be destroyed when detached
    • 3035897: The longbox parse a wrong result when paste '100%'
    • 3032997: Applet params are passed incorrectly
    • 3036584: poup window disappears when mouseOver menuitem
    • 3023305: Typo in DateFormatConverter API page
    • 3039843: Paging Listbox without rod, ListModel shall not fully loaded
    • 3039282: NullPointerException when assign a model to Grid at onCreate
    • 3032567: No border is shown for captcha
    • 3025747: Fisheyebar UI strange when vertical=true, attachEdge=bottom
    • 3039948: Unable to turn on rod for Listbox if defined in its parent
    • 3039339: Column is not aligned in some special combination of sizes
    • 3037627: Cell with hflex in hbox causes JavaScript Error
    • 3036398: frozen scrollbar disappear when listbox with vflex="1"
    • 3040363: Datebox cannot select February
    • 3039364: Open the popup cause js error with IE
    • 3042165: Misplaced drop-down list of auto-complete combobox on iPad
    • 3033439: Listfooter missing font CSS
    • 3041907: drag-drop problem in tree (appendChild issue)
    • 3025750: Fisheyebar CSS file should use .css.dsp
    • 3035274: Doublebox not updating server when client side .smartUpdate
    • 3035121: Missing setErrorMessage method in InputElement.java
    • 3026665: Bandbox gets focus from children element focus
    • 3031511: drag and drop intbox not triggerign onDrop event (FF only)
    • 3014817: DateFormat set timezone from TimeZones
    • 3026667: Messagebox button does not have a min width on IE
    • 3042306: H/Vflex in IE6 can't shrink; others cause scrollbar space
    • 3027214: Button of the default mold shall not submit the form
    • 3037626: Splitter Doesn't Resize Cells Containing Grid
    • 3032885: Inplace rounded Combo Inputs have incorrect height
    • 3032892: Inplace Combo Input with no button have a tight width
    • 3033022: Accordion Tabbox gets wrong height by closing unselected tab
    • 3026669: Tabbox accordion animation strange
    • 3035230: Sets sizedByContent to a grid with width doesn't work
    • 3000305: DataBinder cannot set a value when constraint error
    • 3043561: decimalbox format error
    • 1952402: IFRAME inside Window load multiple times in FF if overlapped
    • 3034550: Window header should use fontFamilyT
    • 3035367: Updating not yet rendered llistbox model when vflex="true"
    • 3046360: NoClassDefFoundError: org/zkoss/util/Cleanups
    • 3046850: Decimalbox failed to handle very small number, 0.00000000001
    • 3046852: Doublebox wrong message for very small number, 0.00000000001
    • 3047534: The breeze theme's bandpopup is not high enough w/ listbox
    • 3048567: IE.Listbox rod.Drag huge data to bottom.Select and jump up
    • 3048564: IE only.Listbox rod, drag scroll to bottom, thumb jump up
    • 3049192: createComponents with parent but w/o page fail if fellow
    • 3049181: Checkbox problem (bug) with Banbbox + tree
    • 3049167: Totalsize increase when drag & drop in paging Listbox/Grid
    • 3051182: Nested box's splitter not fixed correctly if size inner one
    • 3051305: Active Page not update when drag & drop item to the end
    • 3042016: Grid rod does not work if new Grid with Java code
    • 3051987: Readonly combobox has a border between button and input
    • 3052381: Client side dateformater parse a wrong value in italian
    • 3052208: Hovers on menu are a bit hit and miss with IE
    • 3053311: A colorbox in menu doesn't has same color when change orient
    • 3053313: Constraint with no past can't select today