GoogleからJava開発者へのサプライズ!な贈り物、Google Web Toolkit[2]

GWTとYahoo!のAPIを使って画像検索アプリ!


リトルソフト株式会社 長尾寿宏
2006/7/12


 作成の手順

 アプリケーション作成は以下のステップで進めます。2と3は次回の連載で解説していきます。

1. クライアント側のユーザーインターフェイス作成→今回の記事で紹介します

 クライアント側のユーザーインターフェイスの外観をGWTウィジェットとパネルを使って実装します。また、CSSを利用したスタイル設定、ウィジェット自動リサイズ機能の実装を行います。

2. RPCインターフェイスの定義とサービスメソッドの実装(参照:JavaScript×HTMLとJavaのシームレスな開発環境を体験してみよう)

 GWTのRPCを利用する際、必要となるクラスとインターフェイスを定義します。サービスメソッドにYahoo!画像検索Webサービスへの問い合わせを行い、検索結果XMLをSAXParserで解析する処理を実装します。

3. クライアント側の機能詳細の実装(参照:JavaScript×HTMLとJavaのシームレスな開発環境を体験してみよう)

 クライアント側の詳細機能を実装し、アプリケーションを完成させます。

  • 一覧で選択されている項目の背景色が変化する
  • 一覧スクロールに伴い、検索結果の追加取得と読み込みが非同期に行われる
 開発環境としてGWT、Eclipse、JDKを準備しよう

 アプリケーションの開発を始めるに当たり、必要な環境をそろえましょう。GWTはVersion 1.0.21 Windows版、EclipseはVersion 3.1.2、そしてJDKは5.0を利用します。

 YahooアプリケーションIDの取得

 Yahoo!画像検索Webサービスを利用するには、Yahoo!デベロッパーネットワークでアプリケーションIDを登録し、そのアプリケーションIDをリクエストURLのパラメータに含める必要があります。

 Yahoo!画像検索WebサービスへのサンプルリクエストURLでは、“appid=YahooDemo”がアプリケーションIDです。

 GWTプロジェクトの作成

 さて、次にGWTプロジェクトを作成しましょう。今回作成するプロジェクト名およびアプリケーションクラス名は以下のとおりとします。

・プロジェクト名 : GWTTest1
・アプリケーションクラス名: jp.littlesoft.gwttest1.client.ImageSearchClient

 GWTにはprojectCreator、applicationCreatorというコマンドラインツールが含まれていますので、これらを使用してプロジェクト初期ディレクトリやファイルのセットアップを行います。

 これらの詳細な手順はJavaをAjaxに変換するグーグルのGWTを使ってみようの「マイプロジェクトの作成」をご覧ください。

 作成が完了したらEclipseへインポートしておいてください。

 標準パッケージレイアウト

 なお、GWTには標準パッケージレイアウトが定められています。今回作成する“jp.littlesoft.gwttest1”というパッケージを例にすると、プロジェクト全体としては、以下のようなパッケージを作成し、各種ソースファイルをレイアウトすることになります。

jp/littlesoft/gwttest1/
プロジェクトのルートパッケージ。このルートには"モジュールxml"と呼ばれるGWT構成情報ファイルを配置します。
jp/littlesoft/gwttest1/client
当パッケージあるいは当パッケージのサブパッケージに、クライアント側Javaソース、クラスファイルを配置します。
jp/littlesoft/gwttest1/server
当パッケージあるいは当パッケージのサブパッケージに、サーバ側Javaソース、クラスファイルを配置します。
jp/littlesoft/gwttest1/public

 プロジェクト全体で使用される静的リソース(HTML、CSS、画像etc.)を配置します。Webモードへコンパイルすると、このパッケージに置かれたリソースは出力先にコピーされます。

 クライアント側のユーザーインターフェイス作成

 準備作業が完了したところで、クライアント側のユーザーインターフェイス作成に着手します。

 GWTにおけるユーザーインターフェイス構築の重要ポイントをチェックしながら作業を進めていきたいと思います。

 ウィジェットとパネル

 GWTのユーザーインターフェイス構成要素はウィジェットとパネルに大別されます。ウィジェットとはテキストボックス、ボタン、リスト、メニュー、あるいはツリーといったGUIコンポーネントです。パネルは、ウィジェットを見栄えよくレイアウトする機能を持ったコンテナであり、Dockパネル、水平パネル、垂直パネルといったバリエーションが存在します。

 GWTアプリケーションは、いくつかのパネルを組み合わせ、さらにその中にウィジェットをレイアウトすることでユーザーインターフェイス全体を構成します。

 このような構成は Swingや SWTといったユーザーインターフェイスフレームワークに非常に類似したものですが、GWTは、それ自体がGUIをグラフィックスとして描画するのではなく、DOMツリーの中で、動的にHTMLを作成することで描画されるという点が大きく異なります。GWTのウィジェットやパネルはDOM要素をラップしているクラスであり、また、これらの階層関係はDOMツリーそのものであるのです。

 DOM インターフェイスを使用し、それを直接操作することも可能ですが、GWTが提供するウィジェットやパネルの階層構造からJavaクラスのメソッドを利用して操作する方が、クロスブラウザに起因する厄介な部分が解決済みなので、より簡単で安心な方法といえるでしょう。

2/5

 INDEX

GWTとYahoo!のAPIを使って画像検索アプリ!
  Page1<Yahoo!Web検索サービスとGWTを使ってみよう/画像検索アプリケーション/アプリケーションの構成>
Page2<開発環境としてGWT、Eclipse、JDKを準備しよう/YahooアプリケーションIDの取得//GWTプロジェクトの作成/標準パッケージレイアウト/クライアント側のユーザーインターフェイス作成/ウィジェットとパネル>
  Page3<レイアウトの概要・構造(1) RootPanel(2) DockPanel(3) HorizontalPanel(4) Label、 TextBox、 Button(5) ScrollPanel(6) Grid(7) Frame>
  Page4<CSSによる外観設定/ホストページの編集>
  Page5<ウィジェットの自動リサイズ機能の実装/ホステッドモードで実行してみる/Swing、AWT、SWTプログラマになじみやすい>



 Ajax関連記事


Ajaxフレームワーク「Spry」で作る「リンク集2.0」
特集:AdobeのAjaxフレームワーク「Spry」を使ってみよう アドビのAjaxフレームワーク「Spry」。さっそく簡単なリンク集のサンプルを作成しながら、その機能を探ってみよう
リッチクライアント & 帳票」フォーラム 2006/6/21

古くて新しいAjaxの真実を見極める
「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう
最終更新 2005/8/2

 



HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間