SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google Waveガジェット作成チュートリアル

Google Waveをガジェットで拡張してみよう

Google Waveガジェット作成チュートリアル(1)


SharedState変更時の処理(画面描画)

 ボタン押下時の処理はSharedStateの操作だけで、画面更新の処理は書きませんでした。画面の再描画はボタンの押下時ではなく、SharedState更新のコールバックメソッドで行うのが良いでしょう。そうするとWaveの他の参加者と同じ画面が見えていることが保証されます。

// SharedStateが更新されたときに呼び出されるコールバックメソッド
function stateUpdated(){
    var good = parseInt(wave.getState().get("GoodCount", '0')) ;
    var bad = parseInt(wave.getState().get("BadCount", '0')) ;
    _gel("good_result").innerHTML = good;
    _gel("bad_result").innerHTML = bad;
    _gel("total").innerHTML = (good - bad) ;
}

 上記のコードは、SharedStateから○ボタンと×ボタンが押された回数を取得しています。

 そして、_gel("要素名")でHTMLの要素を取得しています。_gelはGoogleガジェットで利用することができるメソッドでdocument.getElementById()の代わりとなるものです。

 HTMLの要素を取得したら、その要素のInnerHTMLに値を設定し表示を書き換えます。

完成!

 画面を作成し、ボタンクリック時の処理も記述したので完成です。

 ではさっそく動作させてみましょう。GGEを使用しているので、保存するだけでWaveに反映されます。保存し直し、Waveをリロードしてみましょう。

 ○や×をクリックすると無事動作することを確認できると思います。

 また、複数のブラウザを立ち上げて同じWaveを表示させてみましょう。その状態でボタンをクリックすると複数のブラウザに表示させたWaveガジェットで同期が取れていることを確認できます。

まとめ

 Waveガジェットの一番の特徴は、Waveの参加者とガジェットを共有することができる点にあります。また、Waveガジェットではそれを「SharedStateに値を保存する」と「値が変更されたら通知する」という、とてもシンプルな仕組みで実現しています。

 WaveガジェットはGoogleガジェットの拡張のため、Googleガジェットを作りなれている方にはWaveガジェットも簡単に作ることができるでしょう。

 また、Googleガジェットに関するドキュメントはすでにネット上に豊富にあるため、Googleガジェットを作ったことがない方でもそれほど苦労せずWaveガジェットを作成することができると思います。

 次回はGWTを用いたWaveガジェットを作成する方法を解説予定です。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
この記事の著者

北村 研二(キタムラ ケンジ)

株式会社ルーツ所属。Java関連の最新技術、Googleの最新技術に興味があり、趣味のプログラミングでWeb開発やAndroid開発にも手を出している。京都Google Technology User Groupスタッフ。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4778 2010/06/22 23:19

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー