CatalogNode.js
3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/**
* 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();
});
}
});