ZK 6.5.2 release notes

Released on March 26, 2013


ZK 6.5.2 consists of 18 new features with 80+ bug fixes including Portlet 2.0 (JSR-286) support, an easier way to load custom themes, and more.

ZK 6.5 series focuses on taking developers to achieve real device transparency in one codebase and component set, exploring the area of combined desktop & tablet UI and touch experiences. Introducing responsive design and responsive components to always fit your device screen resolution and tablet-specific user interaction methods such as swiping and device orientation detection which are done automatically to save developers time, effort and to increase massive productivity.



Getting Simpler and Richer

  • Please see New Features for more details
  • To read about the philisophy behind ZK 6.5, please visit this blog

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-315: DHtmlLayoutPortlet support Portlet 2.0
    • ZK-1048: Form Binding and binding validationMessages to components' errorMessage (error popup)
    • ZK-1507: Client-side API to register a callback function that can be invoked after all widgets finish resize
    • ZK-1515: Loading themes from a folder
    • ZK-1545: Make "request auto-send" timeout and number of times a retry is made configurable
    • ZK-1548: Move some zkbind fundamental feature to community edition.
    • ZK-1560: Configuration: allow user to abort the waiting thread if it takes too long to execute (activation)
    • ZK-1583: notification arrow position shall align in the center of reference widget
    • ZK-1616: AU response error can be handle by user
    • ZK-1630: Provides line information when throwing exception in binder
    • ZK-1638: Preload_Image attribute support configuration in zk.xml as a library property
    • ZK-1646: Provide zkbind execution info for debuging
    • ZK-1655: The popup position of Popup, Tooltip and ContextMenu should be more customizable
    • ZK-1672: Add onAfterSize event to get component size
    • ZK-1673: Ability to define more theme-specific information that could be utilized for theme processing
    • ZK-1674: Modularization of the theming subsystem
    • ZK-1675: Tablet themes should be distinguished from desktop themes
    • ZK-1681: A way to set PhaseListener by zk library property
  • Bugs fixed
    • ZK-460: Click the arrow of the timebox/spinner that in a listbox will trigger onChange event.
    • ZK-910: Cannot use the menupopup option of the grid to change the grouping
    • ZK-1076: North hides when i refresh databind
    • ZK-1179: ZK Internationalization Labels doesn't work with liferay (portal env)
    • ZK-1278: Unexpected callbacks of AbstractTreeModel
    • ZK-1473: Listbox - Live Data broken with keyboard navigation
    • ZK-1509: Cardlayout (with v/hflex="1") in hlayout will disappear when browser's size changed
    • ZK-1510: Creating a dynamic tree; treemode v6.5 has totally unexpected and unpredictable behavior while working as expected in v.5.0.11
    • ZK-1512: ListBox Select All
    • ZK-1514: Problem with jsp page and version 6.5.1
    • ZK-1516: Using timer together with hflex makes browser hang
    • ZK-1518: Decimalbox throws error when setting Locale and value together
    • ZK-1519: Popup disappear when mouse over on the corner where the two scrollbars meet, IE 10 only
    • ZK-1523: JS Error if echoEvent to the component under unselected tab
    • ZK-1524: use caption in window will cause hflex="min" doesn't work
    • ZK-1526: layouts and containers should not take menupopup into account when computing padding
    • ZK-1527: Bug in Datebox Popup (Chrome)
    • ZK-1528: When binding a Java List as a listbox's model in paging mold, add and delete will throw exceptions
    • ZK-1529: Ordering Issue in "selectedItems" in listbox component
    • ZK-1534: Spinner no longer supports null value
    • ZK-1535: Bug in ZK 6.5.1 :: Calendar component does not display the 6th week
    • ZK-1537: NPE when listbox add to selection in paging mold (CE)
    • ZK-1540: Inputwidget: html-input-element 1px too short
    • ZK-1557: Groupbox fails to open if it has non-visible children
    • ZK-1567: Menuitems not aligned below Menu
    • ZK-1569: vbox content disappear after browser resizing
    • ZK-1572: Scrolling-Bug in Listbox with freezed columns with ie9
    • ZK-1574: window vflex="min" calculate wrong height in tablet
    • ZK-1575: js error occured when vflex="min" and open="false" used in groupbox
    • ZK-1577: vlayout default spacing missing when groupbox has hflex="1"
    • ZK-1578: window hflex="min" not work
    • ZK-1579: hflex="1" not work after changing visible state
    • ZK-1582: NullPointerException in Servlets.browser
    • ZK-1584: Execution Cleanup.cleanup didn't call when Execution is forwarded
    • ZK-1588: Problem with bandbox
    • ZK-1589: Components inside HtmlNativeComponent doesn't unbind when invoke invalidate, with zkmax only
    • ZK-1593: JS bug - Failed to mount: Cannot read property 'defaultView' of null
    • ZK-1594: Blinking popup in Firefox
    • ZK-1595: Listbox selectedItems and Hibernate collection types don't play together?
    • ZK-1596: Invalidate component with native component inside cause JS error, zkmax only
    • ZK-1597: The tab was selected cann't be selected while drag & drop.
    • ZK-1599: Component not found when using combobox with dynamic image
    • ZK-1600: Bad french translation, for error message on the Datebox component
    • ZK-1601: Listbox in paging mold doesn't change pages count
    • ZK-1602: Button with both autodisable and upload attributes set causes a javascript error
    • ZK-1603: Doesn't allow to coerce set to list when binding selectedItems
    • ZK-1604: Listbox Data Refresh throws errors within certain layout elements
    • ZK-1606: Should throw exception or show warning when a before|after command get a null or empty value
    • ZK-1607: Session timeout for any Ajax request on GateIn 3.5.0 (jboss) portal
    • ZK-1608: Tree node become leaf node after update
    • ZK-1609: Tree close/open icon is not correct after calling clearOpen and reopen a node
    • ZK-1612: Drag drop on IE9, does not work right with an Image
    • ZK-1613: Invoke response.sendError in Weblogic server, the server will render the message as a response body.
    • ZK-1614: Full Screen iPad Web Apps Missing Component Buttons
    • ZK-1615: Use children in a form binding doesn't work
    • ZK-1617: Panel in Portallayout not draggable after updated.
    • ZK-1618: Tabpanel not follow the visible attribute
    • ZK-1619: Jsp trick to avoid IE 6/7/8 warning popup upon downloading fails to correctly set up the filename
    • ZK-1620: Use asynchronous event queue, HttpServletRequest.getContextPath() return null with tomcat
    • ZK-1622: Paging listbox scrollbar is wrong
    • ZK-1626: Incorrect result for 'if' attribute when mixing native and zk components
    • ZK-1627: datebox contraint position after_* or before_* wrongly parsed by SimpleDateConstraint
    • ZK-1628: argument of zk.Widget.redraw() is not a array on Chrome
    • ZK-1632: Errorbox's position may wrong when scrolling
    • ZK-1633: NPE when moving tree node in MVVM
    • ZK-1634: get NULL Tree or Parent when rendering a Treeitem in TreeitemRenderer.
    • ZK-1639: Tree display is not correct after move and modify
    • ZK-1640: Command send to wrong viewModel in nested case
    • ZK-1642: Tree columns width not expanding if scrollbar without hflex
    • ZK-1645: Incorrect display in IE 7 for tree component if user zoom to greater than 100%
    • ZK-1647: Tree with hflex'ed and width'ed treecols doesn't work properly
    • ZK-1649: Listbox content blinking when scrolling horizontal
    • ZK-1650: In vlayout, any child component even if has visible="false" occupies space
    • ZK-1653: Invoke client side API, Menuitem.setDisabled(true) cause javascript error
    • ZK-1654: Color picker doesn't allow 'A' or 'a' character as an input
    • ZK-1660: Chosenbox with ListModel issue
    • ZK-1661: Popup list of chosenbox do not scroll when navigate with keyboard
    • ZK-1662: Overlapped window z-index inconsistent behavior
    • ZK-1664: Chosenbox input value may discard while typing
    • ZK-1666: Can't toolbarbutton check state
    • ZK-1668: Malformed url on SAP NetWeaver 7.30
    • ZK-1669: WrongValueException when deleting value in doublespinner
    • ZK-1671: ThemeProvider define in zk.xml in jar doesn't work
    • ZK-1679: with hflex min child component will not size correctly after parent is resized
    • ZK-1686: Paging Tree with draggable item cause js error when changing page
    • ZK-1689: Wrong left/top of parent positioned window