OpenSocialでタブの選択情報を保存する

userprefにtabの選択情報を保存するのでこれらのfeatureを使えるようにします。

<Module>
    <ModulePrefs>
        <Require feature="setprefs" />
        <Require feature="tabs" />
    </ModulePrefs>

タブの選択情報の保存先を用意します。

    <UserPref name="selectedTabIndex" datatype="hidden" default_value="0" />

タブを用意します。

        var tabs = new gadgets.TabSet(__MODULE_ID__, null, document.getElementById("tabs"));
        var a_tab = {
          contentContainer: document.getElementById("a_tab"),
          callback: function() {
            lf_selected();
          }
        };
        tabs.addTab("a", a_tab);
        var b_tab = {
          contentContainer: document.getElementById("b_tab"),
          callback: function() {
            lf_selected();
          }
        };
        tabs.addTab("b", b_tab);
        var c_tab = {
          contentContainer: document.getElementById("c_tab"),
          callback: function() {
            lf_selected();
          }
        };
        tabs.addTab("c", c_tab);

callbackで呼ばれる、タブの選択メソッドを用意します。

        /*
         * タブ選択状態の設定
         */
        function lf_selected(){
            var selectedindex = tabs.getSelectedTab();
            selectedindex = selectedindex.getIndex();
            prefs.set("selectedTabIndex",selectedindex);
        }

タブの選択情報から初期選択のタブをロードします。

        tabs.setSelectedTab(prefs.getInt("selectedTabIndex"));