view代码
<zk>
<window id="win" border="normal" contentStyle="padding:0px" apply="account.DengJiComposer">
<borderlayout height="600px" width="100%">
<west>
<tree width="200px" height="600px" id="tree"
zclass="z-dottree">
<treecols sizable="true">
<treecol label="项目列表">
</treecol>
</treecols>
</tree>
</west>
<center>
<include id="include"></include>
</center>
</borderlayout>
</window>
</zk>
后台类
package account;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Include;
import org.zkoss.zul.Tree;
public class DengJiComposer extends GenericForwardComposer{
private Tree tree;
@SuppressWarnings("unused")
private Include include;
public void doAfterCompose(Component comp) throws Exception{
super.doAfterCompose(comp);
tree.setModel(new MyTreeModel());
tree.setTreeitemRenderer(new MyTreeitemRenderer());
}
}
MyTreeModel类代码
package account;
import java.util.ArrayList;
import java.util.List;
import account.bean.Item;
import org.zkoss.zul.TreeModel;
import org.zkoss.zul.event.TreeDataListener;
public class MyTreeModel implements TreeModel{
private List<Item>model;
AccDAO acc = new AccDAO();
public MyTreeModel(){
model = acc.findAllxm();
}
@Override
public void addTreeDataListener(TreeDataListener l) {
// TODO Auto-generated method stub
}
@Override
public Object getChild(Object parent, int index) {
// TODO Auto-generated method stub
if(parent instanceof List)
return ((List)parent).get(index);
else if(parent instanceof Item){
List<Item> xmList = acc.getXmChild((Item)parent);
return xmList.get(index);
}
else
return null;
}
@Override
public int getChildCount(Object parent) {
// TODO Auto-generated method stub
if(parent instanceof List)
return ((List)parent).size();
else if(parent instanceof Item)
return (int)acc.getChildCount((Item)parent);
else
return 0;
}
@Override
public int[] getPath(Object parent, Object lastNode) {
// TODO Auto-generated method stub
return null;
}
@Override
public Object getRoot() {
// TODO Auto-generated method stub
List<Item>rootlist = new ArrayList();
for(Item xm:model){
if(xm.getParentId()==null)
rootlist.add(xm);
}
return rootlist;
}
@Override
public boolean isLeaf(Object node) {
// TODO Auto-generated method stub
return acc.checkIsLeaf((Item)node);
}
@Override
public void removeTreeDataListener(TreeDataListener l) {
// TODO Auto-generated method stub
}
}
MyTreeitemRenderer类
package account;
import account.bean.Item;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.Include;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.TreeitemRenderer;
public class MyTreeitemRenderer implements TreeitemRenderer{
private boolean addDoubleClick = false;
public MyTreeitemRenderer(){
this(true);
}
public MyTreeitemRenderer(boolean addDoubleClick){
this.addDoubleClick = addDoubleClick;
}
@Override
public void render(final Treeitem item, Object data) throws Exception {
// TODO Auto-generated method stub
Item ite = (Item)data;
item.setLabel(ite.getItemname());
item.setValue(ite);
if(new AccDAO().checkIsLeaf(ite)){
item.getTreerow().addEventListener(Events.ON_DOUBLE_CLICK, new EventListener(){
@Override
public void onEvent(Event event) throws Exception {
// TODO Auto-generated method stub
Include include = (Include) item.getFellow("include");
include.setSrc(null);
include.setSrc("/dengji.zul");
include.setDynamicProperty("ite", item.getValue());
}
});
}
}
}
DAO相关查询
public List<Item>findAllxm()
{
Session sess=HibernateSessionFactory.getSession();
try{
return sess.createQuery("from Item").list();
}catch(Exception e){
e.printStackTrace();
}
finally{
sess.close();
}
return null;
}
public List<Item> getXmChild(Item xm){
try {
Session sess = HibernateSessionFactory.getSession();
String hql = "from Item where parentId=?";
Query query = sess.createQuery(hql);
query.setInteger(0, xm.getItemId());
return query.list();
} finally{
HibernateSessionFactory.closeSession();
}
}public long getChildCount(Item xm){
try {
Session sess = HibernateSessionFactory.getSession();
String hql = "select count(id) from Item where parentId=?";
Query query = sess.createQuery(hql);
query.setInteger(0, xm.getItemId());
return ((Long)query.uniqueResult()).longValue();
} finally{
HibernateSessionFactory.closeSession();
}
}
public boolean checkIsLeaf(Item xm){
try {
Session sess = HibernateSessionFactory.getSession();
String hql = "select count(id) from Item where parentId=?";
Query query = sess.createQuery(hql);
query.setInteger(0, xm.getItemId());
return ((Long)query.uniqueResult()).longValue()==0;
} finally{
HibernateSessionFactory.closeSession();
}
}
Treeitem treeitem=(Treeitem)event.getOrigin().getTarget();
if(treeitem.getTreechildren().getChildren().size()>0){
return;
}
tableLists=tableDAO.getTableName((String) treeitem.getValue());
for(Iterator iter=tableLists.iterator();iter.hasNext();){
String name=(String)iter.next();
final Treeitem item=new Treeitem();
item.setValue(name);
item.setLabel(name);
item.setParent(treeitem.getTreechildren());
if(tableTree.isCheckmark()){
item.isCheckable();
}
item.addEventListener(Events.ON_DOUBLE_CLICK, new EventListener()
{
public void onEvent(Event event) throws Exception {
}
});
}
分享到:
相关推荐
可以快速生成zk的主题,通过简单的参数配置就可以的,不需要知道复杂的CSS知识
ZK树的递归实现
zk框架,实现手动添加树的节点,在开发的过程中可以方便开发人员的使用
可根据RGB值扩展ZK主题,适用于多个不同的版本。
zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架
zk的主页面的源代码,在myeclipse里新建一个web项目,把zk-demo里src的文件放到web项目的src下,WebContent放到webroot下就可以生成zk的主界面
SMC真空发生器-ZK2省能型。日本SMC真空发生器多级真空发生器采用三级喷嘴结构设计,使得只利用较少的压缩空气就能够产生约3倍左右的真空抽气量,DRM多级真空发生器的真空抽气量从14L/MIN到11928L/MIN,真空度达到-92...
zk后台api很全的,对于学习ZK很有用的。
ZK开发手册 ZK开发手册 ZK开发手册 ZK开发手册 ZK开发手册
zk-6.5.0.zip ZK 6.5.0 Sep 12, 2012 * Features ZK-447: The file upload allows users to drag and drop local files (HTML5) ZK-1241: ZK Client Widget support swipe event for tablet/mobile device ZK-...
ZK 8.0.0端参考 ZK 8.0.0组件开发的必需品 ZK 8.0.0组件引用 ZK 8.0.0配置参考 ZK 8.0.0开发人员的参考 ZK 8.0.0风格定制指南 ZK 8.0.0 ZUML参考 zk-mvvm-book
最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC
ZK包括一个基于AJAX事件驱动的引擎(engine),一套丰富的XUL和XHTML,以及一种被称为ZUML(ZK User Interface Markup Language,ZK用户界面标记语言)的标记语言。 有了ZK,您可以利用XUL和XHTML的丰富特性来呈现您的...
Librerias ZK 32 Bits Windows
最新的zk核心jar用到zk的可以下载很实用的东西
ZK 5.0.5 Component Reference ZK 5.0.5 Configuration Reference ZK 5.0.5 Style Guide ZK 5.0.5 ZUML Reference
zk的chm版的api英文帮助文档. 本人自己制作的。 zk是台湾的一个纯ajax框架。
ZK资料学习zk框架的助手,带你步入zk的殿堂。。。。。
ZK4500、中控指纹仪、SDK开发包带各种语言的demo
zk studion plugins zk studion plugins