CatalogNode.js 1.87 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
		}];
	
		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();
		});
	}
});