Revision history [back]

click to hide/show revision 1
initial version

answered 2016-05-18 15:27:02 +0800

maxspuls gravatar image maxspuls

BEST SOLUTION

<zk> <window width="100%" border="none" apply="org.zkoss.bind.BindComposer" viewmodel="@id('vm') @init('model.ViewModel')">
<tree model="@bind(vm.treeNodes)" mold="paging" pagesize="4"> <treecols sizable="true"> <treecol label="nome" width="120px"/> <treecol label="cognome" width="300px"/> </treecols> <template name="model"> <treeitem open="@bind(each.open)"> <treerow> <treecell label="@bind(each.data.name)"></treecell> <treecell label="@bind(each.data.lastName)"></treecell> <treecell> </treecell> </treerow> </treeitem> </template> </tree> </window> </zk>

BEST SOLUTION

<zk> <zk>

<window width="100%" border="none" apply="org.zkoss.bind.BindComposer" viewmodel="@id('vm') @init('model.ViewModel')">
@init('model.ViewModel')">

<tree model="@bind(vm.treeNodes)" mold="paging" pagesize="4"> pagesize="4">

<treecols sizable="true"> sizable="true">

<treecol label="nome" width="120px"/> width="120px"/>

<treecol label="cognome" width="300px"/> </treecols> width="300px"/>

</treecols>

<template name="model"> name="model">

<treeitem open="@bind(each.open)"> <treerow> open="@bind(each.open)">

<treerow>

<treecell label="@bind(each.data.name)"></treecell> label="@bind(each.data.name)"></treecell>

<treecell label="@bind(each.data.lastName)"></treecell> <treecell> </treecell> </treerow> </treeitem> </template> </tree> </window> label="@bind(each.data.lastName)"></treecell>

<treecell>

</treecell>

</treerow>

</treeitem>

</template>

</tree>

</window>

</zk>

BEST SOLUTION

<zk>

<window width="100%" border="none" apply="org.zkoss.bind.BindComposer" viewmodel="@id('vm') @init('model.ViewModel')">

<tree model="@bind(vm.treeNodes)" mold="paging" pagesize="4">

<treecols sizable="true">

<treecol label="nome" width="120px"/>

<treecol label="cognome" width="300px"/>

</treecols>

<template name="model">

<treeitem open="@bind(each.open)">

<treerow>

<treecell label="@bind(each.data.name)"></treecell>

<treecell label="@bind(each.data.lastName)"></treecell>

<treecell>

</treecell>

</treerow>

</treeitem>

</template>

</tree>

</window>

</zk>

BEST SOLUTION

<zk>

<window width="100%" border="none" apply="org.zkoss.bind.BindComposer" viewmodel="@id('vm') @init('model.ViewModel')">

<tree model="@bind(vm.treeNodes)" mold="paging" pagesize="4">

<treecols sizable="true">

<treecol label="nome" width="120px"/>

<treecol label="cognome" width="300px"/>

</treecols>

<template name="model">

<treeitem open="@bind(each.open)">

<treerow>

<treecell label="@bind(each.data.name)"></treecell>

<treecell label="@bind(each.data.lastName)"></treecell>

<treecell>

</treecell>

</treerow>

</treeitem>

</template>

</tree>

</window>

</zk>

package model;

import java.util.LinkedList;

import org.zkoss.bind.annotation.Init;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.TreeModel;

import org.zkoss.zul.TreeNode;

