(function () {
"use strict";
var appViewState = Windows.UI.ViewManagement.ApplicationViewState;
var ui = WinJS.UI;
ui.Pages.define("/pages/items/items.html", {
// This function updates the ListView with new layouts
initializeLayout: function (listView, viewState) {
/// <param name="listView" value="WinJS.UI.ListView.prototype" />
if (viewState === appViewState.snapped) {
listView.layout = new ui.ListLayout();
} else {
listView.layout = new ui.GridLayout();
}
},
itemInvoked: function (args) {
var groupKey = Data.groups.getAt(args.detail.itemIndex).key;
WinJS.Navigation.navigate("/pages/split/split.html", { groupKey: groupKey });
},
// この関数は、ユーザーがこのページに移動するたびに呼び出されます。
// ページ要素にアプリケーションのデータを設定します。
ready: function (element, options) {
var listView = element.querySelector(".itemslist").winControl;
listView.itemDataSource = Data.groups.dataSource;
listView.itemTemplate = element.querySelector(".itemtemplate");
listView.oniteminvoked = this.itemInvoked.bind(this);
this.initializeLayout(listView, Windows.UI.ViewManagement.ApplicationView.value);
listView.element.focus();
document.getElementById("newpage").addEventListener("click",
function () {
WinJS.Navigation.navigate(
'/pages/hello/hello.html',
{
param1: '自動的に',
param2: 'ページのオプションとして ready イベントへ'
}
);
},
false);
},
// この関数は、viewState の変更に応じてページ レイアウトを更新します。
updateLayout: function (element, viewState, lastViewState) {
var listView = element.querySelector(".itemslist").winControl;
if (lastViewState !== viewState) {
if (lastViewState === appViewState.snapped || viewState === appViewState.snapped) {
var handler = function (e) {
listView.removeEventListener("contentanimating", handler, false);
e.preventDefault();
}
listView.addEventListener("contentanimating", handler, false);
var firstVisible = listView.indexOfFirstVisible;
this.initializeLayout(listView, viewState);
listView.indexOfFirstVisible = firstVisible;
}
}
}
});
})();