`

zk tree 浏览磁盘或者目录

    博客分类:
  • zk
阅读更多

index.zul
<?xml version="1.0" encoding="utf-8"?>
<window
apply="test.IndexController">

<!-- 
liulan
<textbox id="txtRoot"></textbox>
-->

<button forward="onLoadFiles" label="Browse..."></button>
<tree id="treeDir" multiple="true" checkmark="true">

</tree>
</window>

IndexController .java
import org.apache.commons.lang.StringUtils;

import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.util.GenericAutowireComposer;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.Treerow;
import org.zkoss.zul.api.Textbox;
import org.zkoss.zul.api.Tree;
import org.zkoss.zul.api.Treechildren;


public class IndexController extends GenericAutowireComposer {
private static final long serialVersionUID = 5909684044186358102L;
//private Textbox txtRoot;
private Tree treeDir;

public void onLoadFiles() {

//String root = txtRoot.getText();
File roots[] = File.listRoots();
for(int i=0;i<roots.length;i++){

//root= new File(roots[i].toString());


File file = new File(roots[i].toString());
if (!file.exists() || file.isFile()) {
return;
}
if (treeDir.getTreechildrenApi() == null) {
new org.zkoss.zul.Treechildren().setParent(treeDir);
}
createTreeitem(file, treeDir.getTreechildrenApi());
}
}
private void createTreeitem(final File file, Treechildren tc) {
String fileName = StringUtils.isBlank(file.getName()) ? file.getAbsolutePath() : file.getName();

//System.out.println(fileName);

final Treeitem treeitem = new Treeitem(fileName, file);

Treerow rw=treeitem.getTreerow();//treerow add eventListener

if (file.isDirectory()) {
treeitem.setImage("/images/ClosedFolder.gif");
//treeitem.setCheckable()
rw.addEventListener("onClick", new EventListener() {
public void onEvent(Event event)  {
try {
File[] fs = file.listFiles();
if (fs == null) {
return;
}
if (!createTreechildren(treeitem)) {
return;
}
for (File f : fs) {
//System.out.println(f.getName());
createTreeitem(f, treeitem.getTreechildren());
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
} else {
treeitem.setImage("/images/file_16x16.gif");
}
treeitem.setParent(tc);

}
private boolean createTreechildren(Treeitem item) {
if (item.getTreechildrenApi() == null) {
new org.zkoss.zul.Treechildren().setParent(item);
return true;
} else {
return false;
}
}

}

转载自http://sun4love.iteye.com/blog/844372,并做了点小小的改动,使用zk版本3.6,没有spring,同时为treerow添加监听,而不是treeitem。treeitem在我 的电脑上实现不了监听。有什么想法可以相互讨论。呵呵

 

  • 大小: 8.7 KB
分享到:
评论

相关推荐

    【zk demos】利用zk tree浏览目录

    NULL 博文链接:https://marsvaadin.iteye.com/blog/1391556

    ZK_tree DEMO

    【ZK_Tree_DEMO】是一个基于ZK框架实现的树形展示组件的示例项目,主要展示了如何在ZK环境中创建和使用树形结构来显示数据。ZK是一款流行的Java Web开发框架,它允许开发者使用事件驱动的方式构建富客户端用户界面,...

    Zk TreeMode

    在ZK框架中,`Zk TreeMode`是一种专门用于构建和展示树形结构数据的模式,它允许我们在页面加载时动态地为`Tree`组件绑定数据。在本例中,我们将深入探讨如何通过两个主要步骤实现这一功能,并对涉及的关键类`...

    ZK 开发手册(带目录版本)

    传统Web应用程序的单页性(page-based)和无状态(stateless-communication)模式导致了用户在多个页面间来回浏览的不便,容易导致混淆和低效的用户体验。 ZK允许开发者在不离开当前页面的情况下进行异步通信,这样可以...

    zk目录树设计

    "zk目录树设计"这个主题涉及到如何利用Zookeeper来构建和操作一个类似于文件系统的目录树结构,以支持在分布式环境中进行数据组织和管理。 Zookeeper的核心概念之一是它将数据存储为一系列的节点,这些节点可以被...

    zk-bin-6.5.0.zip

    ZK-1239: Grid, Listbox, Tree can support to scroll the content by finger on tablet/mobile device ZK-1240: Input element support HTML5 type, like tel, number, email, and so on ZK-1242: Datebox ...

    zk入门.web框架

    5. **页面间参数传递与接收**:可以通过URL参数或者`Executions.getCurrent().sendRedirect()`方法传递参数,接收端通过`@Param`注解或`RequestContext`对象获取参数。 **四、常用组件** 1. **Window**:用于创建...

    磁盘空间管理的模拟与实现.zip(操作系统课程设计)

    操作系统是计算机系统的核心组成部分,负责管理和控制系统的硬件资源,其中包括磁盘空间的管理。在本课程设计中,我们将深入探讨磁盘空间管理的关键概念,并通过C++编程语言进行模拟实现。位图法是磁盘空间管理的一...

    zk的主界面的树型的源代码

    描述中提到,为了在MyEclipse中重现ZK的主界面,你需要创建一个新的Web项目,并将`zk-demo`里的`src`目录下的文件移动到Web项目的`src`目录,同时将`WebContent`内容移至`webroot`。`zk-demo`是一个官方提供的示例...

    ZK32-1_library_zk_thinkkrz_zk32+9999zk.com_

    Thinkkrz可能是ZK32的一个版本或者与之相关的开发团队或项目名,而"zk32+9999zk.com"可能是一个特定版本号或者支持网站的URL。 描述“Librerias ZK 32 Bits Windows”进一步确认这是针对Windows操作系统的ZK32库...

    zkstudio_2.0.1_indigo

    4. **plugins**:这个目录很可能包含了ZK Studio的所有核心插件,每个插件通常是一个独立的JAR文件或者是一组相关的文件。这些插件扩展了Eclipse的功能,提供了ZK相关的特性,比如ZK组件的拖放设计、ZK应用的调试...

    zkstudio.zip

    ZK Eclipse插件 解压至文件夹,如D:\Program Files\MyEclipse 8.5\zkstudio 在Eclipse安装目录下的dropins目录添加link文件如,zk.link,文件内容如下: path=D:\\Program Files\\MyEclipse 8.5\\zkstudio

    ZK资料学习zk框架的助手

    ZK基于一个简单的层次结构命名空间,类似于文件系统的目录树结构,允许客户端通过API进行读写操作。这些操作具有原子性,确保了数据的一致性。 ZK的主要组件包括: 1. **服务器(Server)**:ZK集群由多个服务器...

    zk开发手册和注意事项

    在安装ZKStudio时,如果遇到MyEclipse版本是破解或者汉化版本可能会出现错误,这时需要切换到英文版的MyEclipse进行安装。 4. Web项目中ZK的配置 在Web项目中配置ZK是使用ZKStudio以及开发ZK应用的前提条件。配置...

    zkframework Eclipse插件 zkstudio ZK Studio

    **ZK Framework与Eclipse插件ZK Studio详解** ZK Framework是一款强大的Java Web开发框架,专注于构建富客户端用户界面。它提供了一种基于事件驱动和组件模型的编程方式,使得开发者无需处理复杂的JavaScript和HTML...

    ZK4500SDK包 ZK4500、中控指纹仪、SDK开发包带各种语言的demo

    `Demo`和`Sample`目录下则包含了多种编程语言(如C++、C#、Java等)的示例代码,这些示例演示了如何使用SDK进行指纹注册、比对、模板导出等操作,是开发者学习和参考的重要资源。 在实际开发过程中,开发者可以根据...

    ZK框架开发手册

    ZK框架还提供了多种内置的Model组件,例如ListModel、ModelGroups、ModelTree等,以及用于数据展示的组件,比如Listbox、Grid、Tree等。这些组件被组织成模板,便于开发者在视图中重用,并且提供了相应的Renderer来...

    ZK+spring+hibernate的整合

    《ZK+Spring+Hibernate整合详解》 ZK、Spring和Hibernate是Java开发中的三大重要框架,它们分别在用户界面、依赖注入与事务管理、持久层操作方面发挥着关键作用。将这三者进行整合,可以构建出高效、稳定且易于维护...

    ZK安装 ZK入门 开发 讲解 共3个pdf

    ZK,全称为ZK Framework,是一个开源的Java Web组件库和事件驱动框架,主要用于构建富客户端用户界面。ZK以其独特的服务器端组件模型和事件处理机制,为开发者提供了便捷的用户界面开发体验,尤其在企业级应用中广泛...

    zk框架zk7api

    zk后台api很全的,对于学习ZK很有用的。

Global site tag (gtag.js) - Google Analytics