NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 2008-02-26
  • 本文字数:1500 字

    阅读完需:约 5 分钟

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

2008-02-26 01:161167
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

面试官让列举Spring的事务会失效的场景,我说了8个

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

区块链商业生态搭建,区块链主链开发

V\TG【ch3nguang】

区块链dapp开发、

数字货币发币系统开发搭建

V\TG【ch3nguang】

数字货币钱包开发

Microsoft Word 2019 for mac(文字处理软件word mac)中文正式版

mac

windows 苹果mac Word 2019 文字处理软件

HICOOL2023创业峰会圆满落幕|澜舟科技成功举办孟子大模型系列及澜舟智会产品发布会,持续大模型时代行业深耕

澜舟孟子开源社区

HarmonyOS账号服务,畅行鸿蒙生态所有应用与服务

HMS Core

HarmonyOS

【深入浅出系列】之代码可读性 | 京东云技术团队

java易二三

Java 程序员 计算机 京东云

《华为云DTSE》期刊2023年第二季—HDC.Cloud 2023专刊

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 8 月 PK 榜

mac电脑3D图形必备Maya 2024 最新中文激活版

胖墩儿不胖y

玛雅2024下载 Mac软件推 图形软件

英特尔吕冬:英特尔与玩家共同见证电竞首次入亚

E科讯

架构设计:Docker容器化部署

高端章鱼哥

Docker 架构 容器化部署

行业首创 !Graph RAG:基于知识图谱的检索增强技术与优势对比(附 Demo)

悦数图数据库

图数据库

从数据孤岛到企业xP&A的演化

智达方通

全面预算管理 全面预算管理系统 扩展规划和分析

最新Nikon Camera Control Pro 2激活教程+激活码

mac大玩家j

通过Scrum实现最大生产力的五种方法

敏捷开发

项目管理 Scrum 敏捷开发 禅道项目管理软件 最大生产力

如何利用 Agent 构建AI服务

极光JIGUANG

人工智能 AI技术 AI工具 AI Agent

控制风险,是质量保障的核心工作

老张

风险管理 质量保障

一体化智能可观测平台助力车企数智化转型

博睿数据

拥抱变革 向新而行丨瑞友信创新品隆重上市暨战略发布盛典圆满落幕

瑞友

信创 信创重器 天下共享 瑞友公司 信创解决方案

Principle for Mac(动画交互设计软件) v6.25中文版

mac

苹果mac Windows软件 Principle 动画交互式软件

英特尔第一超算Aurora:峰值性能达2百亿亿次,拥有世界最大GPU集群

E科讯

积分商城开发

西安链酷科技

积分商城 电商系统

POW+POS模式挖矿+利息分红混合模式系统开发

V\TG【ch3nguang】

挖矿系统开发

技术分享 | RCU :内核小“马达”,让你的产品弯道超车

鼎道智联

代码人生

推荐程序员提高生产力的工具

互联网工科生

版本控制 生产力 单元测试 功能测试

Glimmer—使用JRuby和SWT开发Eclipse RCP应用_Java_Werner Schuster_InfoQ精选文章