XSWT使ってみた
ドキュメントだけ読んで分かったふりをするのも良くないので、ちょっとだけ XSWT を使ってみました。
XSWT は Eclipse プラグインとして提供されているので、アップデートサイト(http://xswt.sourceforge.net/updates )からダウンロードして Eclipse に組み込みます。
適当なプロジェクトを作って、新規ファイルの中から「XSWT file」を選択して xswt ファイルを作成。この段階で、こんな感じのテンプレートが表示されています。
<?xml version="1.0" encoding="UTF-8"?> <xswt xmlns:x="http://sweet_swt.sf.net/xswt"> <import xmlns="http://sweet_swt.sf.net/xswt"> <package name="java.lang"/> <package name="org.eclipse.swt.widgets"/> <package name="org.eclipse.swt.layout"/> </import> <x:children> <composite> <layoutData x:class="gridData" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL"/> <layout x:class="gridLayout" marginHeight="0" marginWidth="0"/> <x:children> <!-- Put your layout here --> </x:children> </composite> </x:children> </xswt>
インポート文まであったりして、SWTの画面コードをそのままXMLにしたという印象。レイアウトの表現もかなり生です。
チュートリアルに従って、ボタンとラベルを作ってみます。
<label text="Push this button:"/> <button text="Punch me!"/>
この辺は、S2JFace と同じですね。でも、エディタの補完は効かないようです・・・。S2JFace は Eclipse の WTP 付属の XML エディタを使えば、補完が効きます。
ちゃんとビューがついていて、xswt ファイルの内容がリアルタイムで実画面に表示されるのは◎です。S2JFace の GUI エディタでもこれはサポートしたいところ。
で、実際にプログラムから利用するにはどうするかというと、こんな感じで xswt ファイルをパースさせるようです。
XSWT.create(getClass().getResourceAsStream("HelloWorld.xswt")).parse(shell);
フレームワークというか、SWTの画面をXMLで記述するためのライブラリのようです。
S2JFace は XSWT の提供する機能を(おそらく)完全に含んでおり、さらに生産性を上げるためのデータバインディング等の機能を提供できることが、やはり大きな違いでしょう。
完全にかぶってなくて良かった・・・