ZK 3.0.8
Released on October 8, 2008.
Download Now
Getting Simpler and Richer
New Feature Highlight
- PerformanceMeter enables client-side monitoring.
onFulfill event supported.
- Support Session Fixation Protection.
- A way to Proxy
ComponentInfo with ComposerExt
Feature Updates
-
89 XUL and 83 HTML off-the-shelf 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,
FCKeditor,
DOJO,
and Timeline components.
-
Event-driven, server-centric model
-
More than 20 events are supported:
onChange , onChanging ,
onScroll , onSelect , onShow ,
onZIndex ...
-
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 acess 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.
-
Macro components. Developing a full-feature new component
by using another 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.
- 2045837: PerformanceMeter adds the time after updating all components
- 2052603: A way to proxy ComponentInfo with ComposerExt
- 2045810: AnnotatedDataBinderInit accept relative path in arg0
- 2060367: More neat startup log for ignorable errors
- 2066299: fulfill: fire onFulfill after fulfilling the children
- 2092356: Unwrap ForwardEvent automatically in GenericEventListener
- 2094526: Components.wireVariables() shall wire implicit objects
- 2117539: Support Session Fixation Protection
- 2114380: Filedownload bug with WebSphere 5.1.1
- 2099562: [Opera] progressbar flattened when value = zero
- 2139857: Components.addForward shall handle cascade $ name pattern
- 2051014: NPE error with ZK + Tomcat Clusteriing
- 2056760: Fail to change the width of Listbox
- 2051639: Data binding longbox does not work
- 2037288: Clustering failed with AnnotateDataBinder
- 2041347: F1 key not overridden correctly in IE
- 2071996: Selection on a paged Listbox doesn't work an last page
- 2077739: Events.addEventListeners() cause Exception in onEvent()
- 2077792: GenericAutowireComposer shall support implicit objects "arg"
- 2041674: Menubar popup disappears with disabled menuitem
- 2080237: A disabled Menuitem with href can link to the href location
- 2080346: Onchaning evt of combobox wrongly includes type-ahead string
- 2075332: Paginated listbox doesn't expand properly inside a BL(IE)
- 2079837: Timebox behaves wrongly if there is scrollbar
- 2081560: Unresponsive script warning when changing big ListModel
- 2086020: onchanging event of combobox didn't fired properly
- 2086350: Select a nested listbox that should not throw a exception
- 2072856: Error scroll bar is shown on the validation message(IE 7)
- 2088269: radiogroup wouldn't work before ZK finish loading
- 2090731: Button... unable to setImage if setImageContent was called
- 2092632: Session.invalidate causes an exception in Jetty
- 2092716: Desktop.isAlive always true
- 2080346: onchaning evt of combox wrongly includes type-ahead string
- 2079837: Timebox behaves wrongly if there is scrollbar
- 2082896: ZK conflicts with Liferay 5.1.1
- 2088712: separator with bar & spacing=1px not show in IE
- 2094523: Components.wireFellows() shall wire fellows then ancentors
- 2111320: Borderlayout in tabpanel invisible
- 2105802: Treechildren image problem
- 2116547: The Slider image problem in listbox
- 2125788: Hilighted window covered by mask when change title
- 2124391: Tree, attribute sequence cause wrong result
- 2128058: Fails to change the visibility of Border Region dynamically
- 2129730: databinding fails to process access='none'
- 2129992: TypeConverter cannot be found by databind if in zscript
- 2138131: GenericForwardComposer throw Exception if component inexist
- 2140491: Set "save-when" in Listbox selectedItem does not trigger
- 2143479: Failed to invoke sendRedirect or forward in DesktopInit
Upgrade Notes
onBookmarkChanged is renamed to onBookmarkChange
org.zkoss.zkplus.databind.AnnotateDataBinderInit now implements both
org.zkoss.zk.ui.util.Initiator and org.zkoss.zk.ui.util.InitiatorExt interfaces.
That is, the original interface method doAfterCompose(Page page) of Initiator
won't be called any more. Rather, the doAfterCompose(Page page, Component[] comps)
of InitiatorExt is called. If you have written own class that extends
AnnotateDataBinderInit and overrides doAfterCompose(Page page) method of Initiator ,
you probably have to do some modification accordingly.
|