CatalogNode.js
3.99 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/**
* 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(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();*/
//});
},
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();
});
}
});