キラーガジェット登場はアプリ業界を再編――事例で見るLiveガジェットWindows Liveが魅せる次世代マッシュアップ(2/4 ページ)

» 2007年03月08日 08時00分 公開
[森川拓男,ITmedia]

 今回紹介している「カウントダウン」も例外ではなく、「Countdown.xml」「CountdownGadget.js」「stylesheet.css」から構成されているのだ。

 「カウントダウン」のマニフェストである「Countdown.xml」はリスト1の通りだが、まずはリスト(ソース)を見る前に、このLiveガジェットの主な動作を覚えておこう。

カウントダウンする日時をプルダウンから選択、「Text to display」に表示させるメッセージを入力して「start countdown」ボタンをクリックする
設定したメッセージと残り日数が表示されて、指定時間が来ると犬のイラストが骨のイラストに変わって、時間が来たことを表示する。「reset」ボタンからやり直すことが可能だ
リスト1■マニフェストファイル「Countdown.xml」

<?xml version="1.0"?>
<rss version="2.0" xmlns:binding="http://www.live.com">
    <channel>
    <!-- ガジェットの名前を指定 -->
        <title>Countdown</title>
        <link>http://est.jp/</link>
        <!-- ガジェットの簡単な説明 -->
        <description>The remaining time until a set date is displayed.</description>
        <!-- ガジェットの既定のロケールを指定 -->
        <language>ja</language>
        <!-- ガジェットを定義する JavaScript オブジェクトを指定 -->
        <binding:type>East.GadgetProject.CountdownGadget</binding:type>
        <item>
            <!-- ガジェットのコードが格納される JavaScript ファイルを指定 -->
            <link>CountdownGadget.js</link>
        </item>
        <item>
        <!-- ガジェットのスタイルが格納される css ファイルを指定 -->
            <link binding:type="css">css/stylesheet.css</link>
        </item>
    </channel>
</rss>

 リストを見てもらえば一目瞭然だが、マニフェストファイルとは、そのLiveガジェットの名前と説明、実際に使用するスクリプトとスタイルシート指定が定義されたものだ。このマニフェストは、要所を書き換えるだけで、そのままほかのLiveガジェットにも応用可能なテンプレートと見ることもできる。つまり、Liveガジェットのマニフェストは、上記を流用して書き換えればよいということだ。

 続いて、プログラム本体である「CountdownGadget.js」を見ていこう。

 リスト2に引用した「initialize Method」で、基底のinitializeメソッドを呼び出して、保存値を取得している。

リスト2■「CountdownGadget.js」の一部「initialize Method」を引用

		East.GadgetProject.CountdownGadget.getBaseMethod(this, "initialize", "Web.Bindings.Base").call(this, p_objScope);
		
		// 保存値を取得
		m_selectYear = m_module.getPreference("Year");
		m_selectMonth = m_module.getPreference("Month");
		m_selectDay = m_module.getPreference("Day");
		m_selectHour = m_module.getPreference("Hour");
		m_selectMin = m_module.getPreference("Min");
		m_displayText = m_module.getPreference("Disptext");
		m_urlFlag = m_module.getPreference("UrlFlag");

 イーストからの開発担当者コメントによれば、「Vistaガジェットの場合はローカルに何でも保存できるけど、Liveガジェットの場合はローカルに保存することはできない――そう考える開発者も多いという。しかし、実はこのLiveガジェットのように自分のLiveアカウントとひも付けて保存することが可能なのだ」という。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