ZK 6.0.0 release notes
Released on February 14, 2012.
ZK 6 brings with it a whole host of changes, with up to approximately 100,000 lines have been changed between versions 5 and 6. This release comes with it some major changes including the introduction to a new databinding system 'ZK Bind' with the use of MVVM
development pattern, generic support, a new templating system and others.
Getting Simpler and Richer
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 (
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
100% Java API of Google Maps,
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
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
- Powerful yet intuitive control flow by the
Scripting in EL expressions and your favorite scripting languages,
include but not limited to Java,
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
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,
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.
- New Features Tracker
- 3061730: Make ZK complaint to Java 5, such generics
- 2920934: A plugin to load lang.xml, config.xml.. from custom location
- 2978342: A way to tag AU request for statistic purpose
- ZK-139: A way to define a template that component could use
- ZK-216: Listbox/Tree/Grid/Combobox supports the template for rendering model
- ZK-237: allows users to import classes
- ZK-110: Upgrade to jQuery 1.6.4
- ZK-496: Make iZUML available to ZK CE
- ZK-61: Support hotkey for user to pick a date
- ZK-443: Menubar can support keystroke to navigate the menubar
- ZK-292: Annotation supports an array of values and string-type value and so on
- ZK-408: Allow the text-as content such as html/combitem to have a XML fragment
- ZK-278: Enhance stubonly to merge more components and better control of event handling
- ZK-401: A way to customize the way WebApp is instantiated
- ZK-217: A way to add a temporary variable resolver to an execution
- ZK-233: Execution.createComponents support inserting before particular component and variable resolver
- ZK-264: addEventListener support 'priority'
- 2974464: A way to customize message with zk-label
- 3025389: A way to monitor the execution and event processing
- 2947727: The instantiation of Composer & Server Push customizable
- ZK-224: Tree shall render the model in the onInitRender event listener
- ZK-288: Make GenericEventListener (and derives, GenericForwardComposer and GenericAutowireComposer) as serializable
- ZK-279: Simplify PageDefinition and related metainfo
- ZK-314: A way to pre-load images since many UIs depend on the size of an image
- ZK-114: Provide an JasperReport API to get the generated Media
- ZK-370: Multi-line textbox support rounded mold
- ZK-416: Listbox support multiple drag
- ZK-446: Add an instant="true" attribute to InputElement(e.g. textbox, intbox, ...) so onChange is fired as quick as possible.
- ZK-12: Checkbox automatically disable itself after clicked
- ZK-458: The language definition allows a WPD package to be merged to another
- ZK-83: Messageboxes buttons should be rendered in the users order
- ZK-501: Messagebox supports custom labels
- ZK-463: Messagebox supports enum to specify the button
- ZK-464: Window's mode supports enum
- ZK-468: Add Selectbox component to ZK core
- ZK-469: Add Absolutelayout component to ZK core
- ZK-470: Add Anchorlayout component to ZK core
- ZK-383: Make breeze as the default theme
- ZK-318: Support combobutton combining a button and a dropdown menu
- ZK-526: Add a utile EL function for formatting date and parsing date
- ZK-536: Groupbox supports the title attribute (like Window/Panel)
- ZK-551: A new data binding system to support MVVM design pattern
- ZK-522: Tablelayout support any child not limited to Panel
- ZK-523: Columnlayout support any child not limited to Panel
- ZK-537: Hlayout supports valign (top, middle and bottom)
- ZK-503: Add a new component, idspace: as light as div but implements IdSpace
- ZK-541: SelectorComposer uses annotation to control whether to write zscript and XEL variables
- ZK-553: SelectorComposer shall implement ComponentActivationListener and rewire Session/WebApp
- ZK-609: A way to access the browser information with an implicit object in EL (such as false)
- ZK-613: The root component is considered as an ID space, so getFellow and wire will work
- ZK-618: WebApp and Execution support log(String) and log(String,Throwable)
- ZK-614: Support Servlet 3's web fragment
- ZK-621: Combobox and Bandbox should support isOpen() to store the open status
- ZK-615: Comet supports Servlet 3's asynchronous processing
- ZK-448: Colorbox support keystroke to navigate the color code
- ZK-635: Fileupload support HTML5's input file with multiple
- ZK-616: Able to specify Messagebox width
- ZK-646: Allow WebAppInit listenes to override default extendlet, such as WPD and WCS
- ZK-649: Rename i3-label.properties to zk-label.properties
- ZK-665: The default autowiring of HtmlMacroComponent and XmlMacroComponent shall be the same as SelectorComposer
- ZK-666: A way to specify both annotation and value for a property
- ZK-688: AuInvoke supports the invocation of a global function at the client
- ZK-694: The file to configure logger can be specified in a library property
- ZK-701: ListModel, TreeModel, ChartModel, and ListGroupModel supports Cloneable if implemented
- ZK-719: Combobutton supports the toolbar mold such that it has the same size as other toolbar components
- ZK-715: Listbox paging mold support PageUp/PageDown to navigate the paging
- ZK-423: Focusable listboxes
- ZK-669: Add method setModel(ListModel model) to Radiogroup class
- ZK-720: Toggable toolbar buttons
- Bugs fixed
- ZK-328: Panelchildren shall ignore flex in maximized state
- ZK-493: zk.override(Object, String, Function) fails to update subclass methods
- ZK-504: onCreate event not fired if registered in a parent's composer
- ZK-487: Height isuue in the groupbox (with specified caption)
- ZK-539: Title background not full-filled in groupbox
- ZK-549: Height issue of groupbox 3d mold
- ZK-562: Groupbox vflex=min is wrong (reopen B50-3005284.zul)
- ZK-622: jq("@radio input").attr("checked") will return "checked" if not checked
- ZK-702: combobutton js error occurs on click event
- ZK-691: stubonly not work for Executions.createComponentsDirectly
- ZK-707: ListModel/TreeModel selection cannot share in two component
- ZK-750: Listbox ROD failed with ListModelList
- ZK-732: combobutton doesn't have isOpen() so zkbind can't read open property
- ZK-767: cannot select a non-open tree node when using model
- ZK-779: Chechmark issue in paging listbox
- ZK-815: Listbox Select event is not fired when PgDown/PgUp is pressed
- ZK-827: Selection of listbox is worng after change multiple
- ZK-816: Tooltip assigned to component when it is in detached state won't show up
- ZK-774: Toolbar's mold "panel" does not work accurately