CatalogNode.js 3.13 KB
/** 
 * Project  : AMDA-NG
 * Name     : CatalogNode.js
 * @class   amdaModel.CatalogNode
 * @extends amdaModel.TimeTableNode
 * @brief   Basic Model of Node corresponding to a amda catalog
 * @author  elena
 */

Ext.define('amdaModel.CatalogNode', {

	extend: 'amdaModel.TimeTableNode',
    
	statics: {
		nodeType: 'catalog',
		objectName: 'Catalog'
	},

	constructor : function(config)
	{	
		this.callParent(arguments)
		this.set('moduleId',myDesktopApp.dynamicModules.catalog.id);
		this.set('objectDataModel',amdaModel.Catalog.$className);
		if (this.get('leaf')) this.set('iconCls', 'icon-catalog');
	},
    
	localMenuItems : function() {
		var menuItems =
		[
		{
			fnId : 'leaf-shareLeaf',
			text : 'Share '+this.self.objectName,
			hidden : true
		},{
			fnId : 'leaf-download',
			text : 'Download '+ this.self.objectName,
			hidden : true
		},{
			fnId : 'leaf-visu',
			text : 'Visualize '+ this.self.objectName,
			hidden : true
		},{
			fnId : 'leaf-generateTT',
			text : 'Generate Time Table ',
			hidden : true
		}
            ];
	
		return menuItems;
	},

	localMultiMenuItems : function() {
		var menuItems =
		[{
			fnId : 'mult-shareMulti',
			text : 'Share selected '+this.self.objectName+'s'
		},{
			fnId : 'mult-downloadMulti',
			text : 'Download selected '+this.self.objectName+'s'
		}];
	
		return menuItems;
	},

	shareNode: function(node) {		 
		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.catalog.id, true, function (module) {
			module.shareCatalog({'name' : node.get('text'), 'id' : node.get('id')});
		});
	},
    
	visu : function(contextNode) { 	    
		var me = this;
		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.visu.id, true, function (module) {			
			// Catalog & TimeTable nodes normally use no objects in the tree
			var obj = {'id' : me.get('id'), 'name' : me.get('text') };
			object = Ext.create(me.get('objectDataModel'), obj);       
			me.set('object',object); 						
			module.setLinkedNode(me);				
			module.createWindow();
		});
	},
                   generateTT: function(node){
                       var catObj = Ext.create('amdaModel.TimeTable');
                              var timeTabNode = Ext.create('amdaModel.TimeTableNode',{leaf : true});
                              catObj.set('relatedCatalogId', node.get('id'));
                              desc =   'Generated by CDPP/Amda Catalog Module \n';
                              if (node.get('description'))
                                  desc = desc + node.get('description');
                              catObj.set('description', desc);
                              timeTabNode.set('object',catObj);
                              var explorerTree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
                                        var ttRootNode = explorerTree.getRootNode().findChild('id', 'timeTable-treeRootNode', true);
                                        amdaModel.InteractiveNode.preloadNodes(ttRootNode.getRootNode(),
			function()
			{
				// edit newNode into Parameter Module with node as contextNode
				timeTabNode.editInModule();
			});
                                       
                       
                   }
});