[Apache Click快速开发]Click的组件(二) Menu、PickList和自定义TextArea
来源:互联网 发布:php base64解码函数 编辑:程序博客网 时间:2024/05/20 10:54
Menu组件:
Apache Click的菜单组件是可配置的,如果要使用它,必须提供一个提供菜单结构的xml文件,可以任意命名,这里就叫menu.xml好了。
首先定义层级结构(第二级menu节点表示一个菜单项)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <menu> <menu label="Home" path="#" imageSrc="/imgs/home.png" title="Home Page"><menu label="Open" path="#" title="Open Files" target="_blank"/><menu label="Setting" path="#" title="Settings" target="_blank"/><menu label="Exit" path="#" title="Exit"/> </menu> <menu label="Demos" path="#" imageSrc="/imgs/controls.png" title="Click Demos"><menu label="HelloPage" path="helloPage.htm" title="Hello Page" target="_blank"/><menu label="HelloControls1" path="helloControls.htm" title="Hello Controls" target="_blank"/><menu label="HelloControls2" path="helloControls2.htm" title="Hello Controls" target="_blank"/> </menu> </menu>
定义了菜单层级结构后,可以将web工程的任意位置,前提是对于你来说比较方便,这里就放在WEB-INF/目录(Apache Click默认的位置为classpath或者WEB-INF/)
之后就可以在Page中初始化菜单,我尝试在构造函数中将它初始化并添加到model中,但发现这样不起作用。官方的做法是重载onInit方法,并在这里将菜单初始化。
@Override public void onInit() {super.onInit();MenuFactory mf = new MenuFactory();//testMenu = mf.getRootMenu();testMenu = mf.getRootMenu("myMenu", "/WEB-INF/menu.xml");addControl(testMenu); }
这样的话,在htm中使用$myMenu可以将菜单显示出来。
但如果不在head标签中加入$headElements,你可能看到下面的样子
PickList组件:
PickList的实现为什么节省了大量的书写javascript代码的时间,也使得开发者摆脱了在html页面中麻烦地初始化选项值的烦恼。
private PickList pickList = new PickList("myPickList", "想去的地方");
pickList.setHeaderLabel("", "");pickList.add(new Option("001", "北京故宫"));pickList.add(new Option("002", "北京长城"));pickList.add(new Option("003", "北京天安门"));pickList.add(new Option("004", "四川九寨沟"));pickList.add(new Option("005", "西藏布达拉宫"));pickList.add(new Option("006", "西藏雪域天山"));pickList.add(new Option("007", "其他"));pickList.addSelectedValue("001");form.add(pickList);
自定义TextArea:
Click中,可以继承TextArea类来自定义文本区域,可以整合著名的fckeditor、yui editor等等,非常之方便,充分体现了Click组件设计的灵活性。
public class FCKTextArea extends TextArea {@Overridepublic List<Element> getHeadElements() {// TODO Auto-generated method stubheadElements = super.getHeadElements();if(headElements!=null){headElements.add(new JsImport("/js/ckeditor/ckeditor.js"));}return headElements;}}
我的ckeditor文件包是位于工程webroot/js下面。有了自定义文本域后,在Page中的使用变得简单
private FCKTextArea remark;
remark = new FCKTextArea();remark.setCols(70);remark.setRows(11);remark.setAttribute("class", "ckeditor");remark.setName("remark");remark.setLabel("留言");form.add(remark);
最后,在htm页面中讲表单显示以后漂亮的fckeditor就有了。。这得益于Click中AbstractControl提供的getHeadElements抽象方法,有了它,开发者就可以导入样式表和Javascript脚本文件,从而实现自定义的组件。That's cool
- [Apache Click快速开发]Click的组件(二) Menu、PickList和自定义TextArea
- [Apache Click快速开发]Click的组件(一)
- [Apache Click快速开发]Click的多彩table组件
- [Apache Click快速开发]基于Jquery Dialog的Click Dialog组件
- [Apache Click快速开发]Panel和Tree
- [Apache Click快速开发]为组件添加Ajax行为
- [Apache Click快速开发]整合Hibernate3.3和Spring3.0
- [Apache Click快速开发]Page生命周期
- [Apache Click快速开发]开发环境配置初试
- 解决flex click 和 double click的问题
- apache Click框架入门
- Apache Click 介绍
- apache Click框架入门
- Apache Click 这个项目
- Apache Click 框架入门
- eclipse + TomCat + Click Framework 的 Web 开发
- $(select).click(function(){})和$(select).click(addComt())
- Android:Touch和Click的区别 编辑
- 如何获得客户端ipad的唯一标识符(UDID)
- GDB技巧:使用checkpoint解决难以复现的Bug
- SQL控制流程函数CASE...
- Fortran 复数型變量(COMPLEX)的類型
- 复习 C 指针的基础概念
- [Apache Click快速开发]Click的组件(二) Menu、PickList和自定义TextArea
- 诗经名句(供大家看代码疲劳的时候消遣下)
- spring定时器的使用(spring2.5.6)
- 2011-10-09 总结
- 替换系统弹出的菜单
- C 编程获取正在运行的程序进程号
- MySQL命令操作(Linux平台)
- 浅析C++中内存分配的方式
- 论坛中版主给帖子设置高亮显