/** * 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-plot', text : 'Plot '+ 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' },{ fnId : 'mult-plotMulti', text : 'Plot 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(node) { var me = this; var visuWinFunc = function(object) { myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.visu.id, true, function (module) { module.visualize(object); }); }; amdaModel.InteractiveNode.preloadNodes(this.getRootNode(), function() { if (me.get('object')) { visuWinFunc(me.get('object')); } else { AmdaAction.getObject(me.get('id'), me.get('nodeType'), function (result,remoteEvent) { var t = remoteEvent.getTransaction(); if (result) { var paramObj = Ext.create(me.get('objectDataModel'), result); // set parameter into node me.set('object',paramObj); // Edition of parameter into parameter Module visuWinFunc(me.get('object')); } else { myDesktopApp.errorMsg(t.action + "." + t.method + " : No catalog '" + this.get('name') + "' found!"); } }, me); } }); //var me = this; //myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.visu.id, true, function (module) { // module.visualize(me); // 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();*/ //}); } });