e4とEclipse 4.0

e4は次世代のEclipseの基盤となるコンポーネント群を開発しているプロジェクトだ。現在のところe4はインキュベーション中のプロジェクトだが、Eclipse 3.6(Helios)上で動作するプラグインがリリースされている。

また、e4とは別にEclipse 4.0がリリースされている。Eclipse 4.0はe4を基盤としたEclipse 3.6という位置付けだ。

今回はe4とEclipse 4.0を通して次世代のEclipseに触れてみたい。

図1 Eclipse 4.0のスプラッシュスクリーン

Eclipse 4.0で大きく変わるワークベンチ

Eclipse 4.0ではワークベンチのルック&フィールが一新され、より洗練されたデザインとなっている。

図2 Eclipse 4.0のワークベンチ

また、ツールバーの右上に検索ボックスが設けられており、クイックアクセス(Eclipseのメニューやウィザード、設定画面などをインクリメンタルサーチして呼び出す機能)が手軽に利用できるようになっている。

クイックアクセスはこれまでも存在した機能だが、CTRL+3というショートカットで呼び出す必要があり、Eclipseに慣れたユーザでも活用されているとは言い難い面がある。ツールバーから呼び出せるようになることで身近な機能になることだろう。

図3 クイックアシスト用の検索ボックス

また、エディタやビューのレイアウトの自由度も増しており、エディタ領域にビューをスタックしたり、逆にビュー領域にエディタをスタックすることが可能になっている。大量の情報を表示するビューを頻繁に利用する際にはエディタ領域にスタックしておくと便利だろう。

XWTとGUIデザイナ

XWTはSWT(Eclipseが使用しているJava向けのクロスプラットフォームなGUIツールキット)によるユーザインタフェースをXMLで定義するための技術だ。e4にはXWTのXMLファイルをグラフィカルに編集するためのGUIデザイナが付属している。GUIビルダ上ではコンポーネントのレイアウトだけでなく、イベントやデータバインディングの設定を行うことも可能だ。

図4 XWTのGUIデザイナ

また、e4にはTridentというアニメーションエンジンが統合されており、XWTでアニメーションの設定を行うこともできる。

標準でGUIビルダが付属するのはEclipseプラグイン開発者や、SWTベースのアプリケーションを開発するユーザにとっては嬉しいだろう。

進化するプラグイン開発

e4ではオープンソーシャルの規格に従って作成されたガジェットをEclipseのビューとして表示することができる。また、UIのデザインをCSSに分離することができたり、JavaScriptでプラグインの開発が可能になるなどこれまで主としてWebで利用されていた技術が積極的に活用されている。

その他にも、モデル化されたUIによって、あるプラグインが提供するUIに別のプラグインがUI要素を追加できるようになる。これによりこれまでは困難だった既存のUIに対する拡張を容易に行うことができるようになるはずだ。

また、アプリケーションコードとフレームワークを粗結合にするためにDIの概念が導入されており、たとえばe4のサンプルアプリケーションに含まれるハンドラクラスでは以下の@Namedアノテーションを使用してアクティブなShellオブジェクトを取得している。

@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell) {
  MessageDialog.openInformation(shell, "About", "e4 Application example.");
}

まとめ

Eclipse 4.0はe4ベースのEclipse 3.6ということで、外観こそEclipse 3.x系と大きく異なるものの、普通に利用する分にはそこまでの差は感じられない。しかし、e4で提供されるさまざまな基盤技術はプラグイン開発者にとっては新たな可能性を示すものだろう。これらの技術を活用したプラグインが登場してきたときこそe4、そしてEclipse 4.0の真価が発揮されることだろう。

Eclipseは当面、現行の3.x系とe4ベースの4.x系が並行して開発されていくとのことだ。すでに開発ツールの基盤として確固たる地位を築いているEclipseだが、e4が次世代の基盤技術となれるか見守っていきたい。