From Documentation

Jump to: navigation, search




  • Author
    Timothy Clare, Potix Corporation
  • Date
    December 05, 2012
  • Version
    ZK 6.5.1

Contents

Introduction

ZK 6.5.1 concentrates on fixing bugs and introducing a few new features including a default command for MVVM, page visibility with HTML 5 API and others.

ZK 6.5 series focuses on taking developers to achieve real device transparency in one codebase and component set, exploring the area of combined desktop & tablet UI and touch experiences. Introducing responsive design and responsive components to always fit your device screen resolution and tablet-specific user interaction methods such as swiping and device orientation detection which are done automatically to save developers time, effort and to increase massive productivity.

The Default Command for MVVM

  • Available for ZK:
  • http://www.zkoss.org/product/zkhttp://www.zkoss.org/whyzk/zkeeVersion ce-pe-ee.png

ZK 6.5.1 brings a default command for MVVM. When a binder receives a command, it starts to find ViewModel's command methods by matching its name. If the binder cannot find a matched method, it invokes default command method.

Assume that there are only two command methos in the below ViewModel. If we trigger a command "exit", a binder invokes the default command method defaultAction() because it cannot find a command method named "exit".

public class OrderVM {

    @Command
    public void newOrder(){
    ...
    }
  
    @DefaultCommand
    public void defaultAction(){
    ...
    }
}

Control Page visibility with HTML 5 API in ZK

  • Available for ZK:
  • http://www.zkoss.org/product/zkhttp://www.zkoss.org/whyzk/zkeeVersion ce-pe-ee.png

In order to develop power and CPU efficient web applications, W3C publishes a specification named Page Visibility in HTML 5 which defines a means for site developers to programmatically determine the current visibility state of the page. In this specification, there are two attributes defined: hidden and visibilityState, where hidden is a boolean value representing whether the current page is visible or not and visibilityState represents that the current page have four states: hidden, visible, prerender, and unloaded.

In ZK 6.5.1, the API with onVisibilityChange event was implemented which provides the ability to find out when a page is visible or hidden. This has a lot of benefit as it enables saving of CPU cycles as well as bandwidth. The following is a very simple example:

<window title="window" border="normal">
    <attribute name="onVisibilityChange">
        if (!event.isHidden())
            lbl.setValue("Welcome back");
    </attribute>
    <label id="lbl"></label>
</window>

For more information please check the blog post here and the ZK Developer's Reference.

Comet Server push support

  • Available for ZK:
  • http://www.zkoss.org/product/zkhttp://www.zkoss.org/whyzk/zkeeVersion pe-ee.png

The visibility functionality has also been extended to comet server push to reduce the server loading by default.

Messagebox without buttons

  • Available for ZK:
  • http://www.zkoss.org/product/zkhttp://www.zkoss.org/whyzk/zkeeVersion ce-pe-ee.png

With ZK 6.5.1 if you'd like to show a non-buttons dialog, you can use Messagebox.show(String, Button[], EventListener listener) with an empty array as follows.

 Messagebox.show("Cancel the operation?",
 	new Messagebox.Button[0], null);

This messagebox will show without any buttons.

DefaultTreeNode - empty node now can be treated as a leaf node

  • Available for ZK:
  • http://www.zkoss.org/product/zkhttp://www.zkoss.org/whyzk/zkeeVersion ce-pe-ee.png

In ZK 6.5.1 DefaultTreeModel provides a boolean argument to its constructor for configuring to treat the zero size of children node as a leaf node.

//@param emptyChildAsLeaf whether to treat the zero size of children node as a leaf node.
DefaultTreeModel model2 = new DefaultTreeModel(root, true);

For more information please refer to ZK's Developer's Reference.

Download & other resources


Comments



Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.
You got stuck here?
Let us know why!
For questions please use the forum