ZK 6.0.1 release notes

Released on May 02, 2012.


ZK 6.0.1 brings with it a whole host of new features and new components such as fusionchart integration and the biglistbox which is designed to use as little server-side memory as possible minimizing updating area to its viewport at client-side, displaying trillions worth of data at an amazing speed. Along with this, 6.0.1 also comes with numerous databinding improvements inlcuding reference binding, converter for children binding, form bean validator and more.


Getting Simpler and Richer

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-316: Using an image to simulate checkbox/radio instead of using HTML INPUT
    • ZK-540: Notifications Components
    • ZK-698: A flexible Notification(Box) component to give user visual feedback. Example: Show "Record deleted" centered on screen for 2 seconds
    • ZK-862: Enhance the BeanValidator to validate a property of a form
    • ZK-864: Make ValidationContext easier
    • ZK-882: Add the ComponentInfo to the id generator
    • ZK-883: A way to specify component's annotation in component's Java class
    • ZK-889: Children binding should support converter
    • ZK-899: Able to bind to a macro-component
    • ZK-901: Provide reference-binding
    • ZK-916: A FormBeanValidator
    • ZK-921: A way to register system level converter and validator
    • ZK-943: We need a groups model which supports List<?>, all the Groups models use arrays
    • ZK-951: Add a new Biglistbox component to handle huge data
    • ZK-955: Update jars in dist/lib/ext to newer version
    • ZK-986: A way to close a window after a command
    • ZK-995: A way to access multiple validation messages
    • ZK-997: SelectorComposer supports the listening of an event queue
    • ZK-1018: Add fusionchart component
    • ZK-1019: Provide an extra layer of DIV on Window/Panel buttons
    • ZK-1032: Able to wire Event to command method
    • ZK-1033: @Init should supports to annotate on Type
    • ZK-1042: Able to show error message on selectbox
    • ZK-1046: Public event class of zkbind
    • ZK-1047: Label should support format
    • ZK-1049: no empty space when using Fronzen in Grid
    • ZK-1050: Able to ignore the load or save of a binding
    • ZK-1072: Converter supports generic type
    • ZK-1082: Supports zkbind on chosenbox model and selection
    • ZK-1084: supports binding on biglistbox selection
  • Bugs fixed
    • ZK:565: grid with hflex=max or hflex=1 :> columns with hflex=min have only few pixel with
    • ZK:624: Vbox width grows when containing a Tabbox
    • ZK:690: binder not work in cluster environment
    • ZK:726: Masking fail when component is under autocsroll layout region
    • ZK:794: width property of combobox when reload macrocomponent with setMacroURI method (Chrome)
    • ZK:848: How to figure out a validationMessages is empty?
    • ZK:869: Binder should be serializable.
    • ZK:877: NPE in a save only binding.
    • ZK:878: Exception if binding a form with errorMessage
    • ZK:885: Iframe with PDF stop works in IE 8
    • ZK:887: hbox's widths properties specified in Chrome is not precise
    • ZK:888: ZK bind ChildrenBinding fail to convert one object to a list
    • ZK:890: hflex behave different on ie
    • ZK:891: Cannot turn on the multiple selection of the listbox when use databinding 1
    • ZK:892: ChildrenBinding in Listbox pollute the collection model
    • ZK:898: Listbox paging bug
    • ZK:902: datebox input validation issue on iPad
    • ZK:904: Listbox getSelectedItems wrong order with ZK 6
    • ZK:905: Save into a Form bean should fire NotifyChange
    • ZK:908: setErrorMessage causes reset of input element value
    • ZK:909: throwing WrongValuesException causes input field value to reset
    • ZK:911: NotifyChange of a property of a Form is not reloaded.
    • ZK:913: Value is reload after validation fail
    • ZK:917: V/Hflex shall not calculate its sibling size when its position is absolute or relative
    • ZK:918: Combobox elements not customizable with css class
    • ZK:919: ELSupport can't handle java.sql.Timestamp
    • ZK:922: Misaligned Grid columns with Firefox 10
    • ZK:925: Select mutiple Item using shift key will return wrong count in listbox (ROD enabled)
    • ZK:926: Scrollbar stops working in listbox (IE7 only)
    • ZK:927: zkplus databinding1 should auto:wrapping BindingListModelXxx with setMultiple() and Selectable handled
    • ZK:928: Navigate the comboitems by press key will select a wrong item
    • ZK:929: StringFns's replace function will cause an infinite loop
    • ZK:930: Fileupload.get fail in cluster server
    • ZK:937: Bug and improvement to tabs dragging behaviour
    • ZK:938: Fileupload of binaries fails with 0 content/NullInputStream
    • ZK:939: TreeNode's getChildren() shall not return List<? extends TreeNode<E>>
    • ZK:940: Nested listbox selection issue
    • ZK:945: The gap between the image and description/text is large in a comboitem
    • ZK:946: NullPointerException closing Messagebox
    • ZK:950: The expression reference doesn't update while change the instant of the reference
    • ZK:952: Portallayout get wrong position when using Executions.createComponents to create panels
    • ZK:956: setTooltip in a event cause IllegalStateException in ZK 6
    • ZK:962: Portalchildren visible false problem
    • ZK:965: Tabpanel does not adapt height to its content if a vertical tabs is used unless a vflex="min" is specified
    • ZK:966: The GroupsModelArray doesn't work properly when passing it a List with a generic type
    • ZK:967: Should support default template name for group and groupfoot
    • ZK:968: The template doesn't render the nest collection data correct
    • ZK:972: Demo Grid > Data Filter can't run on zk 6.0.1
    • ZK:975: Textbox with rows and mold rounded does not recognize width nor hflex
    • ZK:979: Listbox sizable fail when set height attribute (Firefox 11.0 only)
    • ZK:980: Modal Window position="center" problem in iPad
    • ZK:985: The entire Grid is invalidated when adjusting models and a couple of components
    • ZK:987: 3d Groupbox cave has extra top border when having title
    • ZK:990: PageSize of GRID Doubling issue when it refreshes ...
    • ZK:992: wrong item when binding to combbox with submodel implementation
    • ZK:993: Exception if reload a included page
    • ZK:994: BindingParam not work with @Init
    • ZK:996: Widget.replaceWidget (i.e., invalidate() at the server) shall preserve the cursor the position
    • ZK:998: Uploading mp3 fails in 5.0.11
    • ZK:999: Failed to load biglistbox.css
    • ZK:1003: Panel vflex wrong with toolbar
    • ZK:1004: Missing template element in XML Schema
    • ZK:1005: ZK 6.0.1 validation fails on nested bean
    • ZK:1007: A tree is rendered twice while onInitModel and onInitRender events
    • ZK:1008: The numberOfChildren in PathELResolver is not correct
    • ZK:1009: Bind event by selectorcomposer in cluster enviroment doesn't work
    • ZK:1010: datebox with locale th_TH (Thai buddist calendar) can't select 29/02/2555 (year 2555 is 2012 in US calendar)
    • ZK:1011: drag and drop in mobile safari throwing exceptions
    • ZK:1013: Component.queryAll() shall return Iterable<Component> instead of List<Component> for better performance
    • ZK:1017: Property of a form is not correct when validation
    • ZK:1022: grid column disappear after sizable and setModel with frozen column
    • ZK:1024: The row of the listbox are not aligned with the head (Firefox 11 only)
    • ZK:1031: NPE with ListModelList (with null item) and Selectbox
    • ZK:1037: A empty listbox with long header will appear scroll bar (IE only)
    • ZK:1038: A empty listbox with long header set span doesn't work (IE only)
    • ZK:1043: Still Firefox 11 (probably also 10) problems with listbox and span
    • ZK:1045: Cannot bind on colorbox.color
    • ZK:1053: Selectbox doesn't handle onFocus / onBlur event
    • ZK:1054: ObjectBooleanConverter does not accept Null value
    • ZK:1058: ZK cannot support drag:and:drop for Android mobile
    • ZK:1061: Wrong Weekday when set a specified locale on a datebox
    • ZK:1062: In ZK6 when saving binded SimpleForm to bean, null intbox give a 0 value to Long bean property instead of null value
    • ZK:1063: No exception if binding to a non:existed property
    • ZK:1064: Problem with page login spring security
    • ZK:1066: Incorrect form value if inner binding waiting a command
    • ZK:1067: Selectbox de:serialization fails while restoring session
    • ZK:1069: Squence issue when attaching radio and radiogroup
    • ZK:1070: onSelect is not fired in listbox mold select
    • ZK:1071: Bandbox, Form Binding and Constraints with Chromium and (less reprodible) Firefox
    • ZK:1073: Oncheck event doesn't fire when the new radio attached
    • ZK:1079: Fileupload dialog will be masked while open it by a button in a popup
    • ZK:1085: PropertyNotWritableException when using reference binding
    • ZK:1086: Undefined on datebox format "EEEE" with specific locale
    • ZK:1088: Value of form with converter is not updated.
    • ZK:1090: Load a ZUL page with an Ajax request failed in ZK 6
    • ZK:1092: IE 8 : Scrollbar Bug in Tree
    • ZK:1096: Listbox multiselect bug with draggable on
    • ZK:1100: Menuitem.setImage() doesn't work in menubar
    • ZK:1101: Portallayout.setPanel() doesn't behave as expected
    • ZK:1102: Invisible Portalchildren problem