■ STEP9 - ユーザーインターフェース-2
Googleのガイドラインにもあるように、ガジェットを縦長にするのはできるだけ避けたほうが良さそうです。
幸いタブの利用が可能なのでこれを上手に利用しましょう。
Googleでは4通りのタブ利用の方法を示しています。
取り敢えず難しいことは後回しにして、用途や作りやすさなど、自分の好みに応じて使い分ければ良いでしょう。
それほど凝ったタブを作らなければならない場面は稀でしょうから、サンプルをそのまま改良すればだれでも作れます。
http://www5d.biglobe.ne.jp/~pog/api/gadget/tab.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Tabs Demo" height="140" scrolling="true" >
<Require feature="tabs" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
// タブの初期化; デファルトで指定されている "Jazz"とういタブが選択される
var tabs = new gadgets.TabSet(__MODULE_ID__, "Jazz");
function init() {
//方法1;タブの作成時にタブの ID を取得し、その ID を使用してそのタブに対応する <div> にコンテンツを追加する
tabs.addTab("Classical", {//addTabの引数で2つ目のタブのIDを作成
contentContainer: document.getElementById("two_id")
//方法2;同様の方法でHTMLによるタブ名の定義を行うこともできる
var one_Id = tabs.addTab('<div style="color: red; font-weight: bold; background-color:#ccf;">Jazz</div>
');//タブ名設定
document.getElementById(one_Id).innerHTML = "タブの追加時にタブ名を設定します";//タブ内のコンテンツ
//方法3;タブを作成して対応する <div> をガジェットの HTML 部分に追加し、静的コンテンツを <div> に含める
tabs.addTab("Two", {
contentContainer: document.getElementById("two_id")
});
//方法4;タブを作成して対応する <div> をガジェットの HTML 部分に追加して静的コンテンツを <div> に含める。
コールバック関数を使用して、動的コンテンツを静的コンテンツに追加する。
tabs.addTab("Rock", {//コールバックを利用
contentContainer: document.getElementById("three_id"),
callback: callback,
tooltip: "ツールチップも作れます" //ツールチップの作成
});
//方法5;addTab(tabName, opt_params) 関数を使用して、タブを名前で指定して追加する
// ツールチップメッセージを作成し、もし指定された<div>がない場合は作成する。
// コールバックを呼び出す。
tabs.addTab("Others", {
contentContainer: document.getElementById("four_id"),
callback: callback,
tooltip: "I'm special" //ツールチップの作成
});
}
//方法4と方法5のタブ内のコンテンツを提供するコールバック関数;
function callback(tabId) { //three,four用callback
var p = document.createElement("p");
var selectedTab = tabs.getSelectedTab();
p.innerHTML = "RockとOthersタブ用にコールバックを利用して動的コンテンツを作成しています "
+ selectedTab.getName();
document.getElementById(tabId).appendChild(p);
}
//初期化された関数を呼び出してタブを表示する
gadgets.util.registerOnLoadHandler(init);
</script>
<div id="two_id" style="display:none">ここは2番目のタブです</div>
<div id="three_id" style="display:none">3番目のタブ用の静的コンテンツ</div>
]]>
</Content>
</Module>
|