Tag Archives: 开源

珠三角技术沙龙12月小沙龙预告

原文见:http://techparty.org/2010/12/10/opensource/ 曾经因为所写的某段代码的画龙点睛之妙而欣喜若狂? 多年的历练让你积累了无数的压箱宝而对其呵护备至? 是否,在每次擦拭它们之时总觉得有一股隐隐的冲动? 那么,来开源吧!让它们在其他人的指掌间重放光彩。 开源,固然是个大话题,但实践开源,并不困难:你不必有Plone这种史诗般的作品,不一定要写出rails这样的传世经典;为某开源项目commit一个很小的patch,自个分享一小段心水的代码,向朋友传播开源软件的使用心得时我们已经在实践开源了。 12月小沙龙,独乐乐不如众乐乐,这是一个让你实践开源的舞台。现在向大家征集Topic(总时间30分钟以内为宜)了,topic可以是介绍自己的开源作品(原创),也可以介绍自己喜欢的开源软件(推介)。 小沙龙将在12月19日(周日)下午举行,地点待定(红专厂或寻觅咖啡),接受报名人数为30名左右,由于本次沙龙场地稍大,不要求与会者必携带Topic,但还是强烈建议大家积极准备Topic,现场如果Topic数量多,将通过投票的方式对Topic进行取舍。 现有Topic: 赖勇浩 《python-message:面向消息编程的程序库》 (原创) Jeff 《autoforms:django的自定义表单组件》(原创) 更多的topic见报名表。现在还接受报名,有兴趣移步到这里。 让你们的Topic像洪水般涌向12月小沙龙吧。

Posted in 技术, 生活, 软件 | Tagged , , | Leave a comment

介绍ExtremeTable的下一代Jmesa

说到ExtremeTable(以下简称ET,呃,,,ET…..),可以说不知道的人甚少.不过估计用的也未必多罢了.今天,给大家介绍一个由ET的作者重新实现的一套关于Table的API.JMesa. 我是一个偶然的机会知道Jmesa,我在做一个数据展现系统的时候想寻找ET的帮忙,但发现ET己不再更新,作者把精力转移到了新的项目中,也就是这个 JMesa.这个项目的目的是为开发者提供更有效的表格展现的API,而不是简单的TagLib.无论从灵活性,易扩展性,易用性,均比ET上了一个层 次.最近Release的版本里面,并不包括TagLib.而在下一个版本(2.1.0)将会加入TagLib,目前TagLib己经可用,在SVN里已 有.只是等待下一个版本的发布,其间会有一些更新,不过会兼容目前的TagLib的. 假如我从API开始介绍JMesa,恐怕并不是个好的办法,像我以前的文章里面有介绍,结果反响不大.这次决定从TagLib入手,来给大家介绍一下Jmesa. 大家可以从附件里拿到一个Demo.注意Demo依赖JMesa以及其他Lib.在Lib文件夹下有详细说明. 现在来看看JMesa的使用: <jm:table id=”product” items=”products” caption=”product listing”> <jm:column property=”name” sortable=”true” filterable=”true”/> <jm:column property=”price” /> <jm:column property=”createdTime” /> <jm:column property=”id” title=”edit”> <a href=”viewProduct.action?id=<jm:property/>”><jm:property name=”name”/></a> </jm:column> </jm:table> 估计比较容易看得懂的代码吧. Jmesa 的检签规范当中只有三个Tag:Table,Row,Column.而当前的TagLib实现中只实现了Table和Column两个(Row是可选 的).另加一个Property的Tag.此阶段,Property的Tag是很有用的,其起到的作用与Webwork的PropertyTag相差无几, 用来获得对象的某个属性.之所以使用Property Tag是因为当前的TagLib有个限制就是暂时不支持如JSTL的${}这种写法.将来会支持,届时Property Tag也会继续获得兼容.Jeff比较倾向于使用迭代的方式实现Tag,那样可以支持${}这样的写法.不过作为TagLib的开始,问题不大.有时间再 重构一下TagLib,支持JSTL的写法. 好了,来说一说这些Tag的使用方法: Table: Attribute Description id 表格的ID(必须) items 对象或者Map的集合 (必须) caption 表格的标题 theme 表格的主题,自定义样式 exportTypes 使用逗号分割导出的类型,目前支持导出类型有CSV,Excel width … Continue reading