public class ViewModel {

private PersonTreeNode<person> treeRoot=null;

private TreeModel<treenode<person>> treeNodes=null;

public PersonTreeNode<person> getTreeRoot() {

return treeRoot;

}

public void setTreeRoot(PersonTreeNode<person> treeRoot) {

this.treeRoot = treeRoot;

}

public TreeModel<treenode<person>> getTreeNodes() {

return this.treeNodes;

}

public void setTreeNodes(TreeModel<treenode<person>> treeNodes) { this.treeNodes = treeNodes; }

@Init

public void init(){

this.loadDati();

}

public PersonTreeNode<person>addTreeNode(boolean open){

return this.addTreeNode( null, open);

}

public PersonTreeNode<person> addTreeNode(){

return this.addTreeNode( null, false);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent){

return this.addTreeNode(parent, false);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent,boolean open){

return this.addTreeNode(parent,open,null);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent,boolean open,Integer pos){

if (  parent==null )
{
    if ( this.treeRoot==null )
    {
        this.treeRoot=new PersonTreeNode<Person>(null,new LinkedList<PersonTreeNode<Person>>(),treeNodes,open);
        this.treeNodes=new DefaultTreeModel<Person>(this.treeRoot);
    }
    parent=this.treeRoot;
}
Person row =new Person();
PersonTreeNode<Person> treeNode=null;
treeNode=new PersonTreeNode<Person>(parent,row,new LinkedList<PersonTreeNode<Person>>(),this.treeNodes,open,pos);
if ( treeNode.isOpen() )
    ((DefaultTreeModel<Person>)treeNodes).addOpenObject(treeNode);
return treeNode;

}

public void loadDati(){

Person row=null;
PersonTreeNode<Person> nodeParent;
PersonTreeNode<Person> node;
nodeParent=this.addTreeNode(true);
row=nodeParent.getData();
row.setLastName("Bianchi");
row.setName("Gino");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Rossi");
row.setName("Nino");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Verdi");
row.setName("Paolo");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Blues");
row.setName("Ugo");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Bianchio");
row.setName("Gianni");

}

}

package model;

import java.util.LinkedList;

import org.zkoss.poi.ss.formula.functions.T;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.DefaultTreeNode;

import org.zkoss.zul.TreeModel;

import org.zkoss.zul.TreeNode;

public class PersonTreeNode<t> extends DefaultTreeNode<t> {

private static final long serialVersionUID = -8085873079938209759L;

// Node Control the default open

private boolean open = false;

private boolean leafNode=true;

private TreeModel<treenode<t>> treeNodes=null;

public PersonTreeNode(T data, LinkedList<persontreenode<t>> children,

TreeModel<treenode<t>>treeNodes,boolean open) {

super(data, children);

this.treeNodes=treeNodes;
this.open = open;

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes, boolean open) {

super(data, children);
this.treeNodes=treeNodes;
this.open = open;
parent.setLeaf(false);
parent.add(this);

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children, TreeModel<treenode<t>>treeNodes,boolean open,Integer pos) {

super(data, children);
this.treeNodes=treeNodes;
this.open = open;
parent.setLeaf(false);
if (pos==null || parent.getChildren().size()==0 )
    parent.add(this);
else
    parent.getChildren().add(pos,this);

} public PersonTreeNode(T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes) {

super(data, children);
this.treeNodes=treeNodes;

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes) {

super(data, children);
this.treeNodes=treeNodes;
parent.setLeaf(false);
parent.add(this);

}

public PersonTreeNode(PersonTreeNode<t> parent,T data,TreeModel<treenode<t>>treeNodes) {

super(data);
parent.setLeaf(false);
parent.add(this);

} public PersonTreeNode(PersonTreeNode<t> parent,T data,TreeModel<treenode<t>>treeNodes,boolean open) {

super(data);
parent.setLeaf(false);
parent.add(this);
this.treeNodes=treeNodes;
this.open = open;

}

public PersonTreeNode(T data,TreeModel<treenode<t>>treeNodes) {

super(data);
this.treeNodes=treeNodes;

}

public PersonTreeNode(T data,TreeModel<treenode<t>>treeNodes,boolean open) {

super(data);
this.treeNodes=treeNodes;
this.open = open;

}

public boolean isOpen() {

return open;

}

public void setOpen(boolean open) {

this.open = open;
if ( open )
        ((DefaultTreeModel<T>)treeNodes).addOpenObject(this);
else
    ((DefaultTreeModel<T>)treeNodes).removeOpenObject(this);

}

public boolean isLeaf() {

     return leafNode;

} public void setLeaf(boolean value) {

 this.leafNode=value;
 if ( value )
     this.open=false;

}

}

BEST SOLUTION

<zk>

<window width="100%" border="none" apply="org.zkoss.bind.BindComposer" viewmodel="@id('vm') @init('model.ViewModel')">

<tree model="@bind(vm.treeNodes)" mold="paging" pagesize="4">

<treecols sizable="true">

<treecol label="nome" width="120px"/>

<treecol label="cognome" width="300px"/>

</treecols>

<template name="model">

<treeitem open="@bind(each.open)">

<treerow>

<treecell label="@bind(each.data.name)"></treecell>

<treecell label="@bind(each.data.lastName)"></treecell>

<treecell>

</treecell>

</treerow>

</treeitem>

</template>

</tree>

</window>

</zk>

package model;

import java.util.LinkedList;

import org.zkoss.bind.annotation.Init;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.TreeModel;

import org.zkoss.zul.TreeNode;

public class ViewModel {

private PersonTreeNode<person> treeRoot=null;

private TreeModel<treenode<person>> treeNodes=null;

public PersonTreeNode<person> getTreeRoot() {

return treeRoot;

}

public void setTreeRoot(PersonTreeNode<person> treeRoot) {

this.treeRoot = treeRoot;

}

public TreeModel<treenode<person>> getTreeNodes() {

return this.treeNodes;

}

public void setTreeNodes(TreeModel<treenode<person>> treeNodes) { this.treeNodes = treeNodes; }

@Init

public void init(){

this.loadDati();

}

public PersonTreeNode<person>addTreeNode(boolean open){

return this.addTreeNode( null, open);

}

public PersonTreeNode<person> addTreeNode(){

return this.addTreeNode( null, false);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent){

return this.addTreeNode(parent, false);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent,boolean open){

return this.addTreeNode(parent,open,null);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent,boolean open,Integer pos){

if (  parent==null )
{
    if ( this.treeRoot==null )
    {
        this.treeRoot=new PersonTreeNode<Person>(null,new LinkedList<PersonTreeNode<Person>>(),treeNodes,open);
        this.treeNodes=new DefaultTreeModel<Person>(this.treeRoot);
    }
    parent=this.treeRoot;
}
Person row =new Person();
PersonTreeNode<Person> treeNode=null;
treeNode=new PersonTreeNode<Person>(parent,row,new LinkedList<PersonTreeNode<Person>>(),this.treeNodes,open,pos);
if ( treeNode.isOpen() )
    ((DefaultTreeModel<Person>)treeNodes).addOpenObject(treeNode);
return treeNode;

}

public void loadDati(){

Person row=null;
PersonTreeNode<Person> nodeParent;
PersonTreeNode<Person> node;
nodeParent=this.addTreeNode(true);
row=nodeParent.getData();
row.setLastName("Bianchi");
row.setName("Gino");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Rossi");
row.setName("Nino");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Verdi");
row.setName("Paolo");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Blues");
row.setName("Ugo");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Bianchio");
row.setName("Gianni");

}

}

package model;

import java.util.LinkedList;

import org.zkoss.poi.ss.formula.functions.T;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.DefaultTreeNode;

import org.zkoss.zul.TreeModel;

import org.zkoss.zul.TreeNode;

