eXtremeComponents指南
Jeff Johnston
版本1.0.0
本文档允许在遵守以下两条原则的条件下被使用和传播: 1)不能凭借本文档索取任何费用 2)以任何方式(印刷物或电子版)使用和传播时本文档时,必须包含本版权申明
(更新中...)
--------------------------------------------------------------------------------
Table of Contents
定制FilterCell
1. 引言
1.1. 定制Droplist过滤器Cell示例
定制FilterRowsCallback
1. 引言
1.1. 定制FilterRowsCallback示例
Form指南
1. 引言
1.1. JSP
1.1.1. Form特性的技术说明
1.1.2. Checkbox
1.1.3. Custom Cell
1.1.4. JavaScript
1.2. Cell
1.3. Controller
1.3.1. 表标签动作Controller
1.3.2. Form动作Controller
1.3.3. 重新得到Checkbox的值
Html视图定制指南
1. 引言
1.1. View接口
1.2. Messages示例
拦截器使用指南
1. 引言
1.1. 拦截器列表
1.2. 行拦截器示例
Limit指南
1. 引言
1.1. JSP
1.2. Controller
1.3. Service
1.3.1. 取得总行数
1.3.2. 取得Collection
1.4. DAO
1.4.1. 定义Query字符串
1.4.2. Filter 和 Sort Query 字符串
1.4.3. Limit Query String
1.4.4. 取回总行数和Collection.
1.4.5. 默认的Sort顺序
Preferences 指南
1. 引言
1.1. Preferences表
1.2. 指定Preference别名
定制FilterCell
--------------------------------------------------------------------------------
1. 引言
列的filterCell属性控制过滤器如何显示,它和cell属性非常相像并且也是实现Cell接口。马上要定义的是默认的和droplist这两个过滤器cells。 默认的是一个输入框元素而droplist是一个下拉列表元素。当然,如果你需要进行一些定制你可以插接自己的实现。
最近,我被问到是否能够实现一个过滤器cell,显示已经通过别的过滤器过滤得到数据子集。答案当然是肯定的,而且这是我将在这里示范的。通常定制的 cell可以很容易被创建,这个示例将印证这点。在这个示例里last name列里显示的将是通过first name过滤后的子集。如果没有通过 first name过滤那么所有值都将被显示。
1.1. 定制Droplist过滤器Cell示例
通常你只需要为过滤器cell实现Cell接口。然而,因为我们要创建的过滤器cell是一个下拉列表,我们可以通过扩展 FilterDroplistCell来获得它已经提供的很多功能,FilterDroplistCell是发行包已经提供的cells之一。
我们需要覆盖FilterDroplistCell的唯一方法是getFilterDropList()。这是整个类的全部代码:
public class FilteredDroplistCell extends FilterDroplistCell {
private static Log logger = LogFactory.getLog(FilterDroplistCell.class);
protected List getFilterDropList(TableModel model, Column column) {
List droplist = new ArrayList();
String firstNameFilter = model.getLimit().getFilterSet().getValue("firstName");
Collection beans = model.getCollectionOfBeans();
for (Iterator iter = beans.iterator(); iter.hasNext();) {
Object bean = iter.next();
try {
String firstName = BeanUtils.getProperty(bean, "firstName");
if (StringUtils.isNotBlank(firstNameFilter) && !firstName.equals(firstNameFilter)) {
continue;
}
String lastName = BeanUtils.getProperty(bean, column.getProperty());
if ((lastName != null) && !droplist.contains(lastName)) {
droplist.add(lastName);
}
} catch (Exception e) {
logger.debug("Problems getting the droplist.", e);
}
}
Collections.sort(droplist);
return droplist;
}
}
如果你比较这个类和父类,你会发现它们只有微小的区别。
首先需要注意的是我们需要找出first name是否已经被过滤了。
String firstNameFilter = model.getLimit().getFilterSet().getValue("firstName");
然后我们需要判断当前bean的first name值是否和first name过滤器值相同。如果相同,将当前的last name值 添加到droplist中。
String firstName = BeanUtils.getProperty(bean, "firstName");
if (StringUtils.isNotBlank(firstNameFilter) && !firstName.equals(firstNameFilter)) {
continue;
}
如果last name将添加到droplist中,我们需要检查droplist中是否已经包含了这个值。如果没有,我们就把它添加到droplist中。
String lastName = BeanUtils.getProperty(bean, column.getProperty());
if ((lastName != null) && !droplist.contains(lastName)) {
droplist.add(lastName);
}
为了使用这个Cell你应该在Preferences中声明一个别名。 当然,你可以省略这步而在JSP中提供这个Cell实现类的全路径,但是使用Preferences更简洁。
column.filterCell.filteredDroplist=org.extremesite.cell.FilteredDroplistCell
在ColumnTag通过设置filterCell属性来使用FilteredDroplistCell。
如果不清楚Preferences和ColumnTag定义语法请参考Preferences指南。
<span style="COLOR: #4b4b4b; mso-ansi-language: EN; mso-ascii-font
分享到:
相关推荐
extremeComponents开发指南,快速掌握extremeComponents开发
eXtremeComponents控件指南
- **eXtremeComponents中文指南2.doc**: 进阶指南,涵盖更多高级特性和实战技巧。 - **eXtremeComponents中文指南3.doc**: 包含了EC组件的最新更新和最佳实践,适合已熟悉基础的开发者查阅。 通过深入学习和实践,...
4. `Docs` 文件夹:可能包含组件的API文档和用户指南,有助于理解和使用组件。 5. `Source` 文件夹:可能包含了组件的源代码,对开发者进行深入学习和自定义修改很有帮助。 6. `Licenses` 文件:可能包含组件的许可...
**eXtremeComponents详尽文档包** eXtremeComponents(简称EC)是一个功能强大的组件库,专门针对Java Swing应用程序设计。这个详尽的文档包是为初学者准备的,旨在帮助他们快速掌握EC组件的使用和开发技巧。通过一...
在"extremeComponents中文文档"中,您将找到关于如何配置和有效利用这些组件的详细指南。 1. **组件概述** extremeComponents 包含了多种组件,如表格、树形视图、面板、对话框、菜单、表单元素等。这些组件都...
通常,文档会包含API参考、用户指南、示例代码等,帮助开发者了解如何初始化和操作表格,设置样式,以及如何利用导出功能。通过阅读和学习这些文档,开发者可以快速上手并熟练掌握`ECTable`的各项功能。 "example...
**12.1 Limit指南** 指导如何限制表格数据的数量。 **12.2 创建Limit** 创建Limit对象以控制显示的数据量。 **12.3 Filter和Sort属性** 设置过滤和排序规则。 **12.4 设置页和行属性** 调整每页显示的行数和...
这个中文文档集是针对 Extreme Components 的详细指南,旨在帮助中国开发者更好地理解和使用这个工具包。 文档可能涵盖以下几个关键知识点: 1. **组件介绍**:首先会介绍 Extreme Components 中包含的各种组件,...
《eXtremeComponents帮助手册》是一份专为开发者准备的详尽指南,它涵盖了使用eXtremeComponents这一组件库的各种技术细节和实践方法。eXtremeComponents是一款广泛应用于软件开发,尤其是Windows Forms和.NET ...
这个中文文档包含了关于 ExtremeComponents 的详细使用指南和参考资料,对于学习和掌握这款工具非常有帮助。 文档可能包含以下几个主要部分: 1. **组件介绍**:介绍 ExtremeComponents 中包含的各种组件,如表格...
#### 四、使用指南 ##### 4.1 快速入门 - **创建数据模型**:定义要展示的数据结构。 - **配置eXtremeTable**:在JSP页面中使用`<ec:table>`标签配置表格。 - **展示数据**:通过指定数据源和列定义来展示数据。 - *...
2. 文档:可能包含README文件,提供安装和使用指南,或者API文档,详细解释了每个组件的用法和功能。 3. 示例或测试代码:帮助开发者理解和学习如何使用这些组件。 4. 构建脚本:如Ant或Maven的build.xml文件,用于...
其次,"CN"可能表示"Chinese",暗示压缩包中可能有一个中文版的用户指南、API文档或者问题解决方案,这对于中文开发者来说非常有用,他们可以直接阅读中文资料来理解和解决使用过程中遇到的问题。 综上所述,...
##### 12.1 Limit指南 Limit部分讲解了如何限制表格显示的数据量。 - **创建Limit**:介绍了如何创建Limit对象。 - **Filter和Sort属性**:解释了如何使用Limit对象进行过滤和排序。 - **设置页和行属性**:介绍了...
### eXtremeTable使用指南:深入理解与配置 #### 引言 eXtremeTable作为eXtremeComponents系列中的核心组件之一,专为高级数据展示而设计,尤其适用于表格形式的数据呈现。该开源项目由Jeff Johnston领导的ECCN...
此外,它还提供了详细的部署指南,帮助用户快速搭建运行环境,无论是本地部署还是云平台部署,都能得到有效的技术支持。 ### 结论 eXtremeComponents作为一款先进的组件化解决方案,不仅简化了软件开发流程,提高...
这个压缩包“eXtremeTable的使用方法.rar”显然包含了关于如何有效利用eXtremeTable的相关指南,特别是通过包含的CHM文件“2008821161857.chm”,我们可以期待找到详细的文档和教程。 eXtremeTable的主要特点包括:...
《eXtremeTable参考文档》是针对eXtremeComponents中的一款核心组件——eXtremeTable的详细指南。eXtremeComponents是一个开源项目,它为JavaServer Pages (JSP) 开发者提供了丰富的定制标签库,使得在Web应用开发中...
- **实践操作指南**:书中不仅包含了理论知识的讲解,还提供了详细的实践操作步骤,帮助读者更好地理解和掌握ECSide组件的应用技巧。 #### 七、进阶学习建议 - **深入研究**:建议进一步研究ECSide组件的源码,了解...