Preparing for crazy autoloading expermiment

This commit is contained in:
Dennis Eichhorn 2016-03-26 10:41:58 +01:00
parent e117722f1d
commit 7ad8ccc39b
2 changed files with 72 additions and 3 deletions

View File

@ -1,5 +1,15 @@
(function (jsOMS, undefined) {
jsOMS.InputManager = function ()
{
};
jsOMS.Autoloader.defineNamespace('jsOMS.UI.Input');
jsOMS.Autoloader.include(['jsOMS/UI/Input/Keyboard/KeyBoardManager.js'], function() {
jsOMS.UI.Input.InputManager = function ()
{
this.keyBoardManager = new jsOMS.UI.Input.Keyboard.KeyBoardManager();
};
jsOMS.UI.Input.InputManager.prototype.getKeyboardManager = function()
{
return this.keyBoardManager;
};
});
}(window.jsOMS = window.jsOMS || {}));

View File

@ -1,4 +1,5 @@
(function (jsOMS, undefined) {
jsOMS.Autoloader = {};
jsOMS.Account = {};
jsOMS.Asset = {};
jsOMS.Auth = {};
@ -32,4 +33,62 @@
jsOMS.Utils = {};
jsOMS.Validation = {};
jsOMS.Views = {};
jsOMS.Autoloader.loaded = [];
jsOMS.Autoloader.namespaced = [];
jsOMS.Autoloader.defineNamespace = function(namespace)
{
if(jsOMS.Autoloader.namespaced.indexOf(namespace) === -1) {
let paths = namespace.split('.');
paths.splice(0, 1);
let length = paths.length,
current = jsOMS;
for(let i = 0; i < length; i++) {
if(current[paths[i]] === 'undefined') {
current[paths[i]] = {};
}
current = current[paths[i]];
}
jsOMS.Autoloader.namespaced.push(namespace);
}
};
jsOMS.Autoloader.initPreloaded = function()
{
let scripts = document.getElementsByTagName('script'),
length = scripts.length;
for(let i = 0; i < length; i++) {
scripts[i].src.replace(URL + '/', '');
if(jsOMS.Autoloader.loaded.indexOf(scripts[i].src) === -1) {
jsOMS.Autoloader.loaded.push(scripts[i].src);
}
}
};
jsOMS.Autoloader.setPreloaded = function(file)
{
if(jsOMS.Autoloader.loaded.indexOf(file) === -1) {
jsOMS.Autoloader.loaded.push(file);
}
};
jsOMS.Autoloader.include = function(file, callback)
{
let length = file.length;
for(let i = 0; i < length; i++) {
if(jsOMS.Autoloader.loaded.indexOf(file) === -1) {
// todo: implement asset loading and pass callback
jsOMS.Autoloader.loaded.push(file);
}
}
};
}(window.jsOMS = window.jsOMS || {}));