public class PersonTreeNode<t> extends DefaultTreeNode<t> {

private static final long serialVersionUID = -8085873079938209759L;

// Node Control the default open

private boolean open = false;

private boolean leafNode=true;

private TreeModel<treenode<t>> treeNodes=null;

public PersonTreeNode(T data, LinkedList<persontreenode<t>> children,

TreeModel<treenode<t>>treeNodes,boolean open) {

super(data, children);

this.treeNodes=treeNodes;
this.open = open;

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes, boolean open) {

super(data, children);
this.treeNodes=treeNodes;
this.open = open;
parent.setLeaf(false);
parent.add(this);

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children, TreeModel<treenode<t>>treeNodes,boolean open,Integer pos) {

super(data, children);
this.treeNodes=treeNodes;
this.open = open;
parent.setLeaf(false);
if (pos==null || parent.getChildren().size()==0 )
    parent.add(this);
else
    parent.getChildren().add(pos,this);

} public PersonTreeNode(T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes) {

super(data, children);
this.treeNodes=treeNodes;

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes) {

super(data, children);
this.treeNodes=treeNodes;
parent.setLeaf(false);
parent.add(this);

}

public PersonTreeNode(PersonTreeNode<t> parent,T data,TreeModel<treenode<t>>treeNodes) {

super(data);
parent.setLeaf(false);
parent.add(this);

} public PersonTreeNode(PersonTreeNode<t> parent,T data,TreeModel<treenode<t>>treeNodes,boolean open) {

super(data);
parent.setLeaf(false);
parent.add(this);
this.treeNodes=treeNodes;
this.open = open;

}

public PersonTreeNode(T data,TreeModel<treenode<t>>treeNodes) {

super(data);
this.treeNodes=treeNodes;

}

public PersonTreeNode(T data,TreeModel<treenode<t>>treeNodes,boolean open) {

super(data);
this.treeNodes=treeNodes;
this.open = open;

}

public boolean isOpen() {

return open;

}

public void setOpen(boolean open) {

this.open = open;
if ( open )
    ((DefaultTreeModel<T>)treeNodes).addOpenObject(this);
else
    ((DefaultTreeModel<T>)treeNodes).removeOpenObject(this);

}

public boolean isLeaf() {

     return leafNode;

} public void setLeaf(boolean value) {

 this.leafNode=value;
 if ( value )
     this.open=false;

}

}

BEST SOLUTION

<zk>

<window width="100%" border="none" apply="org.zkoss.bind.BindComposer" viewmodel="@id('vm') @init('model.ViewModel')">

<tree model="@bind(vm.treeNodes)" mold="paging" pagesize="4">

<treecols sizable="true">

<treecol label="nome" width="120px"/>

<treecol label="cognome" width="300px"/>

</treecols>

<template name="model">

<treeitem open="@bind(each.open)">

<treerow>

<treecell label="@bind(each.data.name)"></treecell>

<treecell label="@bind(each.data.lastName)"></treecell>

<treecell>

</treecell>

</treerow>

</treeitem>

</template>

</tree>

</window>

</zk>

package model;

import java.util.LinkedList;

import org.zkoss.bind.annotation.Init;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.TreeModel;

import org.zkoss.zul.TreeNode;

public class ViewModel {

private PersonTreeNode<person> treeRoot=null;

private TreeModel<treenode<person>> treeNodes=null;

public PersonTreeNode<person> getTreeRoot() {

return treeRoot;

}

public void setTreeRoot(PersonTreeNode<person> treeRoot) {

this.treeRoot = treeRoot;

}

public TreeModel<treenode<person>> getTreeNodes() {

return this.treeNodes;

}

public void setTreeNodes(TreeModel<treenode<person>> treeNodes) { this.treeNodes = treeNodes; }

@Init

public void init(){

this.loadDati();

}

public PersonTreeNode<person>addTreeNode(boolean open){

return this.addTreeNode( null, open);

}

public PersonTreeNode<person> addTreeNode(){

return this.addTreeNode( null, false);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent){

return this.addTreeNode(parent, false);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent,boolean open){

return this.addTreeNode(parent,open,null);

}

public PersonTreeNode<person> addTreeNode(PersonTreeNode<person> parent,boolean open,Integer pos){

if (  parent==null )
{
    if ( this.treeRoot==null )
    {
        this.treeRoot=new PersonTreeNode<Person>(null,new LinkedList<PersonTreeNode<Person>>(),treeNodes,open);
        this.treeNodes=new DefaultTreeModel<Person>(this.treeRoot);
    }
    parent=this.treeRoot;
}
Person row =new Person();
PersonTreeNode<Person> treeNode=null;
treeNode=new PersonTreeNode<Person>(parent,row,new LinkedList<PersonTreeNode<Person>>(),this.treeNodes,open,pos);
if ( treeNode.isOpen() )
    ((DefaultTreeModel<Person>)treeNodes).addOpenObject(treeNode);
return treeNode;

}

public void loadDati(){

Person row=null;
PersonTreeNode<Person> nodeParent;
PersonTreeNode<Person> node;
nodeParent=this.addTreeNode(true);
row=nodeParent.getData();
row.setLastName("Bianchi");
row.setName("Gino");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Rossi");
row.setName("Nino");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Verdi");
row.setName("Paolo");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Blues");
row.setName("Ugo");
node=this.addTreeNode(nodeParent,true);
node.setLeaf(true);
row=node.getData();
row.setLastName("Bianchio");
row.setName("Gianni");

}

}