Posted in 技术 | Tagged , , | Leave a comment

正式加入Jmesa项目

昨天早上起床收到了Email.Jeff很喜欢我写的Tag,并且把源码加入了SubVersion,作为Jmesa的Tag的一个开始版本. 这段时间我提交了两个功能的代码(ExcelView和Tag).Jeff显得比较喜欢俺的代码,直夸简单清析.狂喜ing!固然自知自己对代码要求比较高,不过有牛人一赞,感觉是不一样..嘿嘿.他邀请我加入Jmesa的项目进行开发工作.我当即答应了,因为开时除了上班,回到家里大部分时间是在学习和写代码,一直找到地方使力气.如今能参与做开源项目也算是做一回正经事.记得在国内也曾短暂加入过Springside,仅贡献了几根牛毛.惭愧.惭愧. 接下来的工作要继续宣传Jmesa,作为ExtremeTable的下一代,的确是值得一试的.陆续会写些介绍性,入门性的文章 继续完善Jmesa Tag Lib.

Posted in 技术 | Tagged , | Leave a comment

Jmesa开始Taglib计划

Jmesa社区最近有个提交了一套TagLib的实现。使用方法是这样: <ensco:table id=”exampleTable” exportable=”true” numRows=”5″> <ensco:column displayName=”Property 1″ propertyName=”prop1″ cellEditor=”someEditor”/> <ensco:column displayName=”Property 2″ propertyName=”prop2″  filterable=”false” /> <ensco:column displayName=”Property 3″ propertyName=”prop3″ sortable=”false” filterable=”false” /> </ensco:table> Taglib作者说是Display Tag风格。不过个人很不爽的是,居然还需要开发者去实现cellEditor?并且不支持Column Tag里面嵌套内容的用法。很不实用。我跟Jeff沟通后,他也很赞成我的观点。于是我昨天花了几个小时写了一套新的Taglib。归功能Jmesa API的优雅及易用,TagLib很快就可以工作了。我实现有TagLib用法这样: <jm:table id=”product” items=”products” caption=”product listing” export=”csv,pdf” style=”jmesa” width=”100%”> <jm:column name=”id” title=”edit”> <a href=”viewProduct.action?id=<jm:property>”</jm:property>><jm:property name=”name”/>a> jm:column> <jm:column name=”price” sortable=”true” filterable=”true”/> <jm:column name=”createdTime” width=”20%”/> jm:table> 开发者只需要提供一个Collection,写JSPTag,不需要实现其他任何接口。 我给Jeff发了封Email: another jmesa taglibJeff相当感兴趣,马上制订了Jmesa Taglib的规范,让社区去实现TagLib。呵,Jeff的相法与我制订的Tag的出发点是相当的一致啊。是不是因为我也叫Jeff的原因?偶是(Jeff jie)。可以到这里看看偶的TLD文件与Jeff的说法 :) 这两天会继续抽时间,按照规范把原来的Tag作一下小的修改。再发给Jeff看看。争取成为官方实现版本 :P。 Jmesa相关文章: jmesa系列之一:什么是Jmesa jmesa系列(二)Jmesa源码的包结构解读 Jmesa系列(三)开始使用JMesa

Posted in 技术 | Tagged , | Leave a comment

代码被Jmesa使用了!

使用Jmesa有一段时间了。中文资料基本上为0。经过一段时间的摸索及使用。渐渐爱上这套API。 前一段时间因为项目需要,自己基于Jmesa实现了Excel文件的导出功能。并在前天将代码交给了Jeff。Jeff很高兴,马上将我的代码加入项目中,将会在下一个发布的版本中看到,不过现在在Subversion上已经可以看到。 偷偷的高兴一下。

Posted in 技术 | Tagged , | Leave a comment

Jmesa系列(三)开始使用JMesa

