ZK 7.0.3 release notes

Released on September 02, 2014


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.



Getting Simpler and Richer

New Feature Highlight

  • ZK-2076: Enhance Subscribe annotation to map java method by the event name and the parameter type in order
  • ZK-2289: Further optimize zkbind memory consumption.
  • ZK-2332: Cardlayout should support tuning animation speed or disabling the animation

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-2076: Enhance Subscribe annotation to map java method by the event name and the parameter type in order
    • ZK-2289: Further optimize zkbind memory consumption.
    • ZK-2332: Cardlayout should support tuning animation speed or disabling the animation
    • ZK-2338: cat function add support for Object signature
    • ZK-2372: A way to support a different namespace parser for attributes
    • ZK-2410: When pressing tab key in paging input box, "next page" button can get focus
  • Bugs fixed
      • ZK-2152: Wrong Behaviour of Datebox when Overwriting Time
      • ZK-2204: Listbox in Grid on FireFox 27.0.1 will auto select on client when mouse out listitem
      • ZK-2244: Defective movements in the ZK 7.0.1 Listbox.
      • ZK-2291: ZK gets into an infinte loop when HTTP session attributes are changed inside of sessionCreated()
      • ZK-2292: field access using dot notation (a.b.c) is not fully consistent for maps
      • ZK-2303: Turkish Constraint Message is wrong for : NO_NEGATIVE
      • ZK-2305: Horizontal scrollbar of Listbox covers the last item from being clicked
      • ZK-2307: Column borders become mis-aligned to listbox header's border after resizing a brower's width
      • ZK-2308: ESC does not always work to close a datebox
      • ZK-2309: Columnlayout not resize its children after changing columnchildren's visibility
      • ZK-2310: When maximize the panel in portallayout, add another panel will cause js error
      • ZK-2313: Listbox's scrollIntoView should be consistent by invoking with setSelectedIndex(), setSelectedItem(), and Listitem's setSelected()
      • ZK-2314: Tree component causes JS error
      • ZK-2318: Only first dragging item has correctly drag and drop style
      • ZK-2321: ZK fails when parsing rare unicode characters that require 2 UTF-16 chars
      • ZK-2325: Spacing="0" and spacing="0px" produce different results for hbox/vbox on some browsers
      • ZK-2328: Listbox with selected item make the whole browser scroll
      • ZK-2331: Combobox drop-down sometimes not open on top of input element if the browser space is not enough
      • ZK-2335: grid render performance on the client side (normal vs. renderdefer)
      • ZK-2337: grid renderdefer "z-grid-odd" style missing
      • ZK-2341: Nested cardlayout did not show correctly
      • ZK-2342: Multiple onAnchorPos events causing too many parameters exception
      • ZK-2348: empty listheaders visibility problems when used along auxheaders
      • ZK-2350: Filedownload with file name contain empty string become to "+" sign in IE
      • ZK-2351: Doublespinner always blank in turkish locale on iOS devices
      • ZK-2352: Executions.forward() will show IOException warning
      • ZK-2353: Validation message is not shown every time. It depends on the height of the browser window.
      • ZK-2356: Menu popup with onOpen event moving slightly when hovering
      • ZK-2357: Upload button hover style missing
      • ZK-2358: Column borders become mis-aligned to listbox header's border when scrolling to right-most position
      • ZK-2359: Autopaging causes flickering of list
      • ZK-2361: Missing element for <template> in zul.xsd
      • ZK-2363: resizing a window after maximizing it causes a JS error
      • ZK-2365: "No items to display" is no longer centered in a Listbox with Firefox and Chrome.
      • ZK-2366: ZUL XSD doesn't define "var" attribute for "template" element
      • ZK-2368: ZUL XSD doesn't define "status" attribute for "template" element
      • ZK-2369: borderlayout autoscroll issue iphone5
      • ZK-2371: Validation message is not shown every time. It depends on the height of the browser window.
      • ZK-2373: With a custom binder, there is no way to change the queue scope
      • ZK-2374: touch event handling interferes with user defined jQuery version
      • ZK-2375: Close treenode did not render tree correctly in paging mold
      • ZK-2377: scrollbar will jump back after scroll to bottom-most position
      • ZK-2379: selectbox with model error when calling parent invalidate()
      • ZK-2382: Can't select specific date when daylight saving time started at 12:00:00 AM
      • ZK-2389: Append popup component to Hlayout throws JavaScript error
      • ZK-2390: hflex fails when combining hbox and templating
      • ZK-2393: grid rendering on mobile device
      • ZK-2395: Tree header and content misaligned if contains invisible columns
      • ZK-2397: Session timeout denote twice if sending two au requests
      • ZK-2398: Sortable tree missing sort icon on tree column
      • ZK-2400: In IE8, clicking the "up/down" arrow of timebox triggers an onChange event every second time
      • ZK-2401: Navigate textboxes in listheader by tab key break frozen scroll behavior
      • ZK-2402: In IE8, clicking the "up/down" arrow of timebox does not always trigger an onChange event
      • ZK-2407: XSS Vulnerability in textbox.setValue()
      • ZK-2409: Combobox drop-down not open on top of input if using sub model
      • ZK-2413: Press page up key in the paging box of a Listbox increases page number
      • ZK-2414: Incorrect width calculation with hflex in IE9 / IE10
    • 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.