Eclipseプラグインを使う

GWT用のEclipseプラグインにはCypal SolutionsのCypal Studio for GWTがあります。
このプラグインを使うと、クライアントモジュール、リモートサービスの作成が簡単にできます。クライアントモジュールを作ると、対応するhtmlファイルの作成やgwt.xmlファイルの修正も行ってくれるので、コマンドラインから、projectCreatorやapplicationCreator実行するのに比べるとかなり楽になります。これで、かなりサクサクとGWTアプリが書けそうです。

インストール

インストールは、普通のプラグイン同様にEclipseフォルダにfeaturesとpluginsをコピーするだけですが、Eclipseは3.3以上で、EMF、GEF、WTPが必要です。

使ってみる

GWT Homeの指定

環境設定に"Cypal Studio"という項目が追加されるので、とりあえず"GWT Home"にGWTをインストールしたフォルダを選択します。

GWTプロジェクトの作成

プロジェクトの新規作成で、"Web"-"動的Webプロジェクト"を選択し次へ進み、”構成”にて"Cypal Studio GWT Project"を選択します。

モジュールの作成

新規作成のウィザードで"Cypal Studio"-"モジュール"を選択することで、EntryPointインタフェースを実装したクラスを作ることができます。このとき、対応するHTMLとGWTのモジュールを定義するXMLファイル(Hoge.gwt.xmlファイル)もあわせて作成してくれます。

リモートサービスの作成

モジュールと同様に新規作成のウィザードにて、"リモートサービス"選択することで、関連する以下のファイルを作成することができます。

  • clientパッケージ
    • HogeServiceインタフェース
    • HogeServiceAsyncインタフェース
  • serverパッケージ
    • HogeServiceImplクラス

また、Hoge.gwt.xmlファイルに要素が追加され、作成の際に入力したサービスのURIがそのpath属性に設定されます。web.xmlにもservletに関する記述が追加されます。

その後、HogeServiceにメソッドを追加すると、HogeServiceAsyncインタフェースにも対応するメソッドを追加してくれます。Asyncインタフェースのメソッドには、戻り値をvoidにして引数にAsyncCallbackを追加する必要があり、タイプミスの温床になりそうなので、かなりありがたいです。

HogeServiceには、以下のようにリモートサービスを取得するための定型処理も自動生成してくれます。こんな感じで。

public interface HogeService extends RemoteService {
	public static final String SERVICE_URI = "/hoge";

	public static class Util {

		public static HogeServiceAsync getInstance() {

			HogeService eAsync instance = (HogeServiceAsync) GWT
					.create(HogeService.class);
			ServiceDefTarget target = (ServiceDefTarget) instance;
			target.setServiceEntryPoint(GWT.getModuleBaseURL() + SERVICE_URI);
			return instance;
		}
	}