ZK 5.0.8 release notes

Released on Aug 31, 2011.

ZK 5.0.8 is a maintenance release focusing on fixing bugs with introductions to a few new features including an upgrade to support JasperReports 4, an introduction to a new databinding composer, locale improvements for components and others.

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
    • ZK-214: Add a databinding composer instead of initiator
    • 3316591: Allow user to specify error-box position
    • 3326788: A way to name the composer GenericAutowireComposer
    • ZK-250: Support <?style?> to generate CSS directly without using a component
    • 2971889: Way to notify server of JS error
    • 3306718: Treeitem allows draggable/droppable (in addion to treerow)
    • 3287044: decimalbox/intbox/longbox/doublebox/doublespiner/spinner allows users to specify locale
    • 3309539: Timebox and Datebox support different language for different locale
    • 3310927: ZK JasperReport support JasperReports 4
    • 3315689: Optimize the HtmlMacroComponent
    • 3323594: Render on Demand for Grid and Listbox supports setInitSize
    • 3327013: A way to log message to the client
    • 3355806: Feature Update: custom-attributes shall be allowed to specify page's attrs (without specifying the scope attribute explicity)
    • 3307322: Control Keys support backspace
    • 3326111: A way to specify fileSizeThreshold for fileupload in zk.xml
    • ZK-274: A way to prevent the developers from using zscript
    • ZK-310: Support Clients.resize(wgt) to force the client to re-calculate the size, such as hflex/vflex
    • ZK-230: org.zkoss.zkplus.embed.Renders provides an option to control whether to generate addtion DOM element for the page
    • ZK-240: Optimize the memory footprint of Cell/Listcell/Treecell
    • ZK-248: System-level initiator shall be applied to richlet too
    • ZK-219: Update zk.Event documentation
    • ZK-287: The event instance shall be passed to the callback event listener of EventQueue
    • ZK-295: Animation effect of Borderlayout can be configured
    • ZK-78: A better Hungarian message file
    • ZK-348: iZUML shall use #{} instead of ${} so it is easy to use in a ZUML or JSP page
  • Bugs fixed
    • 3301375: native component in vbox stretch align show javascript error
    • 3303684: Panel sizable has incorrect moving constraint
    • 3301517: Double spinner show 0.000000000001
    • 3304408: Listbox[mold=select], onChange event not fired in IE6
    • 2973303: listbox mold select and selectedIndex -1
    • 3306079: Spinner/Doublespinner has unnecessary methods
    • 3002530: glitches with autopaging and renderdefer
    • 3306824: NullPointer when combobox's model has null
    • 3304877: Upload fail when the component with autodisable
    • 3308335: Fail to dynamically change the roundingMode for subclass...
    • 3309174: Remove items from the model of a non-rod grid cause error
    • 3309256: Datebox and Timebox with long format will display wrong
    • 3306149: Cannot remove the latest element in grid model (grid in rod)
    • 3309632: Upload may incorrectly terminate
    • 3307255: Panel in Portallayout missing top and bottom in IE7
    • 3310470: Columnlayout does not work with vflex
    • 3310055: Timebox issue with daylight saving timezone
    • 3309583: Auxheader HTML Error
    • 3315594: Vflex fail with a window contain a listbox with rows
    • 3317170: Datebox without rod render a incorrect dom (FF3.6 only)
    • 3322903: onTimer may cancel onClick request
    • 3322892: emptyMessage fail when Grid has height
    • 3309557: Rod render the empty content with listbox
    • 3322909: emptyMessage fail when Listbox has height
    • 3322970: Listhead checkmark state is not synchronized
    • 3310020: init(SCfg) of DhtmlLayoutS. breaks contract of GenericSrvlet
    • 3307376: The datebox shall fire onError after the error is cleared.
    • 3322795: double spinner weird action
    • 3322816: Doublespinner cannot accept empty value
    • 3306850: doublespinner has weird actions
    • 3303770: WrongValueException in Grid with paging mold
    • 3314014: Separator bar not showing in IE6
    • 3315668: doModal Window sometimes can't close with a cluster weblogic
    • 3340252: Set vflex to cell in Vbox cause js error
    • 3336745: getBoundingClientRect cause error on IE/FF
    • 3323593: Timebox with long format shows meanless "z"
    • 3314513: Datebox validate fail with different locale
    • 3317729: Textbox with hflex="1" shall occupied column's width (IE)
    • 3312936: Panel vflex issue (IE6/7)
    • 3309193: Chrome returns wrong margin value on InputElement
    • 3310406: ztag selector throws error when mounting
    • 3339315: Mesh Element with hflex min causes zero width
    • 3316035: Grid with sizedByContent and hflex:min display wrong
    • 3345636: Chrome, Set hflex="1" to Datebox do not align with Textbox
    • 3309975: Textbox in a draggable component get selection while focus
    • 3310017: The textbox's cursor position cannot be changed
    • 3313028: Grid hflex fail while the label in a div with FF4
    • 3330762: DoubleSpinner's ClassCastException on value get
    • 3348943: ZK JPA cause Exception
    • 3316030: Column with hflex:min, but it is not real displayed as min
    • 3325041: doublespinner can't type in floating number
    • 3316543: Only load the first property file
    • 3304954: HoverImage doesn't show up in menus
    • 3340841: Listitem doesn't show selection if disabled
    • 3316665: setVflex to Window calculate a wrong height
    • 3306729: vflex of listbox not work well on IE6
    • 3310051: Listbox with hflex cannot shorten its width on IE6
    • 3301498: Alignment of rows and header broken
    • 3357475: Grid with hflex min should imply default header hflex
    • 3303877: IE6 only, vflex fail with tabbox
    • 3305038: Fileupload.get() cause javascript error
    • 3353121: Grid in Tabbox vflex issue, IE7 only
    • 3303872: IE8 only, tabpanel disappear after hide then show
    • 3303874: IE7 only, the scroll bar do not appear in the tabpanel
    • 3306835: can not drag image into listbox on IE9
    • 3343388: Set hflex="min" to Groupbox fail
    • 3353521: Window render Caption in a wrong place
    • 3357573: child in the groupbox cannot resize correctly
    • 3345912: IE6 only, use Cell in Grid,it appears a strange line
    • 3356022: borderlayout and tabpanel bug
    • 3355680: hflex fail in combobox while select options
    • 3304968: IE9 only, tab will be hide after open then close
    • 3362731: IE Rod, use mouse wheel scrol down to end cause js error
    • 3309122: ROD issue when use oncreate
    • 3317743: Listbox checkmarks don't work as expected in paging mold
    • 3365535: Groupbox default mold hflex min may have wrong size
    • 3300935: (ipad)Tooltip shall not appear while taps on a component
    • 3314143: Treeitem in a close dot tree does not render correctly
    • 3306281: onClick in Flash with IE not working
    • 3343001: IE6 7 only, Tree will not increase height when open treeitem
    • 3352909: Listbox ROD will not render item in a correct position
    • 3354086: Model attribute will not accept a ListModel
    • 3343077: IE only, column of Grid and Tree do not sync with scroll bar
    • 3316103: InaccessibleWidgetBlockService wrongly blocks Combobox
    • 3357641: listbox scroll bar position issue if ROD is true
    • 3358505: ZK EE with native failed to invalidate (JS error)
    • 3327522: Visible property for borderlayout panels (west, east, etc)
    • 3337441: Firefox Listbox Multiselect
    • 3363687: Window onCreate fired twice for Execution#sendRedirect()
    • ZK-210: Style Tag Ignored in IE6/7/8
    • ZK-223: Fine tune ZKThemes and sandbox
    • ZK-200: Outside Window border disappear when defer including
    • ZK-215: Combobox options width failed in IE
    • ZK-56: setSelectedIndex not scroll the selectedItem
    • ZK-232: Server push fail in cluster environment
    • ZK-159: Hflex fail with nest container
    • ZK-182: Header of grid scroll fail after remove the Frozen
    • ZK-163: The Flashchart didn't compatible with jre / jdk 1.4.x
    • ZK-195: Tree with vflex causes wrong wd in another tree w/ scrollbar
    • ZK-171: Listbox/Grid columns hflex="1" not correct with hflex="min"
    • ZK-206: Set Hflex="min" to listheader fail, FF5 IE6,7
    • ZK-198: Splitter issue with double Borderlayout
    • ZK-190: Change style of div in border layout cause error of style
    • ZK-236: Borderlayout North/South failed to concern caption height
    • ZK-238: Grid with frozen, scrolled then delete frozen, some columns is hidden
    • ZK-221: problem with events in firefox 4.x and up
    • ZK-241: Hflex fail with grid in grid case
    • ZK-244: window cannot maximize when caption changed
    • ZK-239: vlayout inner padding issue
    • ZK-261: Panelchildren fail to serialize in Panel
    • ZK-242: Set postion to window fail with Firefox
    • ZK-267: DelegatingVariableResolver cannot be serialize
    • ZK-266: Sort call to model not receiving the right parameters
    • ZK-269: If listbox with an empty content, the head's size in Opera is wrong
    • ZK-281: Hlayout.setSpacing with null or an empty string shall mean auto
    • ZK-259: Using custom paging component in grid when autopaging is used
    • ZK-275: Window render Caption in a wrong place
    • ZK-286: Vlayout shall not appear horizontal scroll bar (hflex)
    • ZK-294: < not shown up if it is enclosed in a ZHTML component
    • ZK-272: Place component in auxheader is not align with headers'
    • ZK-299: Detail component should not initial the width (18px) by default, if the theme is not in classic-blue
    • ZK-297: Combox's onSelect will keep to fire when invalidate the component
    • ZK-300: Paging mold with listbox cannot change its mold by configuration
    • ZK-282: Menuitem with popup is not always worked on IE6 only
    • ZK-298: vertical tabbox height is not correct
    • ZK-301: Invalidate Borderlayout while west opening cause javascript error
    • ZK-306: DefaultTreeModel does not properly synchronize deselection state
    • ZK-307: Center fires redudant onSize if borderlayout's isFlex() is true
    • ZK-313: Strange behavior of ProgressMeter's setValue
    • ZK-58: Desktop.setBookmark does not allow ? character
    • ZK-323: Inplace input element may fail when set button visible dynamically
    • ZK-343: Frozen column added to Listbox with paging causes problem
    • ZK-326: Panelchildren's vflex fail in a model window on IE6
    • ZK-338: Timebox cannot auto-change the hour by pressing the arrow icon in zh_TW locale (IE and Webkit only)
    • ZK-332: Set disabled to treeitem shall not disable open function
    • ZK-337: Disabled Button should not appear pointer cursor
    • ZK-355: Listbox's scrollbar position is not currect after invalidate() (zk max only)
    • ZK-353: Listbox with listgroup's scrollbar position is not currect after invalidate()
    • ZK-352: hflex/vflex wrong calculation with negative leftover size
    • ZK-349: Listbox with sizedByContent and hflex="min", the header's size is wrong