qooxdoo的事件处理机制相当简洁且不失灵活,qx.core.Target定义了如下3个常用的事件处理方法:
1. addEventListener
最简单的写法是
classInstance.addEventListener("eventName", functionPointer);
function functionPointer() {...};
当然你也可以用inline function
classInstance.addEventListener("eventName", functionPointer() {});
比如,偶们有一个button,希望在点击它的时候能够隐藏,那么用事件处理机制就可以这样来写:
var btnHideMe = new qx.ui.form.Button("Hide Me", "icon/16/ok.png");
btnFinish.addEventListener(qx.constant.Event.EXECUTE, function(){
this.hide();
});
代码简单、好用、而且还充满亲切感。
如果你需要传递不同的context object,还可以这样调用:
classInstance.addEventListener("eventName", functionPointer() {}, contextObject);
2. removeEventListener
//TODO...
3. createDispatchEvent
//TODO..
举一个实际的Wizard Window来看一下qooxdoo的事件处理机制在构建复杂Widget时候的优势,先上图片:
这个Wizard Window继承了qx.ui.window.Window,然后加入了几个button,并且在用户点击next button的时候,分发了一个DataEvent:
qx.OO.defineClass("com.javaeye.qooxdoo.WizardWindow", qx.ui.window.Window,
function(vCaption, vIcon, vWindowManager)
{
qx.ui.window.Window.call(this, vCaption, vIcon, vWindowManager);
var btnNext = this._btnNext = new qx.ui.form.Button("Next", "icon/16/forward.png");
btnNext.addEventListener(qx.constant.Event.EXECUTE, function() {
this.createDispatchDataEvent(qx.constant.Event.DIALOGNEXT, this.getSelectedIndex());
if(this.getCheckNext()){
this.next();
}
}, this);
var btnBack = this._btnBack = new qx.ui.form.Button("Back", "icon/16/back.png");
//...
});
任何注册了qx.constant.Event.DIALOGNEXT事件的Listener Function就可以拿到这个事件用来做校验或者其他的工作,在下面代码里面,就是用来校验3个栏位是否都已经填写了值:
var w = new com.javaeye.qooxdoo.WizardWindow("Create New Account", "icon/16/editor.png");
w.addEventListener(qx.constant.Event.DIALOGNEXT, function(e) {
switch(e.getData()){
case 0:
this.setCheckNext(true);
if(!txtAccountName.getValue()) {
txtAccountName.focus();
this.setCheckNext(false);
}
break;
case 1:
this.setCheckNext(true);
if(!txtInitialDate.getValue()) {
txtInitialDate.focus();
this.setCheckNext(false);
break;
}
if(!txtInitialAmount.getValue()) {
txtInitialAmount.focus();
this.setCheckNext(false);
break;
}
if(!txtCurrency.getValue()) {
txtCurrency.focus();
this.setCheckNext(false);
break;
}
break;
}
});
分享到:
相关推荐
qooxdoo是一个使用JavaScript编写的开源应用程序框架,用于开发富互联网应用(RIA)。它包含了一整套用于构建跨浏览器应用的工具和组件,从底层的类系统到用户界面组件,例如表格、列表、窗口、按钮、弹出窗口等。...
**Qooxdoo 4.1:面向对象的JavaScript富客户端开发框架** Qooxdoo是一个强大且功能丰富的JavaScript框架,特别设计用于构建富互联网应用程序(RIA)。它以面向对象的编程模型为核心,为开发者提供了丰富的工具和库...
**前端项目-qooxdoo.zip** 是一个包含前端开发框架qooxdoo的资源压缩包。**qooxdoo** 是一个开源的、跨平台的JavaScript框架,它为构建复杂且交互性强的Web应用程序提供了全面的工具链。这个框架的设计理念是面向...
**qooxdoo SDK 1.0:一个强大的开源AJAX框架** qooxdoo是一个功能丰富的JavaScript开发框架,特别适合构建复杂的、跨平台的Web应用程序。它的SDK 1.0版本是该框架的重要里程碑,提供了全面的工具集和资源,帮助...
**Qooxdoo SDK:面向编码人员的JavaScript框架** Qooxdoo是一个强大的前端开源库,专门设计用于构建复杂的、跨平台的Web应用程序。它的全称为"Qooxdoo Software Development Kit",提供了完整的工具链,帮助开发者...
**qooxdoo框架详解与应用** qooxdoo是一个强大的开源JavaScript框架,它为开发者提供了构建跨浏览器、跨平台的富互联网应用程序(RIA)的能力。在【标题】"qooxdoo-qooxdoo-release_2_0_1"中,我们可以看到这是...
Qooxdoo JavaScript框架qooxdoo是一个通用JavaScript框架,使您可以为各种平台创建应用程序。 通过其面向对象的编程模型,您可以构建丰富的交互式应用程序(RIA),用于移动设备的类似于本机的应用程序,轻量级的...
qooxdoo是一个全面和创新的AJAX应用程序框架。利用面向对象的JavaScript允许开发令人印象深刻的跨浏览器的应用。没有HTML,CSS知识,也不是必要的。它包括一个独立于平台的开发工具链,一个最先进的图形用户界面工具...
**qooxdoo:一个通用JavaScript框架** qooxdoo是一个强大的开源JavaScript框架,专为构建跨平台的应用程序而设计。这个框架的核心理念是提供一套完整的解决方案,让开发者能够高效地开发出高质量、功能丰富的Web...
标题中的“新将Delphi的Form窗口转换为Qooxdoo窗体”指的是一个技术转换过程,涉及到两个不同的开发环境和框架:Delphi和Qooxdoo。Delphi是一款基于Object Pascal语言的集成开发环境(IDE),常用于构建桌面应用程序...
Qooxdoo是一个开源的JavaScript框架,用于构建富互联网应用程序(RIA)。它的1.3版本SDK是一个开发工具包,包含了创建、编译和运行Qooxdoo应用所需的所有组件和工具。下面将详细介绍Qooxdoo 1.3 SDK中的核心知识点。...
qooxdoo开发框架的界面可视化设计器
Qooxdoo编译器和命令行界面 Qooxdoo-Compiler是Qooxdoo( )应用程序的新编译器和命令行界面,使用100%Node.JS Javascript编写,它在标准python生成器上进行了以下关键改进: 包括Babel,用于将ES6添加到所有...
**QXGUIDesigner(20160616)**是专为Web前端开发者设计的一款基于**qooxdoo**框架的GUI(图形用户界面)设计器。此工具旨在简化和加速开发过程,通过可视化的方式来构建和设计网页应用的用户界面。在2016年6月16日的...
Spring MVC和Qooxdoo是两个在Web开发领域中广泛使用的框架,它们分别专注于后端和前端技术。本文将深入探讨这两个技术,并结合文件名称"springmvc-qooxdoo-master"来推测这是一个整合了Spring MVC与Qooxdoo的项目...
qooxdoo是一个全面和创新的AJAX应用程序框架。利用面向对象的JavaScript允许开发令人印象深刻的跨浏览器的应用。没有HTML,CSS知识,也不是必要的。它包括一个独立于平台的开发工具链,一个最先进的图形用户界面工具...
在线版本(qx名称空间) 为您自己的代码添加API查看器 $ qx pkg update$ qx pkg install qooxdoo/qxl.apiviewer$ qx serve -S然后打开 。 您将看到现在列出了一个新的应用程序“ API Viewer”,您可以单击该链接来...
qooxdoo命令行界面这个项目已经动弹了请注意,Qooxdoo命令行界面仍然运行良好,并且已经集成到项目中,因此在此存储库上不应做进一步的工作。 将不建议使用npm模块qx-cli ,从现在开始,您要做的所有事情是: $ npm ...
扩展开发工具,添加一个侧栏,显示与所选DOM元素相关联的Qooxdoo数据。 扩展开发人员工具,添加侧边栏,以显示与所选DOM元素关联的Qooxdoo数据。 在控制台中使用$ q与选定的小部件一起使用。 支持语言:English ...
qooxdoo-contrib是qooxdoo项目(http://qooxdoo.org)的组成部分。 用户可以在简洁的结构中灵活地开发,维护和促进贡献。 贡献可以轻松地集成到自定义qooxdoo应用程序中。 注意:SourceForge上的此存储库是旧版! 它...