JRuby on Eclipse RCPに一歩近づくGlimmer絶賛開発中
InfoQ本家より、Rubyを使ってSWT/JFaceのGUIを書けるGlimmerというライブラリが絶賛開発中。Eclipse Foundationにも申請中のプロジェクトらしい。ちょっと振り返ってみたら、昨年12月に見つけたプロジェクトが順調に育っているものみたい。
hello_world.rbを転載しますね。
# Copyright (C) 2007-2008 Annas Al Maleh # Licensed under the LGPL. See /COPYING.LGPL for more details. require "java" require File.dirname(__FILE__) + "/../src/swt" class HelloWorld include_package 'org.eclipse.swt' include_package 'org.eclipse.swt.layout' include Glimmer def launch @shell = shell { text "SWT" composite { label { text "Hello World!" } } } @shell.open end end HelloWorld.new.launch
compositeとかをRuby DSLで書けるのが最大の特徴らしい。どうやってListenerを登録して行くのかが興味深い。せっかくなので、環境を整えてサンプルを動かしてみました。
- そもそもJRubyを落としていなかったので、配布サイトから最新版のJRuby1.0.3を落とし、解凍($JRUBY_HOMEとする)
- $JRUBY_HOME/binにパスを通す
- $JRUBY_HOME/lib以下にSWTのJarを入れる(もちろんフラグメントのJarも入れる)
- Glimmerは中でfacetsというライブラリを使っているので、rubygemsを使って取得した。コマンドはgem install facets
- Glimmerのサンプルフォルダへ移動して、jruby -rubygems hello_world.rbで動きました。
JFaceも動くんで、こんなビューも作れます。結構いい感じ。
正直Rubyが書けるというだけの人には、SWT特有のLayoutクラスに悩まされる気がします。なのでSWT自体が万人受けはしなさそうだと思ってます。(他のGUI Widgetを知らないので、この意見は微妙かもですね。)でもJavaでほげほげクラスのインスタンスを作ってはどーだこーだやるよりはかなりよさそうです。
Glimmer - using JRuby and SWT for Eclipse RCP apps