CatalogNode.js 2.29 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;
    },
    
    ttDownload : function() { 
	    alert('NOT IMPLEMENTED YET');
    },
    
     downloadMulti: function() { 
	    alert('NOT IMPLEMENTED YET');
    },
    
    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(); 		  		 	      
		 
        });
    }
});