Commit 915d6711fb5a158c886ac190dae0a50626341b98
1 parent
2e4a962c
Exists in
master
and in
82 other branches
DownloadNode now inherits from ExecutableNode + first step for code cleanup
Showing
7 changed files
with
78 additions
and
396 deletions
Show diff stats
js/app/controllers/DownloadModule.js
... | ... | @@ -22,7 +22,6 @@ Ext.define('amdaDesktop.DownloadModule', { |
22 | 22 | * @cfg {String} data models |
23 | 23 | * @required |
24 | 24 | */ |
25 | - objectDataModel : 'amdaModel.Download', | |
26 | 25 | nodeDataModel : 'amdaModel.DownloadNode', |
27 | 26 | |
28 | 27 | /** |
... | ... | @@ -30,21 +29,11 @@ Ext.define('amdaDesktop.DownloadModule', { |
30 | 29 | * @required |
31 | 30 | */ |
32 | 31 | width: 600, |
33 | - height: 600, | |
32 | + height: 620, | |
34 | 33 | uiType : 'panelDownload', |
35 | 34 | helpTitle : 'Help on Download Module', |
36 | 35 | helpFile : 'downloadHelp', |
37 | 36 | |
38 | - /** | |
39 | - * @override | |
40 | - */ | |
41 | - createWindow : function() { | |
42 | - if (!this.linkedNode){ | |
43 | - this.setLinkedNode(amdaModel.DownloadNode); | |
44 | - } | |
45 | - this.callParent(arguments); | |
46 | - }, | |
47 | - | |
48 | 37 | saveState: function() { |
49 | 38 | var uiContent = this.getUiContent(); |
50 | 39 | var form = uiContent.down('form').getForm(); |
... | ... | @@ -56,5 +45,20 @@ Ext.define('amdaDesktop.DownloadModule', { |
56 | 45 | getState : function() { |
57 | 46 | // return Ext.state.Manager.get(this.id + '_form'); |
58 | 47 | return Ext.state.Manager.get('timeinterval'); |
48 | + }, | |
49 | + | |
50 | + addParameter: function(paramNode) { | |
51 | + var me = this; | |
52 | + var desktop = this.app.getDesktop(); | |
53 | + var win = desktop.getWindow(this.id); | |
54 | + if (win) { | |
55 | + me.getUiContent().addParameter(paramNode, false); | |
56 | + win.show(); | |
57 | + } | |
58 | + else { | |
59 | + this.createWindow(function () { | |
60 | + me.getUiContent().addParameter(paramNode, true); | |
61 | + }); | |
62 | + } | |
59 | 63 | } |
60 | -}); | |
61 | 64 | \ No newline at end of file |
65 | +}); | |
... | ... |
js/app/models/BkgJobNode.js
... | ... | @@ -395,97 +395,5 @@ Ext.define('amdaModel.BkgJobNode', { |
395 | 395 | this.set('rootNode',this.myGetOwnerTree().getRootNode().findChild( 'id', rootNodeId, true)); |
396 | 396 | } |
397 | 397 | return this.get('rootNode'); |
398 | - }, | |
399 | - | |
400 | - /** | |
401 | - * @override amdaModel.ExecutableNode.execute PNG (interactive session only!!!) | |
402 | - */ | |
403 | - execute : function(arguments) | |
404 | - { | |
405 | - // Not needed to send the whole request | |
406 | - // var jsonObj = this.get('object').getJsonValues(true); | |
407 | - //TODO append jsonObj.action at server side => history!!! | |
408 | - var jsonObj = {}; | |
409 | - var isMulti = arguments[0]; | |
410 | - jsonObj.action = {name:arguments[1],arg1:arguments[2],arg2:arguments[3]}; | |
411 | - //AKKA replace resultID by folderId | |
412 | - jsonObj.folderId = this.get('object').get('folderId'); | |
413 | - //jsonObj.resultId = this.get('object').get('resultFolder'); | |
414 | - | |
415 | - this.action = jsonObj.action.name; | |
416 | - | |
417 | - // this.set('tabId', jsonObj.tabId); | |
418 | - | |
419 | - // Node exists already, interactive Session | |
420 | - var isInteractive = true; | |
421 | - var isNewTab = false; | |
422 | - | |
423 | - loadMask.show(this.get('object').get('tabId')); | |
424 | - AmdaAction.execute({nodeType : this.get('nodeType')}, jsonObj, function(res,e) | |
425 | - { | |
426 | - loadMask.hide(); | |
427 | - //AKKA - Rework of the result treatment for the integration with the new kernel | |
428 | - if (!e.status) | |
429 | - { | |
430 | - myDesktopApp.errorMsg('Internal error during request'); | |
431 | - return; | |
432 | - } | |
433 | - if (!res.success) | |
434 | - { | |
435 | - myDesktopApp.errorMsg(res.message); | |
436 | - return; | |
437 | - } | |
438 | - // NO background jobs for PNG !!!!! Timeout KILL | |
439 | - if (res.status == amdaModel.BkgJobNode.STATUS_LIST.DONE) | |
440 | - { | |
441 | - this.updateNode(res); | |
442 | - this.updateObject(res); | |
443 | - this.editNode(isNewTab, isInteractive); | |
444 | - } | |
445 | - else | |
446 | - { | |
447 | - myDesktopApp.warningMsg(res.message); | |
448 | - // keep this for case of Background Job | |
449 | - /* var id = res.id; | |
450 | - var text = 'job_' + res.pid; | |
451 | - var status = amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS; | |
452 | - var newobj = Ext.create('amdaModel.Plot', | |
453 | - { resultId : id, name : res.rawname, resultId: res.rawname}); | |
454 | - var newNode = Ext.create(this.$className, { id : id, pid : res.pid, text : text, jobType : 'request', | |
455 | - leaf : true, status : status, rawname : res.rawname, object : newobj}); | |
456 | - newNode.createJobNode(false); | |
457 | - */ | |
458 | - } | |
459 | - }, this); | |
460 | - }, | |
461 | - | |
462 | - updateNode : function(res) | |
463 | - { | |
464 | - var windowId = 'plot' + this.get('tabId')+'-win'; | |
465 | - var win = myDesktopApp.getDesktop().getWindow(windowId); | |
466 | - //TODO if it is possible to close window before getting result? | |
467 | - if (!win) | |
468 | - myDesktopApp.errorMsg('You have closed window!!!'); | |
469 | - else | |
470 | - { | |
471 | - var panelResult = win.items.items[0]; | |
472 | - panelResult.setObjectIntoNode(); | |
473 | - } | |
474 | - }, | |
475 | - | |
476 | - updateObject : function(res) | |
477 | - { | |
478 | - var object = this.get('object'); | |
479 | - object.set('outputName', res.name); | |
480 | - object.set('resultId', res.result); | |
481 | - object.set('startDate', res.startDate); | |
482 | - object.set('stopDate', res.stopDate); | |
483 | - | |
484 | - if (object.get('timesrc') == amdaModel.AmdaTimeObject.inputTimeSrc[0] && this.action != 'zoom') | |
485 | - { | |
486 | - object.set('intervalN', res.intervalN); | |
487 | - object.set('totalN', res.totalN); | |
488 | - object.set('ttName', res.tableName); | |
489 | - } | |
490 | - } | |
398 | + } | |
491 | 399 | }); |
... | ... |
js/app/models/DownloadNode.js
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | * Project : AMDA-NG4 |
3 | 3 | * Name : DownloadNode.js |
4 | 4 | * @class amdaModel.DownloadNode |
5 | - * @extends Ext.data.Model | |
5 | + * @extends amdaModel.ExecutableNode | |
6 | 6 | * @brief Basic Model of Node corresponding to a download request |
7 | 7 | * @author Myriam |
8 | 8 | * @version $Id: DownloadNode.js 2949 2015-06-23 10:25:59Z elena $ |
... | ... | @@ -10,70 +10,23 @@ |
10 | 10 | |
11 | 11 | Ext.define('amdaModel.DownloadNode', { |
12 | 12 | |
13 | - extend: 'Ext.data.Model', | |
14 | - singleton: true, | |
13 | + extend: 'amdaModel.ExecutableNode', | |
14 | + | |
15 | + statics: { | |
16 | + nodeType: 'download' | |
17 | + }, | |
15 | 18 | |
16 | - fields:[{name : 'downloadType', type : 'string'}, | |
17 | - {name: 'object', type: 'object'}, | |
18 | - {name: 'realLinkedNode', type: 'amdaModel.AmdaNode'}, | |
19 | - {name: 'moduleId', type: 'string', defaultValue:'down-win'}, | |
20 | - {name: 'nodeType', type: 'string', defaultValue: 'download'}, | |
21 | - {name: 'objectDataModel', type: 'string', defaultValue:'amdaModel.Download'}, | |
22 | - {name: 'jobNode', type: 'string', defaultValue: 'amdaModel.BkgJobNode'} | |
23 | - ], | |
24 | - | |
25 | - isExecutable: function(){ | |
26 | - return true; | |
27 | - }, | |
28 | - | |
29 | - getObjectCallback : function(result,remoteEvent){ | |
30 | - var t = remoteEvent.getTransaction(); | |
31 | - if (result) { | |
32 | - var paramObj = Ext.create(this.get('objectDataModel'), result); | |
33 | - // set parameter into node | |
34 | - this.set('object', paramObj); | |
35 | - var downObject = amdaModel.DownloadNode.decodeObject(); | |
36 | - // Edition ; | |
37 | - amdaModel.DownloadNode.set('object',Ext.create('amdaModel.Download',downObject)); | |
38 | - amdaModel.DownloadNode.editInModule(); | |
39 | - } | |
40 | - else { | |
41 | - myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '" | |
42 | - +this.get('name')+"' found!"); | |
43 | - // EXCEPTION : parameter not found !? | |
44 | - } | |
45 | - }, | |
46 | - | |
47 | - editInModule : function () { | |
48 | - var me = this; | |
49 | - myDesktopApp.getLoadedModule(this.get('moduleId'), true, function (module) { | |
50 | - // If the node to edit is not already linked to this module | |
51 | - if (module.getLinkedNode() != me) { | |
52 | - // set relative node into parameter Module | |
53 | - module.setLinkedNode(me); | |
54 | - } | |
55 | - else {// the node to edit is already edited | |
56 | - //TODO: TBD : message to user | |
57 | - //Sol1: msg alert: "warning this node is already edited! If you want to get the original, please press the 'reset' button"->'OK' | |
58 | - //Sol2: msg with user choice: "warning this node is already edited! Would you confirm this action and lost your modification?"->'Confirm','Cancel' | |
59 | - } | |
60 | - // Opening parameter window | |
61 | - module.createWindow(); | |
62 | - }); | |
63 | - }, | |
19 | + constructor : function(config) { | |
20 | + this.callParent(arguments); | |
21 | + this.set('moduleId',myDesktopApp.dynamicModules.download.id); | |
22 | + this.set('objectDataModel',amdaModel.Download.$className); | |
23 | + }, | |
64 | 24 | |
65 | 25 | decodeObject: function(obj) { |
66 | 26 | var myValues = new Object(); |
67 | 27 | myValues.list=[]; |
68 | 28 | |
69 | - if (!obj) { | |
70 | - var fullObject = this.get('realLinkedNode').get('object'); | |
71 | - } | |
72 | - else { | |
73 | - var fullObject = obj; | |
74 | - } | |
75 | - | |
76 | - fullObject.panels().each(function (panel) { | |
29 | + obj.panels().each(function (panel) { | |
77 | 30 | panel.params().each(function (param) { |
78 | 31 | var myParam = new Object(); |
79 | 32 | myParam.paramid = param.get('paramid'); |
... | ... | @@ -98,13 +51,13 @@ Ext.define('amdaModel.DownloadNode', { |
98 | 51 | alert('Parameter '+ myParam.paramid + ' is PlotOnly'); |
99 | 52 | }); |
100 | 53 | }); |
101 | - myValues.timesrc = fullObject.get('timesrc'); | |
54 | + myValues.timesrc = obj.get('timesrc'); | |
102 | 55 | // if there's at least one timeTable name into 'timeTables' collection |
103 | 56 | if (myValues.timesrc == amdaModel.AmdaTimeObject.inputTimeSrc[0] |
104 | - && fullObject.get('timeTables') | |
105 | - && fullObject.get('timeTables').length){ | |
57 | + && obj.get('timeTables') | |
58 | + && obj.get('timeTables').length){ | |
106 | 59 | // get complete timeTables collection |
107 | - var timeTables = fullObject.get('timeTables'); | |
60 | + var timeTables = obj.get('timeTables'); | |
108 | 61 | // init an empty array for timeTables |
109 | 62 | myValues.timeTables=[]; |
110 | 63 | // for each interval record |
... | ... | @@ -119,150 +72,15 @@ Ext.define('amdaModel.DownloadNode', { |
119 | 72 | }); |
120 | 73 | } |
121 | 74 | else { |
122 | - myValues.startDate = fullObject.get('startDate'); | |
123 | - myValues.stopDate = fullObject.get('stopDate'); | |
124 | - myValues.durationDay = fullObject.get('durationDay'); | |
125 | - myValues.durationHour = fullObject.get('durationHour'); | |
126 | - myValues.durationMin = fullObject.get('durationMin'); | |
127 | - myValues.durationSec = fullObject.get('durationSec'); | |
75 | + myValues.startDate = obj.get('startDate'); | |
76 | + myValues.stopDate = obj.get('stopDate'); | |
77 | + myValues.durationDay = obj.get('durationDay'); | |
78 | + myValues.durationHour = obj.get('durationHour'); | |
79 | + myValues.durationMin = obj.get('durationMin'); | |
80 | + myValues.durationSec = obj.get('durationSec'); | |
128 | 81 | } |
129 | 82 | |
130 | - myValues.name = fullObject.get('name'); | |
83 | + myValues.name = obj.get('name'); | |
131 | 84 | return myValues; |
132 | - }, | |
133 | - | |
134 | - encodeObject: function() { | |
135 | - }, | |
136 | - | |
137 | - loadJobTree : function(sendToSamp, clientId) { | |
138 | - //TBD - BRE - fix code duplication with ExecutableNode if possible | |
139 | - var rootNode = Ext.getCmp(amdaUI.ExplorerUI.JOB_TAB.TREE_ID).getRootNode(); | |
140 | - var me = this; | |
141 | - amdaModel.InteractiveNode.preloadNodes(rootNode, | |
142 | - function() | |
143 | - { | |
144 | - amdaModel.InteractiveNode.jobTreeLoaded = true; | |
145 | - me.realExecute(sendToSamp, clientId); | |
146 | - }); | |
147 | - }, | |
148 | - | |
149 | - execute : function(sendToSamp, clientId) { | |
150 | - | |
151 | - if (!amdaModel.ExecutableNode.jobTreeLoaded) this.loadJobTree(sendToSamp, clientId); | |
152 | - else this.realExecute(sendToSamp, clientId); | |
153 | - }, | |
154 | - | |
155 | -/** | |
156 | -* Method to execute this node | |
157 | -*/ | |
158 | - realExecute : function(sendToSamp, clientId) { | |
159 | - var jsonObject = this.get('object').getJsonValues(); | |
160 | - if (!jsonObject.list && !jsonObject.images) { | |
161 | - myDesktopApp.warningMsg('Please select at least one Parameter (Get Data) or one Time Table (Get Time Table)'); | |
162 | - return; | |
163 | - } | |
164 | - | |
165 | - if (sendToSamp) { | |
166 | - jsonObject.sendToSamp = true; | |
167 | - } | |
168 | - | |
169 | - loadMask.show(); | |
170 | - AmdaAction.execute({nodeType : this.get('nodeType')}, jsonObject, function(res,e) | |
171 | - { | |
172 | - loadMask.hide(); | |
173 | - | |
174 | - //AKKA - Rework of the result treatment for the integration with the new kernel | |
175 | - if (!e.status) | |
176 | - { | |
177 | - myDesktopApp.errorMsg('Internal error during download request'); | |
178 | - return; | |
179 | - } | |
180 | - | |
181 | - if (!res.success) | |
182 | - { | |
183 | - myDesktopApp.errorMsg(res.message); | |
184 | - return; | |
185 | - } | |
186 | - //TBD if such condition is OK ? | |
187 | - if (!res.id && res.download) { | |
188 | - if (res.sendToSamp) { | |
189 | - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) { | |
190 | - Ext.Array.each(res.download, function(download) { | |
191 | - module.sendVOTable(download, clientId ? clientId : 'hub'); | |
192 | - }); | |
193 | - }); | |
194 | - return; | |
195 | - } else if (res.compression) { | |
196 | - window.location.href = res.download; | |
197 | - } | |
198 | - else { | |
199 | - window.open(res.download, '_blank'); | |
200 | - } | |
201 | - return; | |
202 | - } | |
203 | - | |
204 | - if (logExecTime && res.exectime && (res.exectime != 0)) { | |
205 | - console.log("CMD EXEC TIME FOR "+res.id+" = "+res.exectime+"ms"); | |
206 | - } | |
207 | - | |
208 | - var newobj = this.createJobObject(res); | |
209 | - var newNode = Ext.create(this.get('jobNode'), | |
210 | - { | |
211 | - id : res.id, | |
212 | - info : res.info, | |
213 | - jobType : this.get('nodeType'), | |
214 | - processId : res.id, | |
215 | - text : res.name, | |
216 | - status : res.status, | |
217 | - stop : res.stop, | |
218 | - leaf : true, | |
219 | - object : newobj | |
220 | - | |
221 | - }); | |
222 | - | |
223 | - // new Tab | |
224 | - switch (res.status) | |
225 | - { | |
226 | - case amdaModel.BkgJobNode.STATUS_LIST.DONE : | |
227 | - if (!res.sendToSamp) { | |
228 | - // New tab, non-interactive session | |
229 | - var isInteractive = false; | |
230 | - var isNewTab = true; | |
231 | - newNode.createJobNode(true); | |
232 | - newNode.editNode(isNewTab, isInteractive); | |
233 | - } | |
234 | - else { | |
235 | - var files = res.result.split(","); | |
236 | - Ext.each(files, function(file) { | |
237 | - var href = 'data/'+sessionID+'/RES/'+ res.folder + '/' + file; | |
238 | - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) { | |
239 | - module.sendVOTable(href, clientId ? clientId : 'hub'); | |
240 | - }); | |
241 | - }); | |
242 | - } | |
243 | - break; | |
244 | - case amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS : | |
245 | - newNode.createJobNode(false); | |
246 | - break; | |
247 | - default: | |
248 | - newNode.createJobNode(true); | |
249 | - } | |
250 | - }, this ); | |
251 | - }, | |
252 | - | |
253 | - createJobObject: function(res) { | |
254 | - | |
255 | - var obj = this.get('object').getJsonValues(); | |
256 | - //TODO text, name, outputName - if all is needed | |
257 | - //new object to attach to new bkgJobNode | |
258 | - //TODO Ext.clone() | |
259 | - | |
260 | - var newobj = Ext.copyTo({}, obj, this.get('object').propertiesToCopy); | |
261 | - newobj.id = res.id; | |
262 | - newobj.resultId = res.result; | |
263 | - newobj.folderId = res.folder; | |
264 | - newobj = Ext.create(this.get('object').$className, newobj); | |
265 | - | |
266 | - return newobj; | |
267 | - } | |
85 | + } | |
268 | 86 | }); |
... | ... |
js/app/models/ExecutableNode.js
... | ... | @@ -22,35 +22,40 @@ Ext.define('amdaModel.ExecutableNode', { |
22 | 22 | this.set('jobNode', 'amdaModel.BkgJobNode'); |
23 | 23 | }, |
24 | 24 | |
25 | - loadJobTree : function() | |
25 | + loadJobTree : function(opts) | |
26 | 26 | { |
27 | 27 | var rootNode = Ext.getCmp(amdaUI.ExplorerUI.JOB_TAB.TREE_ID).getRootNode(); |
28 | 28 | var me = this; |
29 | 29 | amdaModel.InteractiveNode.preloadNodes(rootNode, function(){ |
30 | 30 | amdaModel.ExecutableNode.jobTreeLoaded = true; |
31 | - me.realExecute(); | |
31 | + me.realExecute(opts); | |
32 | 32 | }); |
33 | 33 | }, |
34 | 34 | |
35 | - execute : function(isDirty) | |
35 | + execute : function(opts) | |
36 | 36 | { |
37 | 37 | if (!amdaModel.ExecutableNode.jobTreeLoaded) |
38 | - this.loadJobTree(); | |
38 | + this.loadJobTree(opts); | |
39 | 39 | else |
40 | - this.realExecute(); | |
40 | + this.realExecute(opts); | |
41 | 41 | }, |
42 | 42 | |
43 | 43 | /** |
44 | 44 | * Method to execute this node |
45 | 45 | */ |
46 | - realExecute : function() | |
46 | + realExecute : function(opts) | |
47 | 47 | { |
48 | 48 | var isInteractivePlot = (this.get('nodeType') == 'request') && (this.get('object').get('file-output') == 'INTERACTIVE') || (this.get('nodeType') == 'multiplot'); |
49 | + | |
50 | + var jsonObject = this.get('object').getJsonValues(); | |
51 | + if (opts && opts.sendToSamp) { | |
52 | + opts.sendToSamp = true; | |
53 | + } | |
49 | 54 | |
50 | 55 | if (!loadMask.isMasked()) |
51 | 56 | loadMask.show(isInteractivePlot); |
52 | 57 | |
53 | - AmdaAction.execute({nodeType : this.get('nodeType')}, this.get('object').getJsonValues(true), | |
58 | + AmdaAction.execute({nodeType : this.get('nodeType')}, jsonObject, | |
54 | 59 | function(res,e) |
55 | 60 | { |
56 | 61 | loadMask.hide(); |
... | ... | @@ -75,6 +80,15 @@ Ext.define('amdaModel.ExecutableNode', { |
75 | 80 | }); |
76 | 81 | } |
77 | 82 | else { |
83 | + /*if (res.sendToSamp) { | |
84 | + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) { | |
85 | + Ext.Array.each(res.download, function(download) { | |
86 | + module.sendVOTable(download, clientId ? clientId : 'hub'); | |
87 | + }); | |
88 | + }); | |
89 | + return; | |
90 | + }*/ | |
91 | + | |
78 | 92 | if (logExecTime && res.exectime && (res.exectime != 0)) { |
79 | 93 | console.log("CMD EXEC TIME FOR "+res.id+" = "+res.exectime+"ms"); |
80 | 94 | } |
... | ... | @@ -96,7 +110,7 @@ Ext.define('amdaModel.ExecutableNode', { |
96 | 110 | |
97 | 111 | newNode.get('object').on('execute', function() { |
98 | 112 | // Then call the node creation method |
99 | - this.execute(arguments); | |
113 | + this.execute(opts); | |
100 | 114 | }, newNode); |
101 | 115 | |
102 | 116 | switch (res.status) |
... | ... |
js/app/models/InteractiveNode.js
... | ... | @@ -487,78 +487,7 @@ Ext.define('amdaModel.InteractiveNode', { |
487 | 487 | createDownload: function(node) |
488 | 488 | { |
489 | 489 | myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id, true, function (module) { |
490 | - if (!myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.download.id)) { | |
491 | - var request = Ext.create(amdaModel.Download.$className); | |
492 | - amdaModel.DownloadNode.set('object',request); | |
493 | - // singleton! | |
494 | - amdaModel.DownloadNode.editInModule(); | |
495 | - if ((node.get('globalStart') != null) && (node.get('globalStop') != null) && node.get('globalStart') != 'depending on mission' && node.get('isParameter')) { | |
496 | - module.getUiContent().setTimeFromData(node.getTimeFromNode(node)); | |
497 | - } | |
498 | - } | |
499 | - var paramName; | |
500 | - var components = null; | |
501 | - switch (node.$className) { | |
502 | - case 'amdaModel.AliasNode' : | |
503 | - paramName = "#"+node.get('text'); | |
504 | - break; | |
505 | - case 'amdaModel.DerivedParamComponentNode' : | |
506 | - | |
507 | - paramId = node.get('text'); | |
508 | - var parentId = paramId.substr(0, paramId.length - 3); | |
509 | - paramName= "ws_" + parentId; | |
510 | - var regExp = /\(([\d]+)\)/; | |
511 | - var component_index = regExp.exec(paramId); | |
512 | - if (component_index) | |
513 | - { | |
514 | - components = []; | |
515 | - components['index1'] = component_index[1]; | |
516 | - } | |
517 | - break; | |
518 | - case 'amdaModel.MyDataParamComponentNode' : | |
519 | - paramId = node.get('text'); | |
520 | - var parentId = paramId.substr(0, paramId.length - 3); | |
521 | - paramName= "wsd_" + parentId; | |
522 | - var regExp = /\(([\d]+)\)/; | |
523 | - var component_index = regExp.exec(paramId); | |
524 | - if (component_index) | |
525 | - { | |
526 | - components = []; | |
527 | - components['index1'] = component_index[1]; | |
528 | - } | |
529 | - break; | |
530 | - case 'amdaModel.DerivedParamNode' : | |
531 | - paramName = "ws_"+node.get('text'); | |
532 | - break; | |
533 | - case 'amdaModel.MyDataParamNode' : | |
534 | - paramName = 'wsd_'+node.get('text'); | |
535 | - break; | |
536 | - default : | |
537 | - if (node.get('alias')!= "" ) | |
538 | - paramName = "#"+node.get('alias'); | |
539 | - else | |
540 | - paramName = node.get('id'); | |
541 | - } | |
542 | - var component_info = node.get('component_info'); | |
543 | - var predefinedArgs = node.get('predefinedArgs'); | |
544 | - if (component_info && component_info.parentId) { | |
545 | - //It's a component | |
546 | - paramName = component_info.parentId; | |
547 | - components = []; | |
548 | - if (component_info.index1) | |
549 | - components['index1'] = component_info.index1; | |
550 | - if (component_info.index2) | |
551 | - components['index2'] = component_info.index2; | |
552 | - predefinedArgs = node.parentNode.get('predefinedArgs'); | |
553 | - } | |
554 | - if (predefinedArgs) { | |
555 | - module.parseTemplatedParam(paramName, function(param_info) { | |
556 | - module.addParam(param_info.paramid, true, node.get('needsArgs'), components, param_info.template_args); | |
557 | - }); | |
558 | - } | |
559 | - else { | |
560 | - module.addParam(paramName,true,node.get('needsArgs'),components); | |
561 | - } | |
490 | + module.addParameter(node); | |
562 | 491 | }); |
563 | 492 | }, |
564 | 493 | |
... | ... |
js/app/models/StatisticsNode.js
... | ... | @@ -14,9 +14,7 @@ Ext.define('amdaModel.StatisticsNode', { |
14 | 14 | singleton: true, |
15 | 15 | |
16 | 16 | fields: [ |
17 | - {name: 'downloadType', type : 'string'}, | |
18 | 17 | {name: 'object', type: 'object'}, |
19 | - {name: 'realLinkedNode', type: 'amdaModel.AmdaNode'}, | |
20 | 18 | {name: 'moduleId', type: 'string', defaultValue:'statistics-win'}, |
21 | 19 | {name: 'nodeType', type: 'string', defaultValue: 'statistics'}, |
22 | 20 | {name: 'objectDataModel', type: 'string', defaultValue:'amdaModel.Stats'}, |
... | ... |
js/app/views/DownloadUI.js
... | ... | @@ -92,6 +92,12 @@ Ext.define('amdaUI.DownloadUI', { |
92 | 92 | this.timeSelector.intervalSel.updateDuration(); |
93 | 93 | }, |
94 | 94 | |
95 | + addParameter: function(paramNode, updateTime) | |
96 | + { | |
97 | + //this.paramGrid.dropTarget.notifyOver(paramNode,null,'append'); | |
98 | + //this.paramGrid.dropTarget.notifyDrop(paramNode,null,'append'); | |
99 | + }, | |
100 | + | |
95 | 101 | addParam: function (paramId, isLeaf, needArgs, components, predefined_args) |
96 | 102 | { |
97 | 103 | // adding the parameter to the paramGrid |
... | ... | @@ -299,7 +305,7 @@ Ext.define('amdaUI.DownloadUI', { |
299 | 305 | doDownload: function (sendToSamp, clientId) { |
300 | 306 | var downloadModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id); |
301 | 307 | if (downloadModule) |
302 | - downloadModule.linkedNode.execute(sendToSamp, clientId); | |
308 | + downloadModule.linkedNode.execute({'sendToSamp': (sendToSamp == true), 'clientId': clientId}); | |
303 | 309 | }, |
304 | 310 | |
305 | 311 | actionItem: function (grid, cell, cellIndex, record, row, recordIndex, e) { |
... | ... | @@ -355,6 +361,11 @@ Ext.define('amdaUI.DownloadUI', { |
355 | 361 | } |
356 | 362 | }, |
357 | 363 | |
364 | + doParamDrop: function(paramNode) | |
365 | + { | |
366 | + | |
367 | + }, | |
368 | + | |
358 | 369 | /** |
359 | 370 | * Check if changes were made before closing window |
360 | 371 | * @return false |
... | ... | @@ -401,7 +412,7 @@ Ext.define('amdaUI.DownloadUI', { |
401 | 412 | { |
402 | 413 | var me = this; |
403 | 414 | var el = me.body.dom; |
404 | - var dropTarget = Ext.create('Ext.dd.DropTarget', el, { | |
415 | + me.dropTarget = Ext.create('Ext.dd.DropTarget', el, { | |
405 | 416 | ddGroup: 'explorerTree', |
406 | 417 | notifyEnter: function (ddSource, e, data) { }, |
407 | 418 | notifyOver: function (ddSource, e, data) |
... | ... |