125 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * @file page_handler.js
 | 
						|
 * @author frtk@tetalab
 | 
						|
 */
 | 
						|
 | 
						|
NPGClient.PageHandler = {
 | 
						|
 | 
						|
  currPage: '',
 | 
						|
  pages: [],  
 | 
						|
    
 | 
						|
  //
 | 
						|
  setup: function() {
 | 
						|
    var self = this; 
 | 
						|
    self.currPage = NPGClient.LOGIN.NAME;
 | 
						|
    // create login page 
 | 
						|
    self.createLoginPage();
 | 
						|
    // create start menu page
 | 
						|
    self.createStartMenuPage();
 | 
						|
  },
 | 
						|
 | 
						|
  //
 | 
						|
  setCurrPage: function(n) {
 | 
						|
    var self = this; 
 | 
						|
    self.currPage = n;
 | 
						|
  },
 | 
						|
 | 
						|
  //
 | 
						|
  moveToPage: function(n) {
 | 
						|
    var self = this; 
 | 
						|
    switch (n) {
 | 
						|
      case NPGClient.LOGIN.NAME:
 | 
						|
        NPGClient.Utils.resetName();
 | 
						|
        NPGClient.PageHandler.getCurrPageUIElemByName('login_cursor').reset();
 | 
						|
        self.setCurrPage(NPGClient.LOGIN.NAME); 
 | 
						|
        break;
 | 
						|
      default: 
 | 
						|
        break;
 | 
						|
    }
 | 
						|
  },
 | 
						|
 | 
						|
  //
 | 
						|
  getCurrPageUIElems: function() {
 | 
						|
    var self = this;
 | 
						|
    return self.getPageByName(self.currPage).getUIElems();
 | 
						|
  },
 | 
						|
 | 
						|
  //
 | 
						|
  getCurrPageUIElemByName: function(name) {
 | 
						|
    var self = this;
 | 
						|
    if (self.pages.length > 0) {
 | 
						|
      for (var i = 0; i < self.pages.length; i++) {
 | 
						|
        if (self.pages[i].name == self.currPage) {
 | 
						|
          return self.pages[i].getUIElemByName(name);
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return undefined;
 | 
						|
  },
 | 
						|
 | 
						|
  // @need rework
 | 
						|
  getUIElemFromPage: function(elem, page) {
 | 
						|
    var self = this;
 | 
						|
    if (self.pages.length > 0) {
 | 
						|
      for (var i = 0; i < self.pages.length; i++) {
 | 
						|
          if (page == self.pages[i].name) {
 | 
						|
	      //	      return self.pages[i];
 | 
						|
	  }
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return undefined;
 | 
						|
  },
 | 
						|
 | 
						|
 | 
						|
  //
 | 
						|
  getPageByName: function(name) {
 | 
						|
    var self = this;
 | 
						|
    if (self.pages.length > 0) {
 | 
						|
      for (var i = 0; i < self.pages.length; i++) {
 | 
						|
        if (name == self.pages[i].name) return self.pages[i];
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return undefined;
 | 
						|
  },
 | 
						|
 | 
						|
  // create login page
 | 
						|
  createLoginPage: function() {
 | 
						|
    //
 | 
						|
    console.log('[NPGClient] Creating Login Page');
 | 
						|
    var self = this;
 | 
						|
    var p = new NPGClient.AppPage(NPGClient.LOGIN.NAME);
 | 
						|
    // Title label     
 | 
						|
    p.addUIObject(new NPGClient.UILabel('login_title', NPGClient.LOGIN.TITLE));
 | 
						|
    // name input
 | 
						|
    p.addUIObject(new NPGClient.UIInputText('login_input', NPGClient.LOGIN.INPUT));
 | 
						|
    // Server status
 | 
						|
    p.addUIObject(new NPGClient.UIStatusText('login_servstat', NPGClient.LOGIN.SERVSTATUS));    
 | 
						|
    // test cursor
 | 
						|
    p.addUIObject(new NPGClient.UICursor('login_cursor', NPGClient.LOGIN.CURSOR)); 
 | 
						|
    //
 | 
						|
    self.pages.push(p);  
 | 
						|
  },
 | 
						|
 | 
						|
 | 
						|
  // create login page
 | 
						|
  createStartMenuPage: function() {
 | 
						|
    //
 | 
						|
    console.log('[NPGClient] Creating Start Menu Page');
 | 
						|
    var self = this;
 | 
						|
    var p = new NPGClient.AppPage(NPGClient.STARTMENU.NAME);
 | 
						|
    // Title label     
 | 
						|
    p.addUIObject(new NPGClient.UILabel('login_title', NPGClient.STARTMENU.TITLE));
 | 
						|
    // Start Menu
 | 
						|
 | 
						|
    // Server Players and Games status
 | 
						|
 | 
						|
    //
 | 
						|
    self.pages.push(p);  
 | 
						|
  },
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
}; 
 | 
						|
 |