JDTの新機能とWindowBuilder

本連載では数回に分けてEclipse 3.7 Indigoの新機能を紹介しているが、今回はJava開発に関する新機能を紹介する。

EclipseのJava開発支援機能であるJDT(Java Development Tools)はすでに高い完成度を誇っており、ここ数年のバージョンアップと同様に細かい使い勝手の改善がメインとなっているが、Indigoでは新たにWindowBuilderというGUIビルダが追加されており、GUIアプリケーションの開発に利用できる。

細かな改善が目立つJDT

WindowBuilderを除けばIndigoでのJava開発向けの新機能は細かいものがほとんどだが、その中でもクイックフィックス(CTRL + 1)の強化が目立つ。Indigoでは以下のようなクイックフィックスが追加されている。

  • Exchange left and right operands for infix expression
    !=、<、<=、>、>= といった比較演算子の右辺と左辺を入れ替えるように修正する。たとえば「b < a」を「a > b」に修正することができる。

  • Join variable declaration
    「String str = null;」のようにnullで初期化している変数の宣言と最初の代入を1つにまとめる。

  • Introduce new local with cast type
    instanceofで型をチェックした後に、その型にキャストするコードを追加する。これまではinstanceofキーワード上でのみ利用可能だったが、instanceof判定を行うif文の本体でも利用可能になった。

  • Add missing case statements
    enumを使ったswitch文で未定義のcaseを追加する。

  • Put expression in parentheses
    式をカッコで囲む。たとえば「a > 0 && b > 0」を「(a > 0) && (b > 0)」に修正することができる。

また、標準で付属するプロパティファイルエディタも改善されており、文字を入力すると自動的にUnicodeエスケープされるようになっている。また、マウスカーソルをあてるとエスケープ前の文字列がホバー表示される。これまでのEclipse標準のプロパティファイルエディタと比べると強化されているのは事実だが、オープンソースのプラグインでより使い勝手のよいものが存在するため、そちらを利用したほうがよいかもしれない。

図1 : プロパティファイルエディタ

細かいところではJUnitのテストスイートを作成するためのウィザードがJUnit4にも対応している。JUnit4を使っているユーザにとっては嬉しい改善といえるだろう。

図2 : JUnitテストスイートの作成ウィザード

WindowBuilder

Indigoでの大きな新機能の1つがWindowBuilderだ。WindowBuilderはSwing、SWT、GWT、XWTなどに対応したGUIビルダで、もともとはEclipse専業ベンダであるInstantiations社によって開発されていたものだ。GoogleによるInstantiations社の買収に伴い、オープンソース化されEclipse Foundationに寄贈された。

Eclipse Foundationでは以前はVisual EditorというGUIビルダが開発されていたが、使い勝手に難があり近年は開発も活発ではなかった。WindowBuilderはこのVisual Editorに代わるプロジェクトとなる。実際に試してみたところ動作は軽快で使いやすい。SwingのGUIを作成する場合、レイアウトマネージャの挙動になれる必要はあるが、これは致し方ないところだろう。

図3 : Window Builderのウィザード

図4 : Window BuilderのGUIビルダ

Javaの主要なフィールドはミドルウェアやサーバサイドであり、GUIアプリケーションを作成する機会は少ないかもしれないが、ちょっとしたツールを作りたいという場合には便利だろう。また、SWTやGWTにも対応しているため、これまでのAWT/Swing向けGUIビルダと比べると活用範囲も広がるはずだ。

ただし、Swing以外を使用するためには別途プラグインをインストールする必要がある。新規作成ウィザードで「SWT User Interfaces」などを選択すると対応するプラグインのインストールを行うことができる。

IndigoでJava 7を使用する

Indigoは、標準ではJava 7には対応していない。NetBeansではいちはやくJava 7に対応し、修正が必要な場合はアップデートを提供するという方針を採っているのに対し、EclipseではJava 7のリリース後に正式なサポートをアップデートとして提供する方針のようだ。

ただし、EclipseでもJava 7への対応は進められており、ベータ版ながら以下の更新サイトからJava 7に対応するためのパッチをインストールすることができる。
http://build.eclipse.org/eclipse/java7patch/

このパッチをインストールすると以下のようにコンパイラの設定で1.7を選択できるようになる。

図5 : コンパイラ設定で1.7が選択可能

まとめ

IndigoではWindowBuilderやMavenサポートといった新機能があるものの、標準ではJava 7に対応していないこともあり、JDTそのものには大きな機能追加は行われていない。ただし、前述の通りベータ版ながらJava 7に対応するためのパッチが提供されているので興味のある方は一足先にEclipseでJava 7を試してみるのもいいだろう。