`
snoopy7713
  • 浏览: 1158034 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

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

    博客分类:
  • ZK
zk 
阅读更多

1,页面

 

Xml代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <?page id="indexPage" title="" id="indexPage" cacheable="false" language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8"?>  
  3. <?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>  
  4. <?taglib uri="http://www.zkoss.org/zktools/zktools" prefix="z"?>  
  5. <?link rel="stylesheet" href="/css/global.css" type="text/css" media="screen" ?>  
  6. <window xmlns:w="client" xmlns:n="native" xmlns="http://www.zkoss.org/2005/zul"  
  7.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  8.     xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"  
  9.     apply="${z:ctrl('indexController')}">  
  10.     浏览目录   
  11.     <textbox id="txtRoot"></textbox><button forward="onLoadFiles" label="Browse..."></button>  
  12.     <tree id="treeDir">  
  13.     </tree>  
  14. </window>  
<?xml version="1.0" encoding="utf-8"?>
<?page id="indexPage" title="" id="indexPage" cacheable="false" language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>
<?taglib uri="http://www.zkoss.org/zktools/zktools" prefix="z"?>
<?link rel="stylesheet" href="/css/global.css" type="text/css" media="screen" ?>
<window xmlns:w="client" xmlns:n="native" xmlns="http://www.zkoss.org/2005/zul"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"
	apply="${z:ctrl('indexController')}">
	浏览目录
	<textbox id="txtRoot"></textbox><button forward="onLoadFiles" label="Browse..."></button>
	<tree id="treeDir">
	</tree>
</window>

 

 

2,java代码,关于spring controller自动注册注解zk+hibernate+spring零配置

 

Java代码 复制代码 收藏代码
  1. import java.io.File;   
  2.   
  3. import org.apache.commons.lang.StringUtils;   
  4. import org.springframework.context.annotation.Scope;   
  5. import org.springframework.stereotype.Controller;   
  6. import org.zkoss.zk.ui.event.Event;   
  7. import org.zkoss.zk.ui.event.EventListener;   
  8. import org.zkoss.zk.ui.event.Events;   
  9. import org.zkoss.zk.ui.util.GenericAutowireComposer;   
  10. import org.zkoss.zul.Treeitem;   
  11. import org.zkoss.zul.api.Textbox;   
  12. import org.zkoss.zul.api.Tree;   
  13. import org.zkoss.zul.api.Treechildren;   
  14.   
  15. import com.sun4love.common.web.zk.ZkUtils;   
  16.   
  17. @Controller  
  18. @Scope("prototype")   
  19. public class IndexController extends GenericAutowireComposer {   
  20.     private static final long serialVersionUID = 5909684044186358102L;   
  21.     private Textbox txtRoot;   
  22.     private Tree treeDir;   
  23.   
  24.     public void onLoadFiles() {   
  25.         String root = txtRoot.getText();   
  26.         File file = new File(root);   
  27.         if (!file.exists() || file.isFile()) {   
  28.             ZkUtils.showExclamation(String.format("%s不存在或不是一个目录", root), "提示");   
  29.             return;   
  30.         }   
  31.         if (treeDir.getTreechildrenApi() == null) {   
  32.             new org.zkoss.zul.Treechildren().setParent(treeDir);   
  33.         }   
  34.         createTreeitem(file, treeDir.getTreechildrenApi());   
  35.     }   
  36.   
  37.     private void createTreeitem(final File file, Treechildren tc) {   
  38.         String fileName = StringUtils.isBlank(file.getName()) ? file   
  39.                 .getAbsolutePath() : file.getName();   
  40.         final Treeitem treeitem = new Treeitem(fileName, file);   
  41.         if (file.isDirectory()) {   
  42.             treeitem.setImage("/images/ClosedFolder.gif");   
  43.             treeitem.addEventListener(Events.ON_CLICK, new EventListener() {   
  44.                 public void onEvent(Event evt) throws Exception {   
  45.                     try {   
  46.                         File[] fs = file.listFiles();   
  47.                         if (fs == null) {   
  48.                             return;   
  49.                         }   
  50.                         if (!createTreechildren(treeitem)) {   
  51.                             return;   
  52.                         }   
  53.                         for (File f : fs) {   
  54.                             createTreeitem(f, treeitem.getTreechildren());   
  55.                         }   
  56.                     } catch (Exception e) {   
  57.                         ZkUtils.showExclamation("无访问目录权限""提示");   
  58.                     }   
  59.                 }   
  60.             });   
  61.         } else {   
  62.             treeitem.setImage("/images/file_16x16.gif");   
  63.         }   
  64.         treeitem.setParent(tc);   
  65.   
  66.     }   
  67.     private boolean createTreechildren(Treeitem item) {   
  68.         if (item.getTreechildrenApi() == null) {   
  69.             new org.zkoss.zul.Treechildren().setParent(item);   
  70.             return true;   
  71.         } else {   
  72.             return false;   
  73.         }   
  74.     }   
  75.   
  76. }  
import java.io.File;

import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.GenericAutowireComposer;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.api.Textbox;
import org.zkoss.zul.api.Tree;
import org.zkoss.zul.api.Treechildren;

import com.sun4love.common.web.zk.ZkUtils;

@Controller
@Scope("prototype")
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 file = new File(root);
		if (!file.exists() || file.isFile()) {
			ZkUtils.showExclamation(String.format("%s不存在或不是一个目录", root), "提示");
			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();
		final Treeitem treeitem = new Treeitem(fileName, file);
		if (file.isDirectory()) {
			treeitem.setImage("/images/ClosedFolder.gif");
			treeitem.addEventListener(Events.ON_CLICK, new EventListener() {
				public void onEvent(Event evt) throws Exception {
					try {
						File[] fs = file.listFiles();
						if (fs == null) {
							return;
						}
						if (!createTreechildren(treeitem)) {
							return;
						}
						for (File f : fs) {
							createTreeitem(f, treeitem.getTreechildren());
						}
					} catch (Exception e) {
						ZkUtils.showExclamation("无访问目录权限", "提示");
					}
				}
			});
		} 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;
		}
	}

}

 

 

 

 效果图

 

 

分享到:
评论

相关推荐

    平原型生活垃圾填埋场扩容措施研究及应用_刘志刚.pdf

    平原型生活垃圾填埋场扩容措施研究及应用_刘志刚.pdf

    跨模型迁移指南:将OpenAI项目快速适配DeepSeekAPI.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    智能推荐系统实战:DeepSeekAPI在电商场景的个性化排序应用.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    成本控制秘籍:DeepSeekAPI计费机制与优化方案全解.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    Wallpaper Engine 壁纸一键提取

    Wallpaper Engine 是一款广受欢迎的动态壁纸软件,允许用户将各种动态、交互式壁纸应用到桌面上。其丰富的创意工坊内容让用户可以轻松下载和分享个性化的壁纸。而“一键提取”功能则是 Wallpaper Engine 中一个非常实用的工具,能够帮助用户快速提取和保存壁纸资源,方便后续使用或分享。

    性价比革命:DeepSeekAPI成本仅为GPT-4的3%的技术揭秘.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    本地部署DeepSeek模型:API调用与自有算力结合的混合架构设计.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    这是一份非常有意义的实习报告

    这是一份非常有意义的实习报告

    用Python玩转DeepSeek:代码生成接口的10个实战案例.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    爱华AIWA HS-J9磁带随身听维修服务手册 说明书电路原理图PCB图

    爱华AIWA HS-J9磁带随身听维修服务手册 说明书电路原理图PCB图

    从ChatGPT到DeepSeek:API迁移指南与参数映射对照表.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    房屋租赁合同[示范文本].doc

    房屋租赁合同[示范文本].doc

    智能体开发:将DeepSeekAPI集成到知识库系统的全流程.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    单片机 入门学习视频教程 自学资料

    单片机 入门学习视频教程 自学资料

    模型定制化实战:基于DeepSeek的行业术语微调教程.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    5个提升DeepSeekAPI生成质量的调参技巧,开发者必看!.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    参数调优手册:temperature和top_p对输出结果的影响实验.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    auto_gptq-0.5.1.tar.gz

    auto_gptq-0.5.1.tar.gz

    贪心算法7日速成:LeetCode经典题型+华为机考真题.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    结构体 struct关键字用来定义结构体

    结构体 struct关键字用来定义结构体

Global site tag (gtag.js) - Google Analytics