相关文章: jmesa系列之一:什么是Jmesa jmesa系列(二)Jmesa源码的包结构解读 这次目标很简单:实现服务器端分页列表功能。暂时不包括过滤、排序及Ajax。 诸如过滤、排序及Ajax功能会在过程中逐一加上去。 下面以一个简单的商品列表来说明JMesa的使用方法。 从JSP的代码可以看出.开发者不需要在页面上使用任何的JSP Tag来显示表格,只需要简单把products变量Print出来即可.而显示的逻辑基本上是放到Controller了.肯定有同学有疑问,这样的使 用方法远远不及使用JSP Tag方便啊!为什么要这样做? 这里的显示仅仅是做一个API的使用Demo,为了说明我们可以直接使用Jmesa的API,构造出只要你能想得到的形式的表格展现,而不限制于JSP Tag.你想封装成跟EC一样的Jsp Tag是很容易的事.那就是说,ExtreamTable只可以是JSP Tag.而Jmesa是可以提供Jsp Tag还有Jsp Tag以外的东西.在架构上,作者从EC到Jmesa的转变就是值得肯定的.对了,作者在Jmesa中引进了Groovy,目的我想就是可以让开发人员动态地决定表格的显示啦.效果跟JSP Tag一样,并且更方便. 说说我目前在做的一个报表数据显示应用,同一个页面,可以显示不同构的数据列表,支持过滤,排序等.如果使用JSP Tag是很难达到动态显示数据列的目的,而用Jmesa的API转而易举.. 本文的目的是让大家对Jmesa有个感性的认识.而他的各个元素,如Limit,CoreContext这些,将会在接下来的时间详细说明. 代码:Java代码仅有一实体类,一个Service,及一个Controller Product.java java 代码 public class Product { private static int index = 1; private int id; private String name; … Continue reading

Posted in 技术 | Tagged , , | Leave a comment

Jmesa系列(二)Jmesa源码的包结构解读

Jmesa源码的包结构大致分为四个包: org.jmesa.core Jmesa的核心包,所下面定义下最核心的接口CoreContext,CoreContext的作有容后再述,下面有四个子包: org.jmesa.core.filter 过滤器(按条件对纪录进行过滤) org.jmesa.core.sort 排序,该包提供纪录按指定列进行排序的功能 org.jmesa.core.message I18N资源文件实现,使用Java内置的ResourceBundle实现。较简单 org.jmesa.core.preference Jmesa选项,使用Java内置Properties实现。也较简单 org.jmesa.limit 该包提供对纪录进行过滤的功能,limit的原意为限制,这里表现为过滤。Jmesa提供接口让开发人员自定义存放Limit的地方。该接口就是位于该包 下面子包state下的State接口,用来保存当前用户查询选项或参数的状态,这些参数可能包括过滤条件(Filter),排序条件(Sort)以及分 页信息等。 org.jmesa.view 视图,亦即展现。该包下定义了展现表格的接口及提供了两种实现,CSV及HTML。展现的原理很简单,一个视图拥有一个被展现的组件(Component)和渲染器(Renderer)。使用渲染器来渲染组件。那么自然而然,View包下面又看到两个子包: org.jmesa.view.component 定义了表格需要的组件,即表格,行,列。 org.jmesa.view.renderer 定义表格所需要的一系列渲染器,如行渲染,列渲染,单元格渲染等 org.jmesa.web 为在Web环境中使用Jmesa提供的一系列便利的类。 这就是Jmesa源码的分布。个人觉得结构很清晰明白,代码看起来也不费力。代码是最有说服力的文档。有时候,看文档还比不上直接读源码。

Posted in 技术 | Tagged , , | Leave a comment

jmesa系列之一:什么是Jmesa

Jmesa是ExtremeTable的作者基于ExtremeTable并进行重写的新项目。ExtremeTable己停止更新。与 ExtremeTable相同的是,Jmesa同样是一个强大的Table组件。而与ExtremeTable根本不一样的是,ExtremeTable 是一套JspTaglib,而Jmesa则希望成为一套Table组件的Api,不仅仅可以输出到WEB页面上。 首先,我还没有正式使用过ExtremeTable,当然没有资格做任何评论。而我本身是一个能避免用Jsp tag就不用的人,我决定在自己的项目中使用Jmesa。看过其核心的代码,接口清晰并且简单,可扩展性是很不错的。也可以强烈地感觉到作者把作品从 Jsp Taglib到组件产品的转型的决心。 接下来,我将会一边学习Jmesa,一边在项目里面使用。过程中将会尝试写一些学习心得或者是文档翻译。 Google Jmesa,中文网页除了Ecside的作者Fins提过一下,基本上找不到其他资料。希望自己可以为Jmesa的中文文档贡献点力量。

Posted in 技术 | Tagged , , | Leave a comment