ZK 7.0.4 release notes

PE/EE Released on Dec 09, 2014


ZK 7.0.4 is a maintenance release for several new features and bug fixes.

ZK 7 series focuses on the improved theme system, bringing with it the most powerful, flexible yet simple theme engine to date combining the power of CSS 3, LESS and Bootstrap to create the best possible experience.

It is now much easier to create themes from scratch and/or customize existing themes. Leveraging ZK 7, design and development teams will have a much easier job and spend less time creating applications which look great and perform better than ever.

Please note that this version is released for PE/EE customers & ZOL users.


Getting Simpler and Richer

New Feature Highlight

  • ZK-2483: ZK template support Map, List, Set, and other Collection type
  • ZK-2455: A way to change the html tag of the include component
  • ZK-2531: Support tabindex for Listbox and Tree in paging and default molds

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-112: Splitter should override neighbor sizes when dragged by user
    • ZK-2433: Highlight text in a listitem without using nonselectableTag
    • ZK-2455: A way to change the html tag of the include component
    • ZK-2483: ZK template support Map, List, Set, and other Collection type
    • ZK-2495: When ZK init page, the loading animation runs in a endless loop
    • ZK-2531: Support tabindex for Listbox and Tree in paging and default molds
  • Bugs fixed
      • ZK-2370: Updating the label of a Panel Caption before its image doesn't update the image on the client correctly.
      • ZK-2394: Flex fails on grid's column
      • ZK-2418: Listbox's horizontal scrollbar moves to leftmost position when using up / down key to change selection
      • ZK-2419: slider only writes integer even when binding curpos with a double attribute
      • ZK-2420: Listbox forget scroll position when detaching parent component if rod enabled
      • ZK-2422: <a> component causes onbeforeUnload in IE<=10
      • ZK-2423: custom UrlEncoder with fileupload
      • ZK-2428: Inner anonymous inner class' initial method is not invoked
      • ZK-2434: Binding bug with odd side effect
      • ZK-2435: Bandbox does not allow to distinguish onOK from onCancel
      • ZK-2438: Can not drag a slider, which is inside a detail with "step" attribute
      • ZK-2440: Client-side doMouseEnter_ and doMouseLeave_ event handlers not working
      • ZK-2445: Feature ZK-2076 doesn't consider about extended event class
      • ZK-2447: out of index of ListModelList.removeRange (0, size) when selected all item
      • ZK-2448: JS Error when adding listheaders dynamically
      • ZK-2449: upload button affects button layout flow
      • ZK-2450: Listbox's selected index becomes -1 when navigating with page up / page down key in CE
      • ZK-2453: JS error on page load
      • ZK-2456: MVVM command parameter cannot be evaluated inside a native component
      • ZK-2458: Area component cursor style is not correct in IE
      • ZK-2460: When doing a drag & drop quickly on a tree, a component not found exception is thrown.
      • ZK-2463: dynamically adding columns to frozen grids raises javascript errors
      • ZK-2464: Possible XSS Vulnerability in HTTP Header
      • ZK-2466: JS error when adding grid columns dynamically
      • ZK-2468: Grid with frozen columns rendered incorrectly
      • ZK-2471: file upload in IE10
      • ZK-2472: zk_download iframe creates scrollbar
      • ZK-2473: Include with xhtml file type cannot display well
      • ZK-2477: Datebox shows the wrong day of week for locale "en" (Internet Explorer 9)
      • ZK-2478: Menuitem Fileupload not working in IE 10 and below
      • ZK-2481: Navbar not visible if it is aligned right
      • ZK-2487: ZK on iOS 8.0.2 Safari not working ?
      • ZK-2488: Caption component with label renders incorrectly
      • ZK-2489: iscroll not working for tablet
      • ZK-2491: css background style doesn't display in print preview
      • ZK-2493: ClassUtil.newInstance() may cause stack overflow exception
      • ZK-2494: SVG image looks different over ZK zul page on firefox and opera
      • ZK-2506: href with mailto: causes session timeout
      • ZK-2507: Some portlets deployed to Liferay 5.2.3 cause JavaScript errors
      • ZK-2509: grid column width not render correct when using frozen component
      • ZK-2514: Splitter doesn't move to the position being dragged to
      • ZK-2519: Changing the caption label removes other DOM elements in the caption
      • ZK-2524: Property value is loaded twice when property binding and children binding are used together
      • ZK-2529: onOK/onCancel/ctrlKeys prevent widget input
      • ZK-2532: onOK/onCancel/ctrlKeys prevent client side event listening (w:onKeyDown)
    • Upgrade Notes
      • Due to the compliexity of the size calculation (hflex and vflex) for tablechildren with colspan and rowspan, we restrict the usage of hflex and vflex for the tablechildren component to "false, min, and 0" since 7.0.2. Only the following values are supported: min, 0, and false.
      • Due to the better user-firendly for the scrollbar layout, we changed the org.zkoss.zul.nativebar of the library property to true by default for Grid, Listbox, Tree and Borderlayout component.
      • Change the default value of data-embedscrollbar from false to true, if the org.zkoss.zul.nativebar setting to false.