AmdaModule.js 2.6 KB
/** 
 * Project  : AMDA-NG4
 * Name     : AmdaModule.js
 * @class   amdaDesktop.AmdaModule 
 * @extends Ext.ux.desktop.Module
 * @brief   Generic Module controller definition for AMDA project
 * @author  CDA
 * @version $Id: AmdaModule.js 1761 2013-09-13 13:18:03Z myriam $
 * @todo define createWindow method for simple applications here ?
 *******************************************************************************
 *    FT Id     :   Date   : Name - Description
 *******************************************************************************
 *  :           :08/06/2011: CDA - Migration extjs4
 *  :           :09/06/2011: elena - Init method for Applications without launchers now is defined here 
 */

Ext.define('amdaDesktop.AmdaModule', {
	extend: 'Ext.ux.desktop.Module',

    /**
     * @cfg {String} id
     * @required
     */
	id : '',
    /**
     * @cfg {String} icon
     * @required
     */
	icon : '',
    /**
     * @cfg {String} title
     * @required
     */
	title : '',
    /**
     * @cfg {String} contentId
     * @required
     */
	contentId : '',
	
	constructor : function(config){
		this.callParent(arguments);
	},

	/**
	* Module without launcher in Start Menu
	*/
	init: function(){		
			this.launcher = null; 
		},
	
	/**
	 * Function which return the UI content of this module
	 * @return {Object} The Ui content class of this module
	 */
	getUiContent : function (){
	    return Ext.getCmp(this.contentId);
	},

       
	/**
	 * Window Creation method of the Module
	 */
	createWindow : function (onshowfn) {
	  
		var desktop = this.app.getDesktop();		
		var win = desktop.getWindow(this.id);	

		if (!win) {
			win = desktop.createWindow({
				id : this.id,
				title : this.title,
				width : this.width,
			        minWidth : this.width,
				height : this.height,
				minHeight: this.height,
				iconCls : this.icon,
				border : false,
				//constrainHeader : true,
				layout : 'fit',
				stateful : true,
				stateId : this.id,
				stateEvents: ['move','show','resize'],
				tools: [
			         {
			        	type:'help',
			        	qtip: this.helpTitle,
			        	scope:this,
			        	handler: function(event, toolEl, panel){
			        		var me = this;
			        		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
			        			module.createWindow(me.helpFile, me.helpTitle);
			        		});
					    }
			         }
				],
				items : [ 
				 {
				 	    xtype :  this.uiType,					  
					    id : this.contentId
				  }	
				]
			});
	            }
	 
		if (onshowfn)
			win.on({
			show : onshowfn,
        		scope : this
        	});
		
		win.show();
	}
	
});