blob: 635d77ed884c91337468f8c7600fe2cb21e88f8a [file] [log] [blame]
/*******************************************************************************
* Tizen UI Builder Framework 0.2.3
* Page System manager
*
* @generated Tizen UI Builder
* @attribute managed, readonly, static
*******************************************************************************
*/
/**
* Page base class
* @param {String} pageID
*/
function _page(pageID) {
this.pageID = pageID;
this.jqID = "#" + this.pageID;
/**
* Full path for html file.
* @type String
*/
this.htmlPath = undefined; // will be replaced.
/**
* Full path for css file.
* @type String
*/
this.managedCssPath = undefined; // will be replaced.
/**
* Full path for css file.
* @type String
*/
this.cssPath = undefined; // will be replaced.
/**
* Page object
* @type jQueryObject
*/
this.obj = undefined;
// default event handler
/**
* event-handler onpagebeforecreate(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpagebeforecreate = function(event) {};
/**
* event-handler onpagecreate(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpagecreate = function(event) {};
/**
* event-handler onpageinit(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpageinit = function(event) {};
/**
* event-handler onpagebeforeshow(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpagebeforeshow = function(event) {};
/**
* event-handler onpageshow(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpageshow = function(event) {};
/**
* event-handler onpagebeforehide(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpagebeforehide = function(event) {};
/**
* event-handler onpagehide(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpagehide = function(event) {};
/**
* event-handler onpageremove(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onpageremove = function(event) {};
/**
* event-handler onupdatelayout(event)
* @param {Object} event
* @returns {Boolean}
*/
this.onupdatelayout = function(event) {};
}
// default event handler
/**
* function _init_page(initFunc)
* @param {function} initFunc
* @param {Boolean} isStartPage
*/
_page.prototype._init_page = function(initFunc, isStartPage) {
// page object
var _obj = this.obj = $(this.jqID);
var _basePage = this;
_obj.live("pageinit", initFunc);
var _cssPath = this.cssPath;
var _managedCssPath = this.managedCssPath;
var _currentPageId = this.pageID;
_obj.live("pageinit", function(event) {
var managedCssLink = document.createElement('link');
managedCssLink.setAttribute('rel', 'stylesheet');
managedCssLink.setAttribute('href', _managedCssPath);
var cssLink = document.createElement('link');
cssLink.setAttribute('rel', 'stylesheet');
cssLink.setAttribute('href', _cssPath);
var head = document.getElementsByTagName('head')[0];
if(head) {
$(head).append(cssLink);
$(head).append(managedCssLink);
}
});
_obj.live("pagebeforeshow", function(event) {
app.setCurrentPageId(_currentPageId);
});
_obj.live("pagebeforehide", function(event) {
app.setCurrentPageId(undefined);
});
_obj.live("pageremove", function(event) {
var cssLinks = document.getElementsByTagName('head')[0].getElementsByTagName('link');
for (var i = (cssLinks.length-1); i >= 0; i--) {
var link = cssLinks[i];
if (link.getAttribute('href') == _managedCssPath || link.getAttribute('href') == _cssPath) {
link.parentNode.removeChild(link);
}
}
});
_obj.live("pagehide", function(event) {
if (app.getCurrentPageId() == undefined) {
tizen.application.getCurrentApplication().exit();
}
});
_obj.live("pagebeforecreate", function(event){_basePage.onpagebeforecreate(event);});
_obj.live("pagecreate", function(event){_basePage.onpagecreate(event);});
_obj.live("pageinit", function(event){_basePage.onpageinit(event);});
_obj.live("pagebeforeshow", function(event){_basePage.onpagebeforeshow(event);});
_obj.live("pageshow", function(event){_basePage.onpageshow(event);});
_obj.live("pagebeforehide", function(event){_basePage.onpagebeforehide(event);});
_obj.live("pagehide", function(event){_basePage.onpagehide(event);});
_obj.live("pageremove", function(event){_basePage.onpageremove(event);});
_obj.live("updatelayout", function(event){_basePage.onupdatelayout(event);});
};
/**
* Page manager class
* @constructor
* @param {String} pageDir
* @returns {_pageManager}
*/
function _pageManager() {
var _count = 0;
var _pages = [];
/**
* getVersion()
* @returns {String}
*/
this.getVersion = function() {
return "0.2.4";
};
/**
* addPage(page)
* @param {_page} pageObj
* @param {String} htmlPath
* @param {String} cssPath
* @param {String} managedCssPath
* @returns {Number} pages count
*/
this.addPage = function(pageObj) {
if (pageObj instanceof _page === false) {
throw page + " is not instance of _page";
}
_pages[pageObj.pageID] = pageObj;
return (++_count);
};
/**
* getHtmlPath(pageID)
* @param {String} pageID
* @returns {String}
*/
this.getHtmlPath = function(pageID) {
var pageObj = _pages[pageID];
if (pageObj == undefined) {
throw pageID + " is not exist in pageManager";
} else {
return pageObj.htmlPath;
}
};
/**
* getPath(pageID) - deprecated. use getHtmlPath()
* @param {String} pageID
* @returns {String}
*/
this.getPath = this.getHtmlPath;
/**
* getManagedCssPath(pageID)
* @param {String} pageID
* @returns {String}
*/
this.getManagedCssPath = function(pageID) {
var pageObj = _pages[pageID];
if (pageObj == undefined) {
throw pageID + " is not exist in pageManager";
} else {
return pageObj.managedCssPath;
}
};
/**
* getCssPath(pageID)
* @param {String} pageID
* @returns {String}
*/
this.getCssPath = function(pageID) {
var pageObj = _pages[pageID];
if (pageObj == undefined) {
throw pageID + " is not exist in pageManager";
} else {
return pageObj.cssPath;
}
};
/**
* getPageObj(pageID)
* @param {String} pageID
* @param {Object} options
*/
this.getPageObj = function(pageID) {
var pageObj = _pages[pageID];
if (pageObj == undefined) {
throw pageID + " is not exist in pageManager";
} else {
return pageObj;
}
};
/**
* changePage(pageID, options)
* @param {String} pageID
* @param {Object} options
*/
this.changePage = function(pageID, options) {
$.mobile.changePage(pageManager.getHtmlPath(pageID), options);
};
}
var pageManager = new _pageManager("");
/**
* app base class
*/
function _app() {
/**
* startPageId
* @private
*/
var startPageId = undefined;
/**
* startPage
* @deprecated Since version 2.1. You get the startPage using PageManager.
*/
/*this.startPage = undefined;*/
/**
* currentPageId
* @private
*/
var currentPageId = undefined;
/**
* masterPagePath
* @private
*/
var masterPagePath = undefined;
function init() {
}
this.setStartPageId = function(pageId) {
startPageId = pageId;
}
this.getStartPageId = function() {
return startPageId;
};
this.setMasterPagePath = function(path) {
masterPagePath = path;
};
this.getMasterPagePath = function() {
return masterPagePath;
}
this.setCurrentPageId = function(pageId) {
currentPageId = pageId;
};
this.getCurrentPageId = function() {
return currentPageId;
}
/**
* onload()
*/
this.onload = function() {};
/**
* onunload()
*/
this.onunload = function() {};
/**
* onshow()
*/
this.onshow = function() {};
/**
* onhide()
*/
this.onhide = function() {};
}
var app = new _app();