Commit f981cd96df28cd252de796054681cf0e41d1b70f
1 parent
f4803ed9
Exists in
master
and in
93 other branches
visu ok reste les fonctionalites
Showing
1 changed file
with
318 additions
and
272 deletions
Show diff stats
js/app/models/MyDataParamNode.js
... | ... | @@ -8,279 +8,325 @@ |
8 | 8 | * @version $Id: MyDataParamNode.js 2683 2014-12-02 10:58:53Z elena |
9 | 9 | */ |
10 | 10 | |
11 | +Ext.define('amdaModel.MyDataParamComponentNode', { | |
12 | + extend: 'amdaModel.InteractiveNode', | |
13 | + | |
14 | + text: '', | |
15 | + | |
16 | + constructor : function(config) | |
17 | + { | |
18 | + this.callParent(arguments); | |
19 | + this.set('text', config && config.text ? config.text : this.text); | |
20 | + this.set('iconCls', 'icon-scalar'); | |
21 | + this.set('leaf',true); | |
22 | + this.set('isParameter',true); | |
23 | + }, | |
24 | + localMenuItems : function(){ | |
25 | + var menuItems= | |
26 | + [{ | |
27 | + fnId : 'leaf-plotParam', | |
28 | + text : 'Plot Parameter', | |
29 | + hidden : true | |
30 | + }, { | |
31 | + fnId : 'leaf-downParam', | |
32 | + text : 'Download Parameter', | |
33 | + hidden : true | |
34 | + }] | |
35 | + return menuItems; | |
36 | + }, | |
37 | + getAllContextMenuItems: function(){ | |
38 | + return this.localMenuItems (); | |
39 | +}, | |
40 | +}); | |
41 | + | |
42 | + | |
11 | 43 | Ext.define('amdaModel.MyDataParamNode', { |
12 | - | |
13 | - extend: 'amdaModel.InteractiveNode', | |
14 | - | |
15 | - fields : [ // { name : 'linkedFile', persist: false}, | |
16 | - { name : 'linkedMask', persist: false}, | |
17 | - { name : 'fileObject', persist: false}, | |
18 | - { name : 'size', persist: false}, | |
19 | - { name : 'isSpectra', type: 'boolean', defaultValue: false, persist: false } | |
20 | - ], | |
21 | - | |
22 | - statics:{ | |
23 | - nodeType: 'myDataParam', | |
24 | - objectName : 'Parameter' | |
25 | - }, | |
26 | - | |
27 | - constructor : function(config) | |
28 | - { | |
29 | - this.callParent(arguments); | |
30 | - this.set('moduleId',myDesktopApp.dynamicModules.my_data.id); | |
31 | - this.set('objectDataModel','amdaModel.FileParamObject'); | |
32 | - if (this.get('isParameter')) { | |
33 | - if (this.get('size') == 1) | |
34 | - this.set('iconCls', 'icon-scalar'); | |
35 | - else if(this.get('size') == 3) | |
36 | - this.set('iconCls', 'icon-vector'); | |
37 | - else | |
38 | - this.set('iconCls', 'icon-unknowntype'); | |
39 | - } | |
40 | - | |
41 | - if (this.get('isSpectra')) this.set('iconCls', 'icon-spectra'); | |
42 | - }, | |
43 | - | |
44 | - localMenuItems : function() | |
45 | - { | |
46 | - var menuItems = | |
47 | - [{ | |
48 | - fnId : 'root-upload', | |
49 | - text : 'Upload File', | |
50 | - hidden : true | |
51 | - }, { | |
52 | - fnId : 'dire-upload', | |
53 | - text : 'Upload File', | |
54 | - hidden : true | |
55 | - }, { | |
56 | - fnId : 'leaf-upload', | |
57 | - text : 'Upload File', | |
58 | - hidden : true | |
59 | - },{ | |
60 | - fnId : 'leaf-plotParam', | |
61 | - text : 'Plot Parameter', | |
62 | - hidden : true | |
63 | - }, { | |
64 | - fnId : 'leaf-downParam', | |
65 | - text : 'Download Parameter', | |
66 | - hidden : true | |
67 | - }, { | |
68 | - fnId : 'para-plotParam', | |
69 | - text : 'Plot Parameter', | |
70 | - hidden : true | |
71 | - }, { | |
72 | - fnId : 'para-downParam', | |
73 | - text : 'Download Parameter', | |
74 | - hidden : true | |
75 | - }]; | |
76 | - return menuItems; | |
77 | - }, | |
78 | - | |
79 | - getAllContextMenuItems: function() | |
80 | - { | |
81 | - var menuItems = this.allMenuItems('Parameter'); | |
82 | - var locMenuItems = this.localMenuItems(); | |
83 | - | |
84 | - return Ext.Array.merge(menuItems,locMenuItems); | |
85 | - }, | |
86 | - | |
87 | - onMenuItemClick : function(menu,item,event) | |
88 | - { | |
89 | - var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length); | |
90 | - | |
91 | - switch (fnId) | |
92 | - { | |
93 | - case 'deleteNode': | |
94 | - this.deleteNode(); | |
95 | - break; | |
96 | - | |
97 | - case 'createDir': | |
98 | - this.createDir(); | |
99 | - break; | |
100 | - | |
101 | - case 'createLeaf': | |
102 | - this.createLeaf(this); | |
103 | - break; | |
104 | - | |
105 | - case 'renameNode': | |
106 | - this.renameNode(); | |
107 | - break; | |
108 | - | |
109 | - case 'editLeaf': | |
110 | - this.editLeaf(); | |
111 | - break; | |
112 | - | |
113 | - case 'upload': | |
114 | - this.uploadFile(); | |
115 | - break; | |
116 | - | |
117 | - case 'plotParam': | |
118 | - this.createPlot(this); | |
119 | - break; | |
120 | - | |
121 | - case 'downParam': | |
122 | - this.createDownload(this); | |
123 | - break; | |
124 | - | |
125 | - default: | |
126 | - break; | |
127 | - } // switch end | |
128 | - }, | |
129 | - | |
130 | - uploadFile: function() { | |
131 | - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) { | |
132 | - module.createWindow(); | |
133 | - }); | |
134 | - }, | |
135 | - | |
136 | - editLeaf: function() | |
137 | - { | |
138 | - // load the rootNode and recursively all its child nodes | |
139 | - // to know all names of DerivedParameters | |
140 | - var me = this; | |
141 | - amdaModel.InteractiveNode.preloadNodes(this.getRootNode(), | |
142 | - function() | |
143 | - { | |
144 | - if (me.get('object')) | |
145 | - { | |
146 | - if (me.get('fileObject')) | |
147 | - // launch edition of parameter into parameter module | |
148 | - me.editInModule(); | |
149 | - else | |
150 | - AmdaAction.getObject(me.get('object').get('file'), amdaModel.MyDataNode.nodeType, me.getFileObjectCallback, me); | |
151 | - } | |
152 | - else | |
153 | - { | |
154 | - // call the ext method to get the details of parameter | |
155 | - // the edition of real parameter is done into callback method getObjectCallback | |
156 | - AmdaAction.getObject(me.get('id'), me.get('nodeType'), me.getObjectCallback, me); | |
157 | - } | |
158 | - }); | |
159 | - }, | |
160 | - | |
161 | - // special case file object should be also loaded | |
162 | - getObjectCallback : function(result,remoteEvent){//result, e) { | |
163 | - var t = remoteEvent.getTransaction(); | |
164 | - if (result) { | |
165 | - if (result.id) { | |
166 | - var paramObj = Ext.create(this.get('objectDataModel'), result); | |
167 | - // set parameter into node | |
168 | - this.set('object',paramObj); | |
169 | - | |
170 | - paramObj.set('tableDef', result['tableDef']); | |
171 | - | |
172 | - if (paramObj.get('mask')) var file = paramObj.get('mask'); | |
173 | - else var file = paramObj.get('file'); | |
174 | - | |
175 | - AmdaAction.getObject(file, amdaModel.MyDataNode.nodeType, | |
176 | - this.getFileObjectCallback, this); | |
177 | - } | |
178 | - else { | |
179 | - myDesktopApp.errorMsg(result.error); | |
180 | - } | |
181 | - } | |
182 | - else { | |
183 | - // EXCEPTION : parameter not found !? | |
184 | - myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '" | |
185 | - +this.get('name')+"' found!"); | |
186 | - //TODO: adding an error log | |
187 | - } | |
188 | - }, | |
189 | - | |
190 | - getFileObjectCallback : function(result,remoteEvent){//result, e) { | |
191 | - var t = remoteEvent.getTransaction(); | |
192 | - if (result) { | |
193 | - if (result.success) { | |
194 | - var paramObj = Ext.create('amdaModel.FileObject', result); | |
195 | - this.set('fileObject', paramObj); | |
196 | - // Edition of parameter into parameter Module | |
197 | - this.editInModule(); | |
198 | - } | |
199 | - else { | |
200 | - myDesktopApp.errorMsg(result.error); | |
201 | - } | |
202 | - } | |
203 | - else { | |
204 | - // EXCEPTION : parameter not found !? | |
205 | - myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '" | |
206 | - +this.get('name')+"' found!"); | |
207 | - } | |
208 | - }, | |
209 | - | |
210 | - /* | |
211 | - * Mask was possibly changed update this info | |
212 | - */ | |
213 | - updateMask : function(mask) | |
214 | - { | |
215 | - var myParamRootNode = this.getRootNode(); | |
216 | - if (myParamRootNode.isExpanded) { | |
217 | - Ext.Array.each(myParamRootNode.childNodes, function(node) { | |
218 | - if (node.get('linkedMask') && node.get('linkedMask').indexOf(mask) != -1 ) { | |
219 | - node.set('linkedMask',mask); | |
220 | - if (node.get('info')) { | |
221 | - var info = node.get('info').split("<br/>"); | |
222 | - node.set('info',info[0] + "<br/>" + info[1] + "<br/> Mask: " + mask); | |
223 | - } | |
224 | - } | |
225 | - | |
226 | - }); | |
227 | - } | |
228 | - }, | |
229 | - | |
230 | - updateMyData : function(){ | |
231 | - // reload myFiles Tree in explorer | |
232 | - var explorerTree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID); | |
233 | - if (explorerTree) { | |
234 | - var explorerTreeStore = explorerTree.getStore(); | |
235 | - var explorerRoot = explorerTreeStore.getRootNode().findChild('text','My Files'); | |
236 | - | |
237 | - var explorerPath = '/root/myData-treeRootNode/'; | |
238 | - | |
239 | - explorerTreeStore.reload({node : explorerRoot, | |
240 | - params : { nodeType: 'myData'}, | |
241 | - callback : function(){ | |
242 | - explorerTree.selectPath(explorerPath); | |
243 | - } | |
244 | - }); | |
245 | - } | |
246 | - }, | |
44 | + | |
45 | + extend: 'amdaModel.InteractiveNode', | |
46 | + | |
47 | + fields: [// { name : 'linkedFile', persist: false}, | |
48 | + {name: 'linkedMask', persist: false}, | |
49 | + {name: 'fileObject', persist: false}, | |
50 | + {name: 'size', persist: false}, | |
51 | + {name: 'isSpectra', type: 'boolean', defaultValue: false, persist: false} | |
52 | + ], | |
53 | + | |
54 | + statics: { | |
55 | + nodeType: 'myDataParam', | |
56 | + objectName: 'Parameter' | |
57 | + }, | |
58 | + | |
59 | + constructor: function (config) | |
60 | + { | |
61 | + this.callParent(arguments); | |
62 | + this.set('moduleId', myDesktopApp.dynamicModules.my_data.id); | |
63 | + this.set('objectDataModel', 'amdaModel.FileParamObject'); | |
64 | + if (this.get('isParameter')) { | |
65 | + if (this.get('size') == 1) | |
66 | + this.set('iconCls', 'icon-scalar'); | |
67 | + else if (this.get('size') == 3) | |
68 | + this.set('iconCls', 'icon-vector'); | |
69 | + else | |
70 | + this.set('iconCls', 'icon-unknowntype'); | |
71 | + } | |
72 | + if (this.get('size') > 1){ | |
73 | + this.updateComponents(); | |
74 | + } | |
75 | + | |
76 | + if (this.get('isSpectra')) | |
77 | + this.set('iconCls', 'icon-spectra'); | |
78 | + }, | |
79 | + updateComponents: function () { | |
80 | + this.removeAll(); | |
81 | + if (!this.get('isParameter')) { | |
82 | + return; | |
83 | + } | |
84 | + for (var i = 0; i < this.get('size'); ++i) { | |
85 | + var ch = new amdaModel.MyDataParamComponentNode({text: this.get('text') + '(' + i + ')' | |
86 | + }); | |
87 | + ch.set('nodeType', 'myDataParam'); | |
88 | + this.appendChild(ch); | |
89 | + } | |
90 | + | |
91 | + }, | |
247 | 92 | |
248 | - isParameter : function(){ | |
249 | - return this.get('isParameter'); | |
250 | - }, | |
251 | - | |
252 | - specialUpdate : function(res, timeUpdate) | |
253 | - { | |
254 | - if (timeUpdate && res.info) | |
255 | - { | |
256 | - var startStop = res.info.split("<br/>"); | |
257 | - var globalStart = startStop[1].substr(0,19); | |
258 | - var globalStop = startStop[1].substr(20); | |
259 | - | |
260 | - this.set('globalStart', globalStart); | |
261 | - this.set('globalStop', globalStop); | |
262 | - | |
263 | - if (res.mask) | |
264 | - this.set('linkedMask', res.mask); | |
265 | - if (res.size) | |
266 | - this.set('size', res.size); | |
267 | - } | |
268 | - | |
269 | - if (res.isSpectra) { | |
270 | - this.set('iconCls', 'icon-spectra'); | |
271 | - } | |
272 | - else if (res.size == 3) { | |
273 | - this.set('iconCls', 'icon-vector'); | |
274 | - } | |
275 | - else if (res.size > 1) { | |
276 | - this.set('iconCls', 'icon-unknowntype'); | |
277 | - } | |
278 | - | |
279 | - // update my data on possible mask change | |
280 | - if (res.updateMyData) { | |
281 | - this.updateMyData(); | |
282 | - this.updateMask(res.mask); | |
283 | - } | |
284 | - } | |
93 | + | |
94 | + localMenuItems: function () | |
95 | + { | |
96 | + var menuItems = | |
97 | + [{ | |
98 | + fnId: 'root-upload', | |
99 | + text: 'Upload File', | |
100 | + hidden: true | |
101 | + }, { | |
102 | + fnId: 'dire-upload', | |
103 | + text: 'Upload File', | |
104 | + hidden: true | |
105 | + }, { | |
106 | + fnId: 'leaf-upload', | |
107 | + text: 'Upload File', | |
108 | + hidden: true | |
109 | + }, { | |
110 | + fnId: 'leaf-plotParam', | |
111 | + text: 'Plot Parameter', | |
112 | + hidden: true | |
113 | + }, { | |
114 | + fnId: 'leaf-downParam', | |
115 | + text: 'Download Parameter', | |
116 | + hidden: true | |
117 | + }, { | |
118 | + fnId: 'para-plotParam', | |
119 | + text: 'Plot Parameter', | |
120 | + hidden: true | |
121 | + }, { | |
122 | + fnId: 'para-downParam', | |
123 | + text: 'Download Parameter', | |
124 | + hidden: true | |
125 | + }]; | |
126 | + return menuItems; | |
127 | + }, | |
128 | + | |
129 | + getAllContextMenuItems: function () | |
130 | + { | |
131 | + var menuItems = this.allMenuItems('Parameter'); | |
132 | + var locMenuItems = this.localMenuItems(); | |
133 | + | |
134 | + return Ext.Array.merge(menuItems, locMenuItems); | |
135 | + }, | |
136 | + | |
137 | + onMenuItemClick: function (menu, item, event) | |
138 | + { | |
139 | + var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length); | |
140 | + | |
141 | + switch (fnId) | |
142 | + { | |
143 | + case 'deleteNode': | |
144 | + this.deleteNode(); | |
145 | + break; | |
146 | + | |
147 | + case 'createDir': | |
148 | + this.createDir(); | |
149 | + break; | |
150 | + | |
151 | + case 'createLeaf': | |
152 | + this.createLeaf(this); | |
153 | + break; | |
154 | + | |
155 | + case 'renameNode': | |
156 | + this.renameNode(); | |
157 | + break; | |
158 | + | |
159 | + case 'editLeaf': | |
160 | + this.editLeaf(); | |
161 | + break; | |
162 | + | |
163 | + case 'upload': | |
164 | + this.uploadFile(); | |
165 | + break; | |
166 | + | |
167 | + case 'plotParam': | |
168 | + this.createPlot(this); | |
169 | + break; | |
170 | + | |
171 | + case 'downParam': | |
172 | + this.createDownload(this); | |
173 | + break; | |
174 | + | |
175 | + default: | |
176 | + break; | |
177 | + } // switch end | |
178 | + }, | |
179 | + | |
180 | + uploadFile: function () { | |
181 | + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) { | |
182 | + module.createWindow(); | |
183 | + }); | |
184 | + }, | |
185 | + | |
186 | + editLeaf: function () | |
187 | + { | |
188 | + // load the rootNode and recursively all its child nodes | |
189 | + // to know all names of DerivedParameters | |
190 | + var me = this; | |
191 | + amdaModel.InteractiveNode.preloadNodes(this.getRootNode(), | |
192 | + function () | |
193 | + { | |
194 | + if (me.get('object')) | |
195 | + { | |
196 | + if (me.get('fileObject')) | |
197 | + // launch edition of parameter into parameter module | |
198 | + me.editInModule(); | |
199 | + else | |
200 | + AmdaAction.getObject(me.get('object').get('file'), amdaModel.MyDataNode.nodeType, me.getFileObjectCallback, me); | |
201 | + } else | |
202 | + { | |
203 | + // call the ext method to get the details of parameter | |
204 | + // the edition of real parameter is done into callback method getObjectCallback | |
205 | + AmdaAction.getObject(me.get('id'), me.get('nodeType'), me.getObjectCallback, me); | |
206 | + } | |
207 | + }); | |
208 | + }, | |
209 | + | |
210 | + // special case file object should be also loaded | |
211 | + getObjectCallback: function (result, remoteEvent) {//result, e) { | |
212 | + var t = remoteEvent.getTransaction(); | |
213 | + if (result) { | |
214 | + if (result.id) { | |
215 | + var paramObj = Ext.create(this.get('objectDataModel'), result); | |
216 | + // set parameter into node | |
217 | + this.set('object', paramObj); | |
218 | + | |
219 | + paramObj.set('tableDef', result['tableDef']); | |
220 | + | |
221 | + if (paramObj.get('mask')) | |
222 | + var file = paramObj.get('mask'); | |
223 | + else | |
224 | + var file = paramObj.get('file'); | |
225 | + | |
226 | + AmdaAction.getObject(file, amdaModel.MyDataNode.nodeType, | |
227 | + this.getFileObjectCallback, this); | |
228 | + } else { | |
229 | + myDesktopApp.errorMsg(result.error); | |
230 | + } | |
231 | + } else { | |
232 | + // EXCEPTION : parameter not found !? | |
233 | + myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '" | |
234 | + + this.get('name') + "' found!"); | |
235 | + //TODO: adding an error log | |
236 | + } | |
237 | + }, | |
238 | + | |
239 | + getFileObjectCallback: function (result, remoteEvent) {//result, e) { | |
240 | + var t = remoteEvent.getTransaction(); | |
241 | + if (result) { | |
242 | + if (result.success) { | |
243 | + var paramObj = Ext.create('amdaModel.FileObject', result); | |
244 | + this.set('fileObject', paramObj); | |
245 | + // Edition of parameter into parameter Module | |
246 | + this.editInModule(); | |
247 | + } else { | |
248 | + myDesktopApp.errorMsg(result.error); | |
249 | + } | |
250 | + } else { | |
251 | + // EXCEPTION : parameter not found !? | |
252 | + myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '" | |
253 | + + this.get('name') + "' found!"); | |
254 | + } | |
255 | + }, | |
256 | + | |
257 | + /* | |
258 | + * Mask was possibly changed update this info | |
259 | + */ | |
260 | + updateMask: function (mask) | |
261 | + { | |
262 | + var myParamRootNode = this.getRootNode(); | |
263 | + if (myParamRootNode.isExpanded) { | |
264 | + Ext.Array.each(myParamRootNode.childNodes, function (node) { | |
265 | + if (node.get('linkedMask') && node.get('linkedMask').indexOf(mask) != -1) { | |
266 | + node.set('linkedMask', mask); | |
267 | + if (node.get('info')) { | |
268 | + var info = node.get('info').split("<br/>"); | |
269 | + node.set('info', info[0] + "<br/>" + info[1] + "<br/> Mask: " + mask); | |
270 | + } | |
271 | + } | |
272 | + | |
273 | + }); | |
274 | + } | |
275 | + }, | |
276 | + | |
277 | + updateMyData: function () { | |
278 | + // reload myFiles Tree in explorer | |
279 | + var explorerTree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID); | |
280 | + if (explorerTree) { | |
281 | + var explorerTreeStore = explorerTree.getStore(); | |
282 | + var explorerRoot = explorerTreeStore.getRootNode().findChild('text', 'My Files'); | |
283 | + | |
284 | + var explorerPath = '/root/myData-treeRootNode/'; | |
285 | + | |
286 | + explorerTreeStore.reload({node: explorerRoot, | |
287 | + params: {nodeType: 'myData'}, | |
288 | + callback: function () { | |
289 | + explorerTree.selectPath(explorerPath); | |
290 | + } | |
291 | + }); | |
292 | + } | |
293 | + }, | |
294 | + | |
295 | + isParameter: function () { | |
296 | + return this.get('isParameter'); | |
297 | + }, | |
298 | + | |
299 | + specialUpdate: function (res, timeUpdate) | |
300 | + { | |
301 | + if (timeUpdate && res.info) | |
302 | + { | |
303 | + var startStop = res.info.split("<br/>"); | |
304 | + var globalStart = startStop[1].substr(0, 19); | |
305 | + var globalStop = startStop[1].substr(20); | |
306 | + | |
307 | + this.set('globalStart', globalStart); | |
308 | + this.set('globalStop', globalStop); | |
309 | + | |
310 | + if (res.mask) | |
311 | + this.set('linkedMask', res.mask); | |
312 | + if (res.size) | |
313 | + this.set('size', res.size); | |
314 | + } | |
315 | + | |
316 | + if (res.isSpectra) { | |
317 | + this.set('iconCls', 'icon-spectra'); | |
318 | + } else if (res.size == 3) { | |
319 | + this.set('iconCls', 'icon-vector'); | |
320 | + } else if (res.size > 1) { | |
321 | + this.set('iconCls', 'icon-unknowntype'); | |
322 | + } | |
323 | + // if (res.size > 1) | |
324 | + // this.updateComponents(); | |
325 | + // update my data on possible mask change | |
326 | + if (res.updateMyData) { | |
327 | + this.updateMyData(); | |
328 | + this.updateMask(res.mask); | |
329 | + } | |
330 | + } | |
285 | 331 | |
286 | 332 | }); |
... | ... |