Commit f981cd96df28cd252de796054681cf0e41d1b70f

Authored by Hacene SI HADJ MOHAND
1 parent f4803ed9

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 });
... ...