|
@@ -1,13 +1,41 @@
|
|
|
(function () {
|
|
|
"use strict";
|
|
|
|
|
|
+ var itemsList = new WinJS.Binding.List();
|
|
|
+
|
|
|
+ function getGroupKey(dataItem){
|
|
|
+ return dataItem.group;
|
|
|
+ }
|
|
|
+
|
|
|
+ function getGroupData(dataItem){
|
|
|
+ return {
|
|
|
+ title: dataItem.group
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ var groupedItemsList = itemsList.createGrouped(getGroupKey, getGroupData);
|
|
|
+
|
|
|
+ WinJS.Namespace.define("home.babylonScenes", {
|
|
|
+ groupedItemsList: groupedItemsList
|
|
|
+ });
|
|
|
+ WinJS.Namespace.define("home.userScenes", {
|
|
|
+ data: new WinJS.Binding.List()
|
|
|
+ });
|
|
|
+
|
|
|
WinJS.UI.Pages.define("/pages/home/home.html", {
|
|
|
// This function is called whenever a user navigates to this page. It
|
|
|
// populates the page elements with the app's data.
|
|
|
ready: function (element, options) {
|
|
|
- Windows.ApplicationModel.Package.current.installedLocation.getFolderAsync("BabylonJS-Demos").then(function (folder) {
|
|
|
- folder.getFoldersAsync().then(function (folders) {
|
|
|
- var ul = document.getElementById("babylonScenes");
|
|
|
+ element.querySelector("#babylonScenesListView").addEventListener("iteminvoked", function (event) {
|
|
|
+ event.detail.itemPromise.done(function (item) {
|
|
|
+ WinJS.Navigation.navigate('/pages/babylonScene/babylonScene.html', { babylonFolder: item.data.folder, babylonFile: item.data.file });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ var onSceneFolderOpenCallback = function (rootFolder) {
|
|
|
+ rootFolder.getFoldersAsync().then(function (folders) {
|
|
|
+ var list = itemsList;
|
|
|
+ var group = (rootFolder.name == "BabylonJS-Demos") ? "BabylonJS demos scenes" : "Your scenes"
|
|
|
folders.forEach(function (folder) {
|
|
|
folder.getFilesAsync().then(function (files) {
|
|
|
for (var j in files) {
|
|
@@ -19,29 +47,23 @@
|
|
|
if (file.name.indexOf(".incremental.babylon") !== -1) {
|
|
|
incremental = true;
|
|
|
}
|
|
|
- var li = document.createElement("li");
|
|
|
- var button = document.createElement("button");
|
|
|
- button.className = "sceneButton";
|
|
|
- button.setAttribute("data-scene-folder", folder.name);
|
|
|
- button.setAttribute("data-scene-file", file.name);
|
|
|
- button.textContent = folder.displayName + ((incremental) ? " (incremental)" : "");
|
|
|
- li.innerHTML = button;
|
|
|
- ul.appendChild(button);
|
|
|
-
|
|
|
- button.addEventListener("click", onButtonClick)
|
|
|
+ list.push({
|
|
|
+ title: folder.displayName.charAt(0).toUpperCase() + folder.displayName.slice(1),
|
|
|
+ text: file.name,
|
|
|
+ group: group,
|
|
|
+ folder: rootFolder.name + "/" + folder.name,
|
|
|
+ file: file.name
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
- }, function (error) {
|
|
|
- var test = true;
|
|
|
- });
|
|
|
-
|
|
|
- var onButtonClick = function (event) {
|
|
|
- var dataFolder = event.srcElement.getAttribute("data-scene-folder");
|
|
|
- var dataFile = event.srcElement.getAttribute("data-scene-file")
|
|
|
- WinJS.Navigation.navigate('/pages/babylonScene/babylonScene.html', { babylonFolder: dataFolder, babylonFile: dataFile });
|
|
|
};
|
|
|
+
|
|
|
+ if (itemsList.length == 0) {
|
|
|
+ Windows.ApplicationModel.Package.current.installedLocation.getFolderAsync("BabylonJS-Demos").then(onSceneFolderOpenCallback);
|
|
|
+ Windows.ApplicationModel.Package.current.installedLocation.getFolderAsync("addToPackage").then(onSceneFolderOpenCallback);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
})();
|