2010年4月22日木曜日

GWT2.0 のUIBinderを試してみた(その2)

前回の記事以降いろいろ試行錯誤してわかってきたことがあるので、訂正も含めて改めて書きます(あの記事はなかった事にしてもらっても結構ですw)。Netbeansでは、最新のプラグインを入れていればUIBinderに対応しているので簡単に作成することができます(Eclipseでも同様です)。

UIBinder関連ファイルの作成
【新規ファイル】→【GWT UIBinder】を選択することで、xmlファイルとJavaファイルが作成されます。
XMLファイル
ここでは、ボタンを配置してみます。htmlPanelがベースになっていますので、そこに下記のようにボタンを追加します。

 

 
 
            ボタンー
 


Javaファイル
ここでは、ボタンにイベントを記述しています。

public class NewUiBinder extends Composite {
    private static NewUiBinderUiBinder uiBinder = GWT.create(NewUiBinderUiBinder.class);

    interface NewUiBinderUiBinder extends UiBinder<widget, newuibinder=""> {
    }
    @UiField
    Button btn1;
    
    @UiHandler("btn1")
    void onClick(ClickEvent e) {
        Window.alert("ボタンが押されましたー");

    }


    public NewUiBinder() {
        initWidget(uiBinder.createAndBindUi(this));
    }
}
上記のJavaファイルのポイントは2点。
  • @UiFieldアノテーションで、xmlで定義したwidget要素と関連付ける。
    注意1:同じ名前である必要があります
    注意2:各変数のそれぞれこのアノテーションを書かないといけません
  • @UiHandlerアノテーションで、イベント貼付け
@UiFieldアノテーションによる記述については、特にプログラム中で呼び出しをしないのであれば、記述する必要がありません。つまり、わざわざ newでインスタンスを生成する必要がないということです。@UiHandlerアノテーションを利用したでのイベントの割り当てですが、 イベントの関数名はなんでもいいです。上記の場合は別にクリックイベントを拾いたいからといってメソッド名をonClickにしているのではありません。キャッチするイベントの種類を決定するのはメソッドの引数の型です。上記の場合は、ClickEventを引数の型にしているので、btn1に対するClickEventを拾っているのです。

最後、上記の方法で定義したWidgetの呼出し方法ですが、
final NewUiBinder uib = new NewUiBinder();
 RootPanel.get().add(uib);
というように、普通にWidgetを張り付ける方法でオッケイです。

以上のように、プラグインが自動生成するファイルを利用することで、効率良く開発することができます。UIBinderは必須の機能ですね。

2010年4月10日土曜日

第1回 Google Web Toolkit 勉強会 in 京都 (#gwt_kyoto) を開催します

GWT使ってますか?このブログでも何度かGWTのことを取り上げていますが(メモ的な内容ですが)、GWTはJavaを利用して簡単にAJaxアプリケーションを作成することができる強力なフレームワークです。

以下の日時にて、京都GTUG主催の「第1回 Google Web Toolkit 勉強会 in 京都」が開催されます。

日程
日時: 2010/04/16(金) 19:00~21:00
会場: 京都リサーチパーク
定員: 40名
参加費: 無料
懇 親会: 希望があれば勉強会後に懇親会を開く予定です(参加任意)

セッション
  • GWT2.0 入門 (19:00 ~ 19:55)
発表者: 越智洋司
テーマ: GWT2.0入門
内容: GWT概要、GWT2.0の特徴、他
  • GWT2.0 応用 (20:05 ~ 21:00)

    発表者: 白山 文彦 (twitter:@fshiroyama)
    テーマ: GWTで実際にウェブアプリケーションを作成してみよう
    内容: 入門の内容を踏まえて実際にウェブアプリを作成してみます。こんなに簡単に非同期通信を使ったアプリが作れるんだということを実感していただけると思いま す。

後援:京都リサーチパーク株式会社



今回は、私も京都GTUGスタッフとして、初の発表をさせていただくことになりました。私自身、大学の研究室において、今まで、ウェブアプリケーションのフレームワークはいろいろ試行してきましたが、半年ほど前に導入して以来、GWTの開発のしやすさにすっかり陶酔している今日この頃です。

今回の勉強会では、GWTの入門的から2.0の新機能の話題までを取り上げ、また実際の開発を通してそのメリットを体験していただければと思います。

申し込みはこちらです。皆様の参加をお待ちしております~。