package model;

import java.util.LinkedList;

import org.zkoss.poi.ss.formula.functions.T;

import org.zkoss.zul.DefaultTreeModel;

import org.zkoss.zul.DefaultTreeNode;

import org.zkoss.zul.TreeModel;

import org.zkoss.zul.TreeNode;

public class PersonTreeNode<t> extends DefaultTreeNode<t> {

private static final long serialVersionUID = -8085873079938209759L;

// Node Control the default open

private boolean open = false;

private boolean leafNode=true;

private TreeModel<treenode<t>> treeNodes=null;

public PersonTreeNode(T data, LinkedList<persontreenode<t>> children,

TreeModel<treenode<t>>treeNodes,boolean open) {

super(data, children);

this.treeNodes=treeNodes;
this.open = open;

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes, boolean open) {

super(data, children);
this.treeNodes=treeNodes;
this.open = open;
parent.setLeaf(false);
parent.add(this);

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children, TreeModel<treenode<t>>treeNodes,boolean open,Integer pos) {

super(data, children);
this.treeNodes=treeNodes;
this.open = open;
parent.setLeaf(false);
if (pos==null || parent.getChildren().size()==0 )
    parent.add(this);
else
    parent.getChildren().add(pos,this);

} }

public PersonTreeNode(T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes) {

super(data, children);
this.treeNodes=treeNodes;

}

public PersonTreeNode(PersonTreeNode<t> parent,T data, LinkedList<persontreenode<t>> children,TreeModel<treenode<t>>treeNodes) {

super(data, children);
this.treeNodes=treeNodes;
parent.setLeaf(false);
parent.add(this);

}

public PersonTreeNode(PersonTreeNode<t> parent,T data,TreeModel<treenode<t>>treeNodes) {

super(data);
parent.setLeaf(false);
parent.add(this);

} }

public PersonTreeNode(PersonTreeNode<t> parent,T data,TreeModel<treenode<t>>treeNodes,boolean open) {

super(data);
parent.setLeaf(false);
parent.add(this);
this.treeNodes=treeNodes;
this.open = open;

}

public PersonTreeNode(T data,TreeModel<treenode<t>>treeNodes) {

super(data);
this.treeNodes=treeNodes;

}

public PersonTreeNode(T data,TreeModel<treenode<t>>treeNodes,boolean open) {

super(data);
this.treeNodes=treeNodes;
this.open = open;

}

public boolean isOpen() {

return open;

}

public void setOpen(boolean open) {

this.open = open;
if ( open )
   ((DefaultTreeModel<T>)treeNodes).addOpenObject(this);
else
   ((DefaultTreeModel<T>)treeNodes).removeOpenObject(this);

}

public boolean isLeaf() {

     return leafNode;

} }

public void setLeaf(boolean value) {

 this.leafNode=value;
 if ( value )
     this.open=false;

}

}

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More