2009/08/18

SwingBuilderでGroupLayoutを使ってみる。

Java6で追加されたGroupLayout(Matisse)をSwingBuilderから使ってみたらどうなるか、試してみました。
元ネタは、LayoutManagerShowdownGroupLayoutからです。
スクリプトはhttp://www.tobikkiri.org/files/groovy/GroupLayoutDemo.groovyに置きました。

GroupLayoutでは、Swingでの一般的なレイアウトマネージャとはレイアウトの指定方法が異なり、縦方向のレイアウトと横方向のレイアウトを別々に指定します。SwingBuilderでは、普通ならばレイアウトの指定を部品の作成時に指定しますので、2カ所以上のレイアウト指定には対応できません。
今回の例では、部品は一旦idを振って(もしくは変数に設定して)作成した後で、Swingでの方法と同じ様にしてレイアウトマネージャに設定する様にしました。あまり綺麗ではありませんが、仕方が無いですね。

GroupLayoutをSwingBuilderで利用する為には、もう一つ問題があります。
GroupLayoutのコンストラクタには、必ず引数としてコンテナが必要となりますが、SwingBuilderで通常使うLayoutFactoryではコンストラクタに引数を指定する事ができません。
これを解決する為に、引数を指定できる様にLayoutFactoryを拡張した、TargetLayoutFactoryを作成してみました。

今回のネタは、GroovyのMLのこれを参考にしました。

今後、LayoutManagerShowdownの中から、幾つかSwingBuilderで書き換えてみたいと思います。

ラベル: , , , , ,

2009/08/03

Groovy Eclipseプラグインの新バージョン

Groovyの1.6.4と1.7-beta1が公開になっていました。
http://groovy.codehaus.org/Download

同時に、Eclipse用プラグインの新バージョン(V2)のプレビュー版が公開されました。
http://groovy.codehaus.org/Eclipse+Plugin


SpringSourceのBlogはこちら

Mac上でEclipse3.5にインストールしてみましたが、プロジェクトの新規作成でGroovyプロジェクトが作成できますし、今までの様にGroovyメニューから"Add Groovy Nature"しなくて済む様になっています。JavaプロジェクトにGroovyの環境を追加する事もできる(こちらはGroovyメニューで"Add Groovy Nature")そうです。

これでGroovy開発の入り口が低くなると良いですね。

ラベル: , , ,

2009/07/16

jEditをGroovyの開発環境にしてみる

今回、jEditを入れた理由は、Groovyの開発環境として使えるかどうか?を確認する為です。
編集はGroovyモードが標準でインストールされますので、後はスクリプトを実行できる様にプラグインをインストールして設定します。

方法は幾つかあります。http://groovy.codehaus.org/JEdit+Pluginを参照しながら設定します。

1. Groovy Script Engine Pluginプラグインを使う(javax.script経由)
これは簡単です。jEditのPluginsメニューからPlugin Managerを選択し、ウインドウのinstallを選択して現れた一覧からGroovy Script Engine Pluginをインストールします。必要なpluginは同時にインストールされます。
現在表示中のスクリプトを実行するには、Pluginsメニュー>Script Engine Plugin>Evaluate Bufferを選択します。
しかし、、、私の環境では例外が出て試せませんでした。

2. SuperScriptプラグインを使う(ApacheのBSF経由)
SuperScriptでは、ApacheのBSF経由でスクリプトを実行しますが、標準ではGroovyスクリプトを実行する設定がありません。ですので、BSFからGroovyスクリプトを実行できるように設定を記述します。
次のスクリプトをstartup.bshというファイル名で、ライブラリフォルダ内のjEdit/startup内に(~/Library/jEdit/startup)作成します。

/* add Groovy */
org.apache.bsf.BSFManager.registerScriptingEngine(
"groovy","org.codehaus.groovy.bsf.GroovyEngine",new String[]{"groovy","gv"}
);

これでBSFからGroovyスクリプトを実行できるようになりましたので、jEditの再起動後Plugin ManagerからSuperScriptプラグインをインストールします。
現在表示中のスクリプトを実行するには、Pluginsメニュー>SuperScriptを選択してSuperScriptを表示させた後、コンボボックスからgroovyを選択してExecute Scriptボタンを押します。

3. Consoleプラグインを使う(Console Commandoでgroovyをコマンド実行)
まず、Plugin ManagerからConsoleプラグインをインストールします。次に、上で挙げたページでは「wikiに添付されているgroovy.xmlをコピーする」と書いてありますが、、、このファイルがありません。
こちらのページにある様に、次に書いてある内容を元にgroovy.xmlをライブラリフォルダ内のjEdit/console/commando内に(~/Library/jEdit/console/commando)作成します。


42行にgroovyの実行パスを記述している部分がありますが、これは各自の環境に合わせます。
その後、Pluginsメニュー>Console>Regen dynamic menusを選択して設定を更新ます。
最後に、Pluginsメニュー>Plugin Optionsを選択してプラグインのオプション設定を表示します。この中で左側のツリーからPlugins>Console>Compile & Runを選択すると、各モードに対してのコンパイルと実行の設定が現れます。この中からgroovyモードを探し出して、コンパイル・実行両方についてコンボボックスからgroovyを選択して保存します。
現在表示中のスクリプトを実行するには、Pluginsメニュー>Console>Commandoを選択するとダイアログが表示されますので、OKボタンを押すとスクリプトが実行されます。

私のおすすめは、2.のSuperScriptプラグインを使う方法です。

ラベル: , , ,