ZK 7.0.0 release notes

Released on November 26, 2013


ZK 7 focuses on improving the 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.



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-19: Support SLF4J API for logging instead
    • ZK-550: Server Push: add a Web Socket based implementation
    • ZK-1254: Some way to set up the tabs in tabbbox at the bottom or on the right
    • ZK-1421: Tab style for tall tabs (ZK CE)
    • ZK-1581: Make notification arrow position configurable
    • ZK-1687: Portallayout supports row based orientation
    • ZK-1721: support redirect with 302 in ZK AU Responses
    • ZK-1725: ExtendletLoader should provide debug information
    • ZK-1729: Change generic code
    • ZK-1796: Make audio component support HTML5
    • ZK-1813: LabelImageElement support icon font CSS class instead of Image
    • ZK-1815: Upgrade to latest version of jquery
    • ZK-1818: Tabbox support vertical-right, horizontal-bottom orient
    • ZK-1835: Navigation Components
    • ZK-1845: Tabbox - enhance performance with dynamic tabs using MVVM
    • ZK-1856: Tree support frozen as grid
    • ZK-1866: ZK JSON: improve usability by accepting Collection instead of List
    • ZK-1882: Support Richlet with Servlet Filter
    • ZK-1883: Upgrade JQuery to 1.10
    • ZK-1898: Tree support render on demand
    • ZK-1912: Anchor (A) component support preserve-blank
    • ZK-1919: ZK Components support static uuid
    • ZK-1921: ZK Fileupload component support HTML 5 accept attribute.
    • ZK-1924: Clients.scrollIntoView(Component comp) could also adjust horizontal scroll position
    • ZK-1956: Support toggle switch to enable or disable tablet UI
    • ZK-1968: Support flat design theme
    • ZK-1974: Tabbox support take maximal size of all children tabpanels
    • ZK-1989: A way to reduce zkbind tracker node memory consumption.
    • ZK-1991: AMedia FileDownload support ignore add Content-Disposition to header
    • ZK-1992: Multiple selection component(listbox, chosenbox) support extra information for find out added item/removed item
    • ZK-2002: Tabbox support ListModel
    • ZK-2007: Popup support toggle type
    • ZK-2012: zk.ie supports ie11
    • ZK-2014: Listbox component support selectAll/unSelectAll event when check/uncheck on select all checkbox
    • ZK-2033: Improve Component interface Javadocs to state it is not recommended to implement this interface by the custom component developers
  • Bugs fixed
    • ZK-1521: support content assist for <template> tag of ZK
    • ZK-1565: Dragging listitem to itself will result in the listbox being set as the target
    • ZK-1683: endless loop AU-loop in Grid, on Render Exception
    • ZK-1709: no <idspace> tag definition in zul.xsd
    • ZK-1853: Audio component doesn't work with Chrome and Firefox
    • ZK-1865: MVVM Tree Performance Issue (bigger trees)
    • ZK-1879: collapse and open the splitter makes the hbox width no effect in zksandbox combobox case
    • ZK-1902: zk.xml theme-provider-class not invoked
    • ZK-1911: Text-as with childable cannot work with preserve-blank for component setting
    • ZK-1923: Textbox component width is larger than same width Combobox and Datebox components
    • ZK-1931: Paging tree detach: takes linear time overhead to the number nodes once rendered
    • ZK-1959: The height of arrow should not change when the tabbox add tab
    • ZK-1964: Datebox with time cannot be selected when use tablet's device
    • ZK-1981: The Sapphire and Silvertail themes contains unpacked slf4j-jdk14.jar
    • ZK-1996: Navitem onClick event would trigger twice
    • ZK-1998: Listbox using GroupsModel sometimes would not update the select all status.
    • ZK-2001: Focus to a chosenbox that place in a listbox shall not change listbox selection
    • ZK-2008: Dragging between grids causes JavaScript error
    • ZK-2010: Tabbox selection was changed after clicking inside it.
    • ZK-2011: tabbox get exception if I set model and addToSelection in onCreate
    • ZK-2013: add an item to model always cause whole tabbox be re-rendered.
    • ZK-2015: Change the visible of cell component sometimes will fail (IE10 only)
    • ZK-2020: Textbox became unmodifiable in IE11 when invalidated
    • ZK-2021: Combobox autocomplete performance degrading quadratically with increasing number of comboitems
    • ZK-2022: appending a component after its removal fails to initialize bindings
    • ZK-2025: Extends ZK component with lang-addon.xml file, zkbind feature doesn't work
    • ZK-2026: Datebox always displays the current year when blurred if format = "MM.yyyy"
    • ZK-2027: Tabbox model binding (close tab issue)
    • ZK-2030: hflex/vflex not always working in ZK7
    • ZK-2031: setIimage() doesn't work on Button
    • ZK-2032: Caption in Groupbox appear in wrong position when showing with constraint error
  • Upgrade Notes
    • org.zkoss.util.logging.Log class and org.zkoss.util.logging.config.file library-property are deprecated, please use SLF4J API for logging instead.
    • rename the orient of tabbox "horizontal" to "top", "vertical" to "left" and add extra two orients named "bottom" and "right"
    • deprecated Session's getRemoteHost(), getRemoteAddr(), getServerName(), getLocalName(), and getLocalAddr() methods, please use these methods from Executions.getCurrent() instead.
    • deprecated to enable event-thread, according to Java Servlet Specification deprecated to enable event-thread, according to Java Servlet Specification that some of high-end application servers may prohibit the creation of new threads.
    • deprecated all the classes under org.zkoss.zkplus.databind package
    • deprecated all the classes under org.zkoss.zkplus.acegi package
    • change the addon-name of zkplus jar from 'databind' to 'zkplus'