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
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
- 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-392: Set hflex='min' to treeitem will cause javascript error (illegal use actually)
- 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
|