BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Glimmer—使用JRuby和SWT开发Eclipse RCP应用

| 作者 Werner Schuster 关注 6 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2008年2月27日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

JRuby可以使用Java的GUI库,因而诞生了很多访问JRuby GUI APIs的方式Glimmer就是其中一个使用了SWT工具集的后起之秀。

我们采访了Glimmer的创建者Andy Maleh,以此来了解该项目及其未来发展趋势。Andy这样论述Glimmer背后的设计原则说:

Glimmer起初的目标是通过一个健壮的平台、独立的UI技术来简化使用Ruby开发桌面应用的过程。Eclipse SWT正好符合上述要求,因此在对Ruby的JRuby实现过程中它得到了重用。

Glimmer的API设计遵循以下原则:

  • 简明而不重复
  • 以最小的代价去完成任务
  • 规则优于配置
  • 对SWT开发者友好

此外,API的设计充分利用了Ruby的每个语言技术优势来简化桌面应用开发。构建式语法就是上述技术之一,开发者利用该技术构建桌面应用的界面就像使用HTML来构建web界面一样。这是通过编写与界面相匹配的代码来实现的。

然而,Glimmer的目标超出了这个范畴。例如,Glimmer拥有内建的数据绑定支持以及可定制的默认设置。

Glimmer不仅在语法上求简,在架构上也是。它很容易扩展,而且无须开发者对要增加的关键字硬编码。这实际上也是为什么Glimmer能够支持第三方小部件的原因。

JFace是构建在基本的SWT部件之上的一套组件,Glimmer也一样:

Glimmer现在与JFace协同工作。事实上,只要有构造方法,它就可以支持任何SWT/JFace组件的定制。

Glimmer还可以用来构建如视图和编辑器这样的RCP UI组件。在我刚着手开发Glimmer的数据绑定支持时,我确实曾考虑过重用JFace的数据绑定框架。然而,最新的API需要调用静态类型的方法,这与Ruby的动态特性背道而驰,因此在Ruby中从头开始开发数据绑定支持可能会更简单。

查看Glimmer的数据绑定方式 来了解更多。

GUI库非常重要的一个方面是组件布局,Glimmer当然也没有忽视这一点:

Glimmer对组合部件如Shell,Composite和Group有非常棒的默认布局支持。例如在声明一个Composite时,常用的GridLayout就会作为其默认布局。当然也可以根据需要改变该默认的布局。

当被问及Glimmer的现有特性及未来计划时,Andy说:

Glimmer现在支持:
  • 以合适的默认值对SWT和JFace组件进行渲染,这包括Shell、Composite、Group、Text、Button、Spinner以及Label
  • Text、Spinner、Check-box Button、Radio Button和Table的数据绑定
  • 对于新的关键字通过编写命令处理器来扩充语法的能力

在不久的将来,Glimmer将对其他部件提供数据绑定支持,例如:Tree、Combo和List,同时还会对SWT和JFace中其他的部件提供默认值。

未来计划包括:

  • 探索简化RCP开发的方案
  • 当SWT提供对Ajax的支持时,增加拥有Ajax组件的Rails支持

Glimmer被提议将其作为Eclipse项目。Andy解释了背后的原因:

创建Eclipse项目有几个动因:
  • 通过Eclipse社区的帮助提高Glimmer的健壮性和可靠性
  • 从经验丰富的Eclipse开发者那里获得反馈
  • 提升知名度,获取更广泛的支持

在简化使用Ruby进行Eclipse开发上,GUI DSL是一个好的开始,但仅仅是冰山一角。未来的计划确定会包括探索如何简化RCP的开发,使用JRuby脚本来创建Eclipse插件也可能会被列入计划。

我尚且还没有仔细思考目前插件开发中存在的问题,但有两个地方可能会从Ruby的表达式语法中获益,那就是扩展点定义及插件的配置和集成。

查看英文原文: Glimmer - using JRuby and SWT for Eclipse RCP apps
译者简介:张龙,同济大学软件工程硕士,现就职于理光软件研究所。主要从事文档工作流和办公自动化解决方案的研发工作。热衷于Java轻量级框架的研究,对敏捷方法很感兴趣。曾有若干年的J2EE培训讲师经历。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT