今回紹介している「カウントダウン」も例外ではなく、「Countdown.xml」「CountdownGadget.js」「stylesheet.css」から構成されているのだ。
「カウントダウン」のマニフェストである「Countdown.xml」はリスト1の通りだが、まずはリスト(ソース)を見る前に、このLiveガジェットの主な動作を覚えておこう。
<?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メソッドを呼び出して、保存値を取得している。
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.