论坛首页 Java企业应用论坛

[2007-01-21 18时发布]ecside 1.0rc1: 列表组件eXtremeComponents全面增强版

浏览 157542 次
该帖已经被评为精华帖
作者 正文
   发表时间:2006-12-22  


ecside介绍:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ecside是一个开源的列表组件
他源自著名开源列表组件 eXtremeComponents (http://www.extremecomponents.org),
但现在已经脱离eXtremeComponents,独立发展(仍有大量代码来自 eXtremeComponents)。
做最实用易用的列表组件”是ecside最终的目标。

作者: fins ( name: Wei Zijun    email:fins@163.com   blog:http://fins.iteye.com )

在使用前,请阅读一下以下信息,以帮助您了解您要使用的将是一个多么不成熟的东西(但它会有成熟的一天,而且那天不会远 呵呵):
1 ecside不能和原始版本的 eXtremeComponents 同时使用,且不保证能与原先使用 eXtremeComponents 的系统兼容,请见谅。
2 目前只支持GBK编码的应用,请见谅。
3 目前只在IE6 和FireFox2 上进行过测试,不保证兼容其他(版本)浏览器,请见谅。
4 目前提供的样式风格巨丑无比,请见谅。
5 目前没有完备的文档和例子,请见谅。
6 代码没有注释,没有测试用例,请见谅。
7 没有很好的版本控制,没有构建脚本,请见谅。
8 拥有无数未知的bug,请见谅。


ecside发布地址:
http://fins.iteye.com/blog/40190

ecside发布地址:
http://fins.iteye.com/blog/40190
ecside圈子:
http://ecside.iteye.com/
ecside综合讨论专用帖
http://fins.iteye.com/blog/48723 


其他出色的列表组件(有些是收费的):
eXtremeComponents原始版 ( http://www.extremecomponents.org )
dhtmlXGrid ( http://scbr.com/docs/products/dhtmlxGrid/ )
displaytag ( http://displaytag.sourceforge.net )
nitobi grid ( http://www.nitobi.com/products/grid/ )
ActiveWidgets gird ( http://www.activewidgets.com/grid/ )
rico livegrid ( http://openrico.org/rico/livegrid.page )

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
主要增强的功能:
1 可设置工具条位置(上 下 或 不显示)
2 可设置工具条内容(显示哪些 不显示哪些)
3 可设置工具条上各个功能按钮的相对位置
4 增加了调整页大小的选择框,并可自定义选择框内的内容
5 增加了带有邻近页面的导航条
6 增加了可跳转到指定页面的跳转框
7 增加了当前选中行高亮
8 为ec:table 增加了 excludeParameters 和 includeParameters 属性,可以实现更快捷简便的“参数保留/不保留”功能
9 可添加自定义的html代码到工具条内 或其他位置
10 可手动调整列宽
11 增加了“列表内部滚动条”(实现列表头固定,列表体滚动的功能)
12 为ec:row和ec:column 添加更多的html事件支持,现支持:onmouserover onmouserout onclick ondbclick
13 为ec:table ec:row ec:column增加了自定义扩展属性功能
14 增加 ec:extendrow 标签,实现列表扩展行的功能
15 增加shadowRow(影子行)功能:每行下面可以再加一个子行 这个行里显示什么可以由大家自己定义
16 增加页面变量 ${TOTALROWCOUNT} 用来标示当前纪录在全部记录中的行数
17 增加了打印功能(尚不完善)
18 ec:column属性增加 ellipsis ,实现单元格内数据过长的时候 自动截短并加"..."的功能(ie only)
19 实现了跨列的列表头
20 统计栏的标题格可跨列
21 增加了若干种cell 和 headerCell,例如checkbox radio
22 取消了imagePath属性,样式相关的图片信息全部提入css内
23 重(第4声)用了js 和css ,很多功能用js来实现
24 支持了ajax翻页
25 支持预查询功能,在察看第n页的时候,把n+1页的数据也查询出来(隐藏着)备用,加快查看下一页的速度
26 将导出excel所使用的组件由poi切换成了 jxl
27 xls导出方式修改 原始的导出是导出的vo/map里的原始数值 现在是导出页面实际显示的内容
28 增加简捷导出方式 (通过ec:table的 xlsFileName pdfFileName csvFileName属性)
29 支持pdf中文导出
30 代码进行了大规模的重构
31 增加了很多ajax相关特性
32 实现了可编辑列表功能 以及cell的映射功能
... ...


更新日志:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
新增加的特性通常都在 demo.do.jsp这个例子里进行演示。

===============================
2007-01-21 15点
===============================
对于以下更新,demo.do.jsp进行了修改,大家看看例子可能会更好理解.

1) 实现了cell的映射功能(详见示例的性别 和 角色列),用法:
了一个简单的小标签 用来从map生成 select的option列表。
<ec:options tagattributes="附加的html属性" defaultkey="默认选中的option的value" items="MAP在context内的key"></ec:options>

xml 代码
  1. <ec:column mappingItem="用来映射的MAP在context内的key" mappingDefaultValue="当找不到映射值时要使用的默认值".../>  

例如,在示例中,角色的信息以 “标识--名称”的形式放到了一个 map内
在action中 把这个map放到了 request.setAttribute("USERROLE_MAP", CommonDictionary.USERROLE);内
在页面使用

xml 代码
  1. <ec:column property="USERROLE" title="角色" mappingItem="USERROLE_MAP" mappingDefaultValue="[错误的角色]"/>  


就会自动将名称显示出来。
2) 做

xml 代码
  1. <ec:options items="MAP在context内的key" defaultKey="默认选中的option的value" tagAttributes="附加的html属性"/>  


3) 对ec:extend标签做了扩充,增加了位置设置属性 location
top: form内列表主体前  ; bottom : form内列表主体后 
toolbar或不设置location属性  在toolbar的扩展位置.
4) 代码进行了一点点修改,对使用没有影响。

===============================
2007-01-20 9点   ECSIDE 1.0 RC1 发布啦
===============================
沉寂两天,但一直没有闲着,带来了大变化 索性来个 1.0 RC1 版 :) 。
1) 实现了灵活的可定制的“可编辑列表”功能 (详见help.txt 200行左右的描述 以及示例)
支持多种编辑方式(文本框 下拉框 将来还会支持更多),可自定义模版(使用自定义的文本框 下拉框),还提供了:
对可编辑列进行标识,对编辑过的cell进行标识(默认为改变单元格背景色),
使用ajax技术提交后台,提交成功的cell将清除编辑标识 等贴心设计。
2) 增加了 高亮显示选中行的功能,使用 ec:table属性: selectlightRow="true"
3) 去掉了 fullnavigation导航条,将其与navigation导航条合并
改为为ec:table增加属性 nearPageNum="数字" 用来设置导航条前后显示的邻近页数 等于0时 为不使用邻近页。
4) 为ec:table增加了 maxRowsExported="数字" 属性,用来限制导出大最大条数, 如果数据超过这个数目,则不执行导出操作。
5) 为之前增加的ec:table的pageSizeList属性 增加了特性
pageSizeList="max:200,10,15,30,50,100,all" 如果 10--100以及all中,某一项大过了max的200则 不在列表中显示。
也可以只使用pageSizeList="max:200" 此时将 使用默认设置,并进行max控制。
6) 解决了pdf中文编码问题,终于支持pdf导出了
7) 恢复了对sitemesh的支持,用法见原版ec文档(我没有亲自没有测试,因为我不会用sitemesh :( )。
8) Ajax翻页优化,同时增加了 ECSide.findAjaxZoneAtClien 属性,可设置 客户端 还是 服务端进行 html代码剪裁
默认推荐使用 服务器端。
9) 再次对js和java代码进行了较大规模的重构,清理了一些无用代码,添加了必要的协议信息。
10) 一些细节的修改(例如对滚轮的支持更自然,filterable="true"手动调节列宽功能屏蔽等)
还有对一些小bug的修正,但是由于变化较大,肯定还会带来一些新bug。
11) 整个示例的应用逐步发展为 ecside 的最佳实践,加入了hsqldb(hsqldb的使用参考了springside),全新的例子。
当然还不够好 会在以后的日子里继续完善。
12) 做了一个简单的logo :)。

