事件拦截器是Dataset与被绑定对象的纽带,通过事件拦截器实现数据绑定
public interface DatasetInterceptor {
public boolean doBeforeIntercept(Dataset dataset, String action, Object[] params);
public void onIntercept(Dataset dataset, String action, Object[] params);
public void doAfterIntercept(Dataset dataset, String action, Object[] params, int resultCode);
}
一个简单的数据绑定TextField,当Dataset发生ACTION_MOVE(当前记录行变动)事件时动态修改绑定字段内容,如下:
public class DatasetText extends TextField implements DatasetFormField {
private Dataset dataset;
private DatasetField field;
private DatasetInterceptor interceptor;
public DatasetText(Dataset dataset, DatasetField field) {
this.dataset = dataset;
this.field = field;
this.init();
this.bind();
}
public DatasetText(DatasetField field) {
this(null, field);
}
private void init() {
setFieldLabel(field.getTitle());
setName(field.getName());
setWidth(field.getEditWidth());
if(dataset != null) {
this.addListener(new TextFieldListenerAdapter(){
@Override
public void onBlur(Field field) {
dataset.set(field.getName(), DatasetText.this.getText());
}
@Override
public void onFocus(Field field) {
DatasetText.this.selectText();
}
});
}
}
@Override
public void bind() {
if(this.dataset == null) return;
if(this.interceptor == null)
this.interceptor = new DatasetInterceptorFormAdapter(Constants.ACTION_MOVE){
@Override
public void doAction(Dataset dataset, Object params) {
Record rec = dataset.getRecordAtCursor();
if(rec != null)
DatasetText.this.setValue(rec.getAsString(field.getName()));
}
};
this.dataset.addInterceptor(this.interceptor);
Record rec = dataset.getRecordAtCursor();
if(rec != null)
this.setValue(rec.getAsString(field.getName()));
}
@Override
public void unbind() {
if(this.dataset == null) return;
this.dataset.removeInterceptor(this.interceptor);
}
@Override
public Dataset getDataset() {
return this.dataset;
}
@Override
public DatasetField getField() {
return this.field;
}
}
分享到:
相关推荐
GWT Ext不仅提供了丰富的组件,还包含数据绑定、事件处理、动画效果等功能。学习如何利用GWT Ext的API创建动态和交互性强的用户界面,以及如何实现数据模型与视图之间的双向绑定。同时,你将接触到GWT Ext的布局管理...
GWText是一个基于Google Web Toolkit (GWT) 和EXT GWT (GXT) 框架的开源项目,用于构建富互联网应用程序(Rich Internet Applications, RIA)。这个“gwtext编写的小系统”是一个示例项目,旨在帮助初学者理解如何...
此外,文档还会涵盖组件的事件处理、样式设置、数据绑定等方面,使得开发者能够构建出功能强大且交互性良好的Web应用。 GWTEXTUX则进一步扩展了GWTEXT的功能,专注于提供更高级的用户界面组件和用户体验。例如,它...
EXT-GWT则是基于GWT的组件库,提供了丰富的用户界面元素,让开发者能够构建出具有桌面应用般体验的Web应用。 在提供的资源中,我们首先看到的是"EXT-GWT2.0.1+API+DOC.chm",这是一个离线版的EXT-GWT API文档。这个...
本文将深入探讨"EXT Grid数据绑定"这一主题,包括数据查找和如何将查找结果重新填充到Grid中。 EXT Grid的核心是其数据模型(Data Model)和视图(View)。数据模型负责存储和管理数据,而视图则负责渲染这些数据到...
4. **数据绑定和模型**:GWT Ext支持数据驱动的开发模式,文档会介绍如何创建和使用Models,以及如何将数据绑定到视图组件上。这通常涉及DataStore、Proxy和ModelKeyProvider等概念。 5. **事件处理**:事件处理是...
GWT-Ext是一个基于Google Web Toolkit (GWT)的JavaScript库,它提供了丰富的用户界面组件和强大的数据绑定机制,使得开发者能够构建出交互性强、视觉效果优秀的Web应用程序。本教程将深入探讨GWT-Ext的核心概念、...
2. **数据绑定**:Gwt-ext支持双向数据绑定,这意味着UI组件的状态可以直接与后端数据模型关联,任何一方的改变都会自动反映到另一方,简化了开发流程。 3. **事件处理**:学习如何注册事件监听器,处理用户交互,...
核心拦截器是Struts2框架的重要组成部分,它们允许开发者在动作执行前后插入自定义逻辑,以实现如日志、权限验证、数据校验等常见功能。下面将详细讲解Struts2的核心拦截器以及如何在项目中使用它们。 1. **Struts2...
5. **数据绑定**:gwt-ext支持数据绑定,可以使UI组件的状态与后台数据模型保持同步,减少手动更新UI的工作量。 6. **事件处理**:理解gwt-ext中的事件模型,包括监听器接口和事件分发机制,如何添加和处理用户交互...
7. **数据绑定**:Gwt-Ext的数据绑定机制,包括模型(Model)、视图(View)和控制器(Controller)的概念,以及如何实现数据的双向绑定。 在"中级篇"中,你将深入到以下内容: 1. **高级组件**:探索Gwt-Ext的...
《GWT-EXT2.0最佳实践教程》源代码打包下载资源主要涵盖了Google Web Toolkit (GWT) 和EXT-JS 2.0的结合使用,提供了丰富的实践案例和示例代码,旨在帮助开发者深入理解和应用这两项技术。GWT是一款强大的JavaScript...
拦截器的使用不仅限于上述基本操作,还可以与其他CXF组件结合,如绑定工厂、数据绑定、协议处理器等,以实现更复杂的需求。总的来说,理解并熟练运用CXF拦截器对于任何CXF开发者来说都是一项重要的技能。
2. **交互集成**:GWT和EXT JS可以通过共享数据和事件来协同工作,例如,GWT应用可以触发EXT JS的UI更新,反之亦然。 **GWT与STRUTS2结合** GWT和STRUTS2的整合主要涉及服务器端的通信和数据交换。 1. **GWT-RPC...
2. **数据绑定**:GWT-Ext支持双向数据绑定,使得UI组件的状态与后台数据模型可以自动保持同步,减少了手动处理数据更新的工作。 3. **布局管理**:库中的组件可以使用各种布局管理器(如绝对布局、流式布局、网格...
数据绑定是Windows Presentation Foundation(WPF)框架中的核心特性,它简化了用户界面(UI)与应用程序业务逻辑之间的数据交互。在WPF中,数据绑定允许开发者将UI元素的属性与数据源的属性关联起来,确保UI的更新...
GWT-Ext 是一个基于 Google Web Toolkit (GWT) 和 ExtJS 的开源控件库,专为构建富互联网应用程序(RIA)提供强大的功能。它允许开发者使用纯 Java 语言进行界面开发,极大地提高了开发效率。GWT-Ext 的核心特点在于它...
总结,ExtJS的数据绑定和修改功能为开发人员提供了一种高效且灵活的方式,以创建高度动态的Web应用程序。通过理解并熟练运用模型、存储、数据绑定和数据修改的机制,开发者可以轻松地构建出与后台数据紧密集成的前端...
Spring MVC的拦截器基于AOP(面向切面编程)原理,它们通过实现`HandlerInterceptor`接口或继承`HandlerInterceptorAdapter`抽象类来定义。拦截器链的概念使得多个拦截器可以按照特定顺序执行,每个拦截器都可以决定...
通过这个例子,初学者可以学习如何创建数据上下文,如何将控件(如TextBlock或TextBox)绑定到依赖属性,以及如何利用数据模板和转换器来实现更复杂的界面展示。同时,了解并实践双向绑定和验证规则的设置,对于深入...