下面看看Controller的部分代码
/**
* Registers the event type.
*
* @param types the event types
*/
protected void registerEventTypes(EventType... types) {
if (supportedEvents == null) {
supportedEvents = new ArrayList<EventType>();
}
if (types != null) {
for (EventType type : types) {
if (!supportedEvents.contains(type)) {
supportedEvents.add(type);
}
}
}
}
/**
* Determines if the controller can handle the particular event. Default
* implementation checks against registered event types then queries all child
* controllers.
*
* @param event the event
* @return <code>true</code> if event can be handled, <code>false</code>
* otherwise
*/
public boolean canHandle(AppEvent event) {
if (supportedEvents != null && supportedEvents.contains(event.getType())) return true;
if (children != null) {
for (Controller c : children) {
if (c.canHandle(event)) return true;
}
}
return false;
}
这里有贴了2个方法,一个是registerEventTypes(),表示注册事件。
如果我们要对初始化事件INIT进行处理,我们要先注册这个事件registerEventTypes(INIT);
那么当这个事件发生时,Controller就会接收到,可以进行相应的处理.
canHandle这个方法就是判断能否处理的,当你注册INIT事件后,他会把这个INIT对象放进supportedEvents 里面,canHandle里面迭代这个集合,如果存在,返回true表示需要处理,如果不存在,返回false表示不需要处理。
回头再看之前的Dispatcher类里面的dispatch方法,他会迭代controllers这个集合,调用它们的canHandler()方法,如果需要处理,则调用controller的handleEvent方法来处理。
为了把我们自己的controller添加到Dispathcer的controllers里面,我们还需要调用以下方法:
/**
* Adds a controller.
*
* @param controller the controller to be added
*/
public void addController(Controller controller) {
if (!controllers.contains(controller)) {
controllers.add(controller);
}
}
Dispathcher.get().addController(controller);
分享到:
相关推荐
博客链接指向的可能是对如何在GXT项目中实现MVC模式的详细教程或讨论,但具体内容由于没有提供,我们无法深入探讨。通常,这样的教程会涵盖以下方面: - 如何组织GXT组件以符合MVC原则。 - 如何创建和使用事件监听器...
GXT提供了丰富的UI组件和强大的数据绑定机制,而RPC(Remote Procedure Call)和MVC(Model-View-Controller)模式是GXT中常用的设计模式和技术,用于处理客户端与服务器之间的通信以及应用的结构组织。本文将深入...
2. 在GWT项目中配置和引用GXT相关类库。 3. 将GXT自带的资源目录复制到项目中。 ### 搭建ExtGWT开发环境 开发环境的搭建是使用ExtGWT的第一步,这主要包括安装Eclipse IDE、下载GXT SDK以及安装GWT开发所需的...
在GXT MVC中,模型类通过事件机制通知视图层数据的变更,确保数据的一致性。 2. **View(视图)**:视图层负责展示数据,并且通常与用户界面组件(如表格、按钮等)关联。在GXT中,视图由GXT组件构成,这些组件可以...
- **配置Eclipse**:在Eclipse中,通过`Window > Preferences`进入设置,选择`Java > Build Path > User Libraries`,创建一个新的用户库,命名为`GXT_2_2_5`,并添加适合当前GWT版本的GXT jar包。 - **创建GWT项目*...
5. **MVC模式**:Spring MVC是Spring框架的一部分,可以用来构建后端控制器,与GXT或GWT的前端视图组件协同工作,实现模型-视图-控制器的设计模式。 在实际项目中,开发者通常会创建一个Spring Boot应用,配置好GXT...
1. **组件库**:GXT提供了大量的UI组件,如表格(Grid)、树形视图(Tree)、菜单(Menu)、对话框(Dialog)等,这些组件在设计上遵循了MVC模式,易于定制和扩展。 2. **数据绑定**:GXT支持双向数据绑定,使得...
### MVC架构在JSF中的体现 JSF采用MVC架构,其中组件是其核心部分。例如,`<t:dataTable>`组件用于显示数据列表,通过`rowOnClick`属性可以定义行点击时的事件处理函数,`<h:column>`则用于定义列的布局和内容。...
GXT库允许开发者使用MVC模式进行开发,提供了大量的UI控件,如表格、网格、图表等,同时支持数据绑定和自动同步。 描述中提到 "org.liveSense.fragment.com.sun.image.codec.jpeg.zip,这个包扩展了系统包导出",这...
源码部分可以帮助读者理解如何在实际项目中应用Spring MVC和GXT,而工具可能包括构建脚本、IDE配置文件等,帮助开发者快速搭建环境。 在文件名称列表中,我们看到"springmvc",这可能是该项目的核心模块,包含...
- **GXT的MVC模式**:GXT也采用了MVC设计,但它是客户端的MVC,用于处理用户界面。 - **数据绑定**:通过`ValueModel`和`DataStore`,GXT实现了服务器端数据与客户端UI组件的双向绑定。 - **RESTful服务**:...
ExtGWT 提供了类似于桌面开环境的扩展组件包,GWT 的程序员可以轻松的使用他们就像 使用 GWT 组件一样。除此之外,ExtGWT 还具有强大的本地操作和远程调用的特性,同时 满足开发企业级应用程序的 MVC 架构需求
4. **MVC模式**:GWT和GXT通常遵循Model-View-Controller设计模式,理解模型如何存储和管理数据,视图如何展示数据,以及控制器如何处理用户交互。 5. **API的使用**:在代码中查找GWT和GXT的API用法,例如数据绑定...
2. **Bean容器**:Spring容器管理着应用中的对象(称为bean),负责创建、配置、组装bean,并提供生命周期管理。 3. **AOP(面向切面编程)**:Spring支持切面编程,可以方便地实现日志记录、事务管理等横切关注点...
结合Spring框架,可以实现MVC架构,简化业务逻辑和持久层的集成,提供更好的企业级应用支持。 综上所述,文章可能会讨论以下知识点: 1. GWT RPC的工作原理,包括HTTP请求、JSON序列化和异步回调。 2. 如何定义和...
6. **异步通信(GWT RPC)**:GWT提供了Remote Procedure Call (RPC)机制,使得客户端和服务器端可以进行高效的异步数据交换,这是GWT实现MVC模式的关键部分。 **进阶篇:深入GWT技术** 1. **模块化**:了解GWT模块...
在提供的压缩包中,"extJAR"可能包含了EXT库的Java版本,这可能是EXT-JavaServerFaces(EXTJSF)或者EXT-GWT(GXT)的一部分。EXTJSF是EXT库与JavaServer Faces(JSF)框架的集成,使得开发者可以在JSF应用中使用EXT...