顺便问一下:
我使用了 springside 的 HsqlListener (做了些修改 但绝对不涉及到核心),为什么在每次重启应用的时候总是包下面的异常呢??
Exception in thread "HSQLDB Timer @15d63da" java.lang.NullPointerException
 at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
 at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

===============================
2007-01-16 14点
===============================
1) 当使用“列表内部滚动条”时,可以使用百分比来设置列表的宽度了。
(但还是建议您使用像素(px)作为列表和列的宽度单位,因为百分还有一些小bug)
还有个建议 不管是使用什么样的宽度,建议都要使用一个“自动宽度”的column,
就是说不要给所有的ec:column都指定width,给其中一个点“自由”,这样很多已知的关于列宽调整的问题都可以解决。
2) 对eccn.js进行了大量的修改,提供了更好(但不完美)的IE和FF兼容(一致)性(这个工作差点把我累吐血).
ff和ie 在取得对象坐标和宽度的算法不同 太郁闷了
3) 修正了一些bug


===============================
2007-01-12 以及之前的一些更新日志
===============================
1) 为“列表内部滚动条”增加了对鼠标滚轮的支持(只在ie6和ff2下测试过,其他版本没有测试)
2) 将部分“列表内部滚动条”相关的代码从java中提出,改用js实现.
3) 对js文件做了一些调整。
4) 修正了一些小bug。

===============================
1) 修正了一个“列表内部滚动条”的bug
该bug表现为在 IE里 有些windows的主题下,纵向滚动条不可用。FT!!!!!
2) eccn.js做了一点小小的改动,为将来做过编码支持打下了一点点基础.

===============================
1) 修正了改变页面大小时“列表内部滚动条”错乱的bug
2) 重构了“列表内部滚动条”相关的js和java代码

===============================
1) 修正了使用ajax翻页时“列表内部滚动条”错乱的bug
2) 增加了当列表内容的实际宽度和高度小于设置的宽度和高度的时候,
   自动调整区域大小,同时自动隐藏滚动条(只隐藏横向的)的功能。

===============================
增加了“固定列表头,滚动列表体”(“列表内部滚动条”)的功能
这个功能实现起来比我一开始想像的复杂
不是简单的使用一个 div overflow:scroll就可以搞定的
虽然功能是支持了 但是代码肯定还有很多bug或者是可以改进的地方
欢迎大家积极的提出宝贵的意见 谢谢了

使用方法:
ec:table标签内 增加
listHeight="数字" 属性 (指定列表体的高度)
同时把要指定 width="数字" 不能省略 同时要使用绝对大小 而不要使用百分比

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

部分增强功能简介:
(详见help.txt)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我们有自己的圈子了
以后大家有 ecside相关的问题 可以去圈子里
我的 blog里问( http://fins.iteye.com/blog/48723 ) 
别在发消息了 因为发消息别人看不到 而有些问题可能别人也遇到过 或者是我回答的不对 别人也可以帮忙
对吧?
谢谢大家

ecside发布地址:
http://fins.iteye.com/blog/40190
ecside圈子:
http://ecside.iteye.com/
ecside综合讨论专用帖
http://fins.iteye.com/blog/48723
 

 

我申请了javascud项目 而且也申请了svn 但是不会用啊  :'( 谁来教教我啊

 

 依赖包已经上传到 圈子的共享空间里了

共3个 请解压缩后放到 WEB-INF/lib下 如果不导出pdf可以不下载pdf相关的包 和 字体文件 这两个比较大  

  • ecside_1.0_rc1_20070121b.zip (697.6 KB)
  • 描述: 完整版,但不包括所依赖的WEB-INF/lib下的文件.依赖文件可以去圈子里下载, 也可以去javaeye ftp下载,也可以按照WEB-INF/lib下的filelist.txt文件所列,自行下载.
  • 下载次数: 3289
   发表时间:2006-12-22  
ecside的其他东东

  • 描述: 我做的一个简易的logo,顺便征集更好的设计 谢谢了
  • 大小: 7.8 KB
  • 描述: 1.0 rc1版本的demo的截图 :)
  • 大小: 98.6 KB
0 请登录后投票
   发表时间:2006-12-22  
好东西啊,fins兄弟一直在东搞搞西搞搞的一个小小精品啊...
强烈支持一下.
0 请登录后投票
   发表时间:2006-12-22  
喜欢,强烈喜欢这个。。下载研究ing...
0 请登录后投票
   发表时间:2006-12-22  
非常喜欢这个东西,下载研究中。
我们项目中现在就在用,里面好多新功能解决了我们的燃眉之急。
0 请登录后投票
   发表时间:2006-12-22  
做的目的就是要解决项目里的实际问题
大家有什么需求还可以提啊

谢谢大家了 呵呵
0 请登录后投票
   发表时间:2006-12-24  
有人试用了吗? 发现什么问题 或有什么意见和建议呀??
0 请登录后投票
   发表时间:2006-12-24  
投了精华,毕竟原创的好好东西.关注中...
提几点不足:
1、美观需要加强,个人觉得把银色加深一点,例如"姓名,称号"等标题栏;因为标题栏毕竟最好与正文的数据显示为不一样的颜色。
2、导出excel功能在ie中正常,opera中失常没有起作用,而在firefox中文件名会出现乱码
3、左下角的几个按钮设计感觉不好,有点别扭,需不需要调整一下位置呢
4、同样,最左上角的的一个勾选框在ie和opera正常,但firefox失效

问一个问题:左边的勾选有什么用的?

另外,我把楼主的项目装成eclipse3.2+myeclipse5平台上,相同ide的朋友可以直接导入发布,方便其使用。
0 请登录后投票
   发表时间:2006-12-25  
谢谢楼上邻居的建议

美工方面的问题我现在不能修改
因为美工不是我设计的 我做的这个东西同时应用到项目里 所以我就直接用我们项目的美工设计的图片和颜色了
目前没有时间去再另做一套风格 :'(

另外几个问题我一定想办法尽快弄好
还有就是 opera我从来没有用过 所以测试不了 :'(
到时候还要发上来让测试了

再次谢谢你  也谢谢大家
至于单选框的作用要看使用者怎么使用了
组件本身没有为他提供默认行为
0 请登录后投票
   发表时间:2006-12-25  
不错,再接再厉
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics