写点什么

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:161165
用户头像

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

关注

评论

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

DDD落地实践-架构师眼中的餐厅

EquatorCoco

架构 DDD 领域驱动

Python工具初步认识

快乐非自愿限量之名

Python C语言 开发语言

Adobe Acrobat Pro DC 2023中文直装版下载(PDF编辑软件)

影影绰绰一往直前

Adobe Photoshop 2023直装破解版下载(PS2023)

影影绰绰一往直前

医疗设备管理二维码:扫码查看使用说明、填写消毒记录

草料二维码

二维码 草料二维码 医疗设备 医疗设备管理

基于ETLCloud的MySQL到SqlServer实时同步解决方案

RestCloud

MySQL 数据同步 ETL SqlServer

分布式日志追踪ID实战 | 京东物流技术团队

京东科技开发者

基于大模型训练的编程助手

百度开发者中心

人工智能 大模型 智能代码助手

六个提升SQL查询性能的核心技巧

高端章鱼哥

数据库 sql

如何实现APP安全加固?加固技术、方法和方案

Geek_66e2f3

阿里巴巴中国站1688商品详情API实时数据获取:从零基础到精通的全程指南

Noah

3 分钟为英语学习神器 Anki 部署一个专属同步服务器

米开朗基杨

如何通过技术手段使LED显示屏更加节能?

Dylan

概念 节能 LED显示屏 市场

Adobe Photoshop 2024直装版下载 (PS2024)

影影绰绰一往直前

Design DaVinci Resolve Studio18中文破解版下载(达芬奇调色剪辑)

影影绰绰一往直前

软件测试开发/全日制丨Web端测试—JavaScript讲解 学习笔记

测试人

软件测试

数字化助力,聚道云软件连接器实现软件公司人事信息自动同步

聚道云软件连接器

案例分享

代码出错了,IDE竟然不报错?太诡异了....

互联网工科生

ide 代码 ChatGPT

如何做代币分析:以 OCEAN 币为例

Footprint Analytics

区块链 加密货币 代币

一文详解 Java 限流接口实现

阿里技术

Java 分布式限流 限流算法 应用级限制 限流接口

BetterZip 5 for mac(专业解压缩软件) v5.3.4中文注册激活版

mac

苹果mac Windows软件 BetterZip 压缩和解压缩工具

中间件是开箱即用的吗?为什么要开发中间件adapter?

华为云开发者联盟

开发 华为云 华为云开发者联盟

Spring 应用合并之路(一):摸石头过河 | 京东云技术团队

京东科技开发者

Docker Linux快速安装及Nginx部署

这我可不懂

Docker Linux

iZotope RX 10 v10.4.2 汉化直装版下载(专业的音频降噪修复软件)

影影绰绰一往直前

JetBrains IntelliJ IDEA 2023 完美激活版下载

影影绰绰一往直前

Modbus Slave 注册版下载(调试工具)

影影绰绰一往直前

小程序如何帮助电商发力,寻找增长突破口

Geek_2305a8

企业数字化转型,应该先从哪开始?

优秀

企业数字化转型

NeurIPS'23 Paper Digest | PromptTPP: Prompt Pool 与时序点过程模型的持续学习

可信AI进展

机器学习 持续学习 Prompt prompt learning 时序模型

Bartender 4 for Mac(菜单栏应用管理软件) v4.2.25完美激活版

mac

Bartender 苹果mac Windows软件 菜单栏图标

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