ZK 7.0.2 release notes

Released on May 27, 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-2226: Portallayout should support resizable portalchildren
  • ZK-2227: ZK Messages support Polish lang
  • ZK-2288: A way to specify a customized default AnnotateBinder.

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-2207: Dropupload Component support anchor
    • ZK-2226: Portallayout should support resizable portalchildren
    • ZK-2227: ZK Messages support Polish lang
    • ZK-2237: Support autodisable property for <a> component
    • ZK-2270: Enables registering concrete richlets instead of their class names
    • ZK-2272: Remove richlets during the runtime
    • ZK-2288: A way to specify a customized default AnnotateBinder.
  • Bugs fixed
      • ZK-1235: Resizing of Panels in Portal Layout is very buggy
      • ZK-1355: Reset grid column order, data doesn't show up with ROD, IE 8 only
      • ZK-1746: Chosen box with huge data - Performance issue
      • ZK-1749: Paste broken on a Timebox component
      • ZK-1750: Veracode report security flaw
      • ZK-1799: Panel width is too small when content is small and title is big
      • ZK-2040: The submenu has no space to unfold to the right and needs to open on the left side.
      • ZK-2086: BandBox popup invalid render if ON_OPEN event listener is attached
      • ZK-2106: Columnlayout resize problem
      • ZK-2116: possible XSS Vulnerability for Listcell
      • ZK-2136: Drag and Drop on Tree
      • ZK-2146: Combobutton does not change appearance when disabled state is toggled.
      • ZK-2149: zul.xsd is incomplete. Panel tag missing attributes "sizable" and "framable"
      • ZK-2160: menupopup shifts position when timer event occurs
      • ZK-2162: button upload with autodibled does not work
      • ZK-2170: Component Fileupload bug related to hflex and visible properties
      • ZK-2178: NullPointerException showed when biglistbox doesn't provide any MatrixModel
      • ZK-2185: Setting listitems draggable&droppable makes inner listbox not showing correctly in mold=select
      • ZK-2189: Wide listbox scrolls right after creating when item is selected
      • ZK-2190: Wide listbox scrolls right after creating when item is selected
      • ZK-2191: Open detail cause infinite loop when overrided icon sclass
      • ZK-2192: Combobox button does not work when other component is animating
      • ZK-2193: Listbox will scroll in horizontal direction when navigation by keyboard
      • ZK-2194: Clients.scrollIntoView() not working on a listitem within a listbox without scrollbar, but the enclosing page has a scrollbar
      • ZK-2195: Focus input in modal window in IE
      • ZK-2199: Some columns disappeared after resizing "percentage width" columns
      • ZK-2200: Navigate combobox drop down list by "down" key not work correctly if contains empty string
      • ZK-2201: The manual time change has no effect in a datebox when it is executed with the enter button
      • ZK-2202: Datebox is not updated properly when enter pressed in inner timebox
      • ZK-2206: Getting exception while adding id to TreeChild by using setId api
      • ZK-2209: the caption with inner div should show correct
      • ZK-2210: improve zk portlet 2 integration
      • ZK-2211: Popup position not properly fixed in listbox
      • ZK-2213: Possible problem with invalidate in groupbox for mobile version
      • ZK-2215: Fileupload.get() doesn't imlpements accept attribute
      • ZK-2216: Performance issue of Listbox and Combobox with inplace="true"
      • ZK-2217: listfoot and paging disappears when loading data
      • ZK-2218: Buggy log message '%s'
      • ZK-2219: Header getting sometimes out of synch with cells in Biglistbox
      • ZK-2220: Biglistbox with frozen horizontal scrollbar problems
      • ZK-2221: Biglistbox JS errors, when the Matrix model returns zero sizes
      • ZK-2222: listhead not aligned with listitem
      • ZK-2224: Column/cell removal times in listbox scales quadraticly on server side
      • ZK-2228: Scroll position is reset after resizing column headers of listbox or grid with native scrollbar IE9]
      • ZK-2231: Invisible window inside vbox cause js error when calculating flex size
      • ZK-2233: problems with fileupload button in ZK7
      • ZK-2235: Grid / Listbox ROD JS errors
      • ZK-2236: client side Widget.hide() does not recalculate flex (while Widget.hide() does)
      • ZK-2238: Tree with native scrollbar problem when opening nodes further down
      • ZK-2241: Invisible <auxhead> causes paging control to disappear on initial render
      • ZK-2243: Listboxes with width=100% and hflex=1 placed inside TableLayout do not resize correctly
      • ZK-2247: nested iframe reloading content when detached parent window
      • ZK-2248: Window Hflex="min" client side error with <script> tag
      • ZK-2250: Firefox Grid Drag'n'Drop issues
      • ZK-2251: zul.inp.InputWidget._shallIgnore function uses 'event' variable that does not exists
      • ZK-2253: Serialization and Deserialization of SimpleDesktopCache throws NPE
      • ZK-2254: Tree with more than 50 root nodes problem
      • ZK-2255: Custom scrollbar in Grid/Listbox with ROD enabled not work correcly after resizing browser width
      • ZK-2257: Popup shows at wrong position in the first time when it contains lots of data
      • ZK-2262: JS error showed after moving movable panel
      • ZK-2264: After change to the next page, we cannot scroll a frozen grid horizontally
      • ZK-2267: Popup is only sometimes "visible" when it is opened
      • ZK-2269: Comet Server Push send request infinitely if using Apache as proxy server
      • ZK-2271: JavaScript error when Invalidating a listhead with hflex="min" listheader
      • ZK-2275: IE 9+ Client error with image button and hflex
      • ZK-2279: DateBox not show properly when use attribute readonly =true
      • ZK-2280: External Paging component totalsize not always updated
      • ZK-2281: Replacing Columns of a Grid with frozen column when switching page causes JS error
      • ZK-2283: Combobox autocomplet problem in ie11
      • ZK-2285: Problem with keyboard selection in listbox with select mold [IE]
      • ZK-2290: Missing horizontal scrollbar when resizing listbox column
      • ZK-2293: Bandpopup opened with alternating width
      • ZK-2294: Combobox popup scroll back to top when navigating by keyboard
      • ZK-2295: Move tree item causes selection status lost
      • ZK-2296: After selecting an item, combobox's dropdown will scroll to right automatically
      • ZK-2302: Upload button not working if changed from invisible to visible
      • ZK-2306: using the arrow keys in the calendar widget scrolls the browser window
    • 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.