Commit d80af8968f360309f70ee20aef44971bf8813ddd
1 parent
c218ac10
Exists in
master
and in
111 other branches
args for Statistics
Showing
2 changed files
with
182 additions
and
114 deletions
Show diff stats
js/app/controllers/StatisticsModule.js
@@ -39,7 +39,19 @@ Ext.define('amdaDesktop.StatisticsModule', { | @@ -39,7 +39,19 @@ Ext.define('amdaDesktop.StatisticsModule', { | ||
39 | this.setLinkedNode(amdaModel.StatisticsNode); | 39 | this.setLinkedNode(amdaModel.StatisticsNode); |
40 | } | 40 | } |
41 | this.callParent(arguments); | 41 | this.callParent(arguments); |
42 | - }, | ||
43 | - | 42 | + }, |
43 | + | ||
44 | + saveState: function() { | ||
45 | + var uiContent = this.getUiContent(); | ||
46 | + var form = uiContent.down('form').getForm(); | ||
47 | + var values = form.getValues(); | ||
48 | + // Ext.state.Manager.set(this.id + '_form', values); | ||
49 | + Ext.state.Manager.set('timeinterval', {'startDate' : values.startDate,'stopDate' : values.stopDate }); | ||
50 | + }, | ||
51 | + | ||
52 | + getState : function() { | ||
53 | + // return Ext.state.Manager.get(this.id + '_form'); | ||
54 | + return Ext.state.Manager.get('timeinterval'); | ||
55 | + } | ||
44 | 56 | ||
45 | }); | 57 | }); |
js/app/views/StatisticsUI.js
@@ -12,26 +12,77 @@ Ext.define('amdaUI.StatisticsUI', { | @@ -12,26 +12,77 @@ Ext.define('amdaUI.StatisticsUI', { | ||
12 | alias: 'widget.panelStatistics', | 12 | alias: 'widget.panelStatistics', |
13 | 13 | ||
14 | requires : [ | 14 | requires : [ |
15 | -// 'amdaModel.Function' | ||
16 | - 'amdaUI.TimeSelectorUI' | 15 | + // 'amdaModel.Function' |
16 | + 'amdaUI.TimeSelectorUI', | ||
17 | + 'amdaUI.ParamArgumentsPlug', | ||
18 | + 'amdaModel.DownloadParam' | ||
17 | ], | 19 | ], |
18 | 20 | ||
19 | statics : { | 21 | statics : { |
20 | -// functionStore : null | 22 | + // functionStore : null |
21 | }, | 23 | }, |
22 | 24 | ||
23 | constructor: function(config) { | 25 | constructor: function(config) { |
24 | - this.init(config); | 26 | + this.init(config); |
25 | this.callParent(arguments); | 27 | this.callParent(arguments); |
26 | // if (this.object) this.loadObject(); | 28 | // if (this.object) this.loadObject(); |
29 | + // | ||
30 | + var paramArgsPlug = this.getPlugin('statistics-param-arguments-plugin'); | ||
31 | + if (paramArgsPlug) | ||
32 | + paramArgsPlug.onApply = this.onApplyParameterArgs; | ||
27 | }, | 33 | }, |
34 | + | ||
35 | + onApplyParameterArgs : function(parentUI, paramObject) { | ||
36 | + parentUI.paramGrid.getView().refresh(); | ||
37 | + }, | ||
28 | 38 | ||
29 | - addParam : function(ParamName,isLeaf) | ||
30 | - { | ||
31 | - var r = Ext.create('amdaModel.AmdaObject', { name: ParamName }); | ||
32 | - this.paramGrid.getStore().add(r); | ||
33 | - this.paramGrid.getSelectionModel().select(this.paramGrid.getStore().getCount()-1); | ||
34 | - }, | 39 | + addParam : function(paramId, isLeaf, needArgs, components) |
40 | + { | ||
41 | + // adding the parameter to the paramGrid | ||
42 | + var paramObj = { | ||
43 | + paramid: paramId, | ||
44 | + type: 0, | ||
45 | + 'dim1-is-range': false, | ||
46 | + 'dim1-min-range': 0., | ||
47 | + 'dim1-max-range': 0., | ||
48 | + 'dim1-index': '*', | ||
49 | + 'dim2-is-range': false, | ||
50 | + 'dim2-min-range': 0., | ||
51 | + 'dim2-max-range': 0., | ||
52 | + 'dim2-index': '*', | ||
53 | + template_args: {} | ||
54 | + }; | ||
55 | + | ||
56 | +// if (components) { | ||
57 | +// if (components['index1']) { | ||
58 | +// paramObj['dim1-index'] = components['index1']; | ||
59 | +// ++paramObj['type']; | ||
60 | +// } | ||
61 | +// | ||
62 | +// if (components['index2']) { | ||
63 | +// paramObj['dim2-index'] = components['index2']; | ||
64 | +// ++paramObj['type']; | ||
65 | +// } | ||
66 | +// } | ||
67 | + | ||
68 | + var r = Ext.create('amdaModel.DownloadParam', paramObj); | ||
69 | + | ||
70 | + this.paramGrid.getStore().add(r); | ||
71 | + this.paramGrid.getSelectionModel().select(this.paramGrid.getStore().getCount()-1); | ||
72 | + // var pos = this.paramGrid.store.getCount(); | ||
73 | + // this.paramGrid.store.insert(pos,r); | ||
74 | + this.paramGrid.getView().refresh(); | ||
75 | + | ||
76 | + if (needArgs) | ||
77 | + this.editParameterArgs(r); | ||
78 | + }, | ||
79 | + | ||
80 | + editParameterArgs: function(record) { | ||
81 | + var paramArgsPlug = this.getPlugin('statistics-param-arguments-plugin'); | ||
82 | + | ||
83 | + if (paramArgsPlug) | ||
84 | + paramArgsPlug.show('statistics-param-arguments-plugin', record); | ||
85 | + }, | ||
35 | 86 | ||
36 | addTT : function(TTname,TTid) | 87 | addTT : function(TTname,TTid) |
37 | { | 88 | { |
@@ -51,48 +102,50 @@ Ext.define('amdaUI.StatisticsUI', { | @@ -51,48 +102,50 @@ Ext.define('amdaUI.StatisticsUI', { | ||
51 | 102 | ||
52 | updateObject : function(){ | 103 | updateObject : function(){ |
53 | // get the basic form of the left | 104 | // get the basic form of the left |
54 | - var basicForm = this.formPanel.items.items[0].getForm(); | ||
55 | - var updateStatus = true; | ||
56 | - | ||
57 | - var formValues = basicForm.getValues(); | ||
58 | - // this.object.set('name',formValues.name); | ||
59 | - // this.object.set('description',formValues.description); | 105 | + var basicForm = this.formPanel.items.items[0].getForm(); |
106 | + var updateStatus = true; | ||
107 | + | ||
108 | + var formValues = basicForm.getValues(); | ||
109 | +// this.object.set('name',formValues.name); | ||
110 | +// this.object.set('description',formValues.description); | ||
60 | 111 | ||
61 | - var recs = this.paramGrid.getStore().getNewRecords(); | ||
62 | - var paramArr = new Array(); | ||
63 | - | ||
64 | - Ext.Array.each(recs, function(rec, index,allItems) | ||
65 | - { | ||
66 | - var obj = new Object(); | ||
67 | - obj.param = rec.get('name'); | ||
68 | - obj.function = rec.get('function'); | ||
69 | - if (obj.function == null) { | ||
70 | - myDesktopApp.warningMsg('Please select function : `click to select`'); | ||
71 | - updateStatus = false; | ||
72 | - return; | ||
73 | - } | ||
74 | - paramArr.push(obj); | ||
75 | - }); | 112 | + var recs = this.paramGrid.getStore().getNewRecords(); |
113 | + var paramArr = new Array(); | ||
114 | + | ||
115 | + Ext.Array.each(recs, function(rec, index,allItems) | ||
116 | + { | ||
117 | + var obj = new Object(); | ||
118 | + obj.param = rec.get('name'); | ||
119 | + obj.function = rec.get('function'); | ||
120 | + if (obj.function == null) | ||
121 | + { | ||
122 | + myDesktopApp.warningMsg('Please select function : `click to select`'); | ||
123 | + updateStatus = false; | ||
124 | + return; | ||
125 | + } | ||
126 | + paramArr.push(obj); | ||
127 | + }); | ||
76 | 128 | ||
77 | - this.object.set('parameter', paramArr); | 129 | + this.object.set('parameter', paramArr); |
78 | 130 | ||
79 | - var timeSource = this.timeSelector.getActiveTimeSource(); | 131 | + var timeSource = this.timeSelector.getActiveTimeSource(); |
80 | 132 | ||
81 | - if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0] // timeSource 'TimeTable' | ||
82 | - && this.timeSelector.TTGrid.getStore().count() == 0) { | ||
83 | - myDesktopApp.warningMsg('You\'ve chosen Time Selection `by TimeTable` but no timeTable was added!' | ||
84 | - +'<br>You must add one or choose Time Selection `by Interval`'); | ||
85 | - return false; | ||
86 | - } | 133 | + if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0] // timeSource 'TimeTable' |
134 | + && this.timeSelector.TTGrid.getStore().count() == 0) | ||
135 | + { | ||
136 | + myDesktopApp.warningMsg('You\'ve chosen Time Selection `by TimeTable` but no timeTable was added!' | ||
137 | + +'<br>You must add one or choose Time Selection `by Interval`'); | ||
138 | + return false; | ||
139 | + } | ||
87 | 140 | ||
88 | - basicForm.updateRecord(this.object); | 141 | + basicForm.updateRecord(this.object); |
89 | 142 | ||
90 | - this.object.set('timesrc', timeSource); | ||
91 | - // set valid intervals into TimeTable object | ||
92 | - if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) | ||
93 | - this.object.set('timeTables',this.timeSelector.TTGrid.getStore().data.items); | 143 | + this.object.set('timesrc', timeSource); |
144 | + // set valid intervals into TimeTable object | ||
145 | + if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) | ||
146 | + this.object.set('timeTables',this.timeSelector.TTGrid.getStore().data.items); | ||
94 | 147 | ||
95 | - return updateStatus; | 148 | + return updateStatus; |
96 | }, | 149 | }, |
97 | 150 | ||
98 | /** | 151 | /** |
@@ -121,74 +174,80 @@ Ext.define('amdaUI.StatisticsUI', { | @@ -121,74 +174,80 @@ Ext.define('amdaUI.StatisticsUI', { | ||
121 | // ] | 174 | // ] |
122 | // }); | 175 | // }); |
123 | 176 | ||
124 | - this.fieldName = new Ext.form.field.Text({ | ||
125 | - fieldLabel: 'Catalog Name', | ||
126 | - allowBlank : false, | ||
127 | - stripCharsRe: /(^\s+|\s+$)/g, | ||
128 | - emptyText: 'Please no spaces!', | ||
129 | - name: 'name', | ||
130 | -// anchor: '100%', | ||
131 | - validateOnChange: false, | ||
132 | - validateOnBlur: false, | ||
133 | - validFlag: false, | ||
134 | - validator : function() { | ||
135 | - return this.validFlag; | ||
136 | - } | ||
137 | - }); | ||
138 | - | ||
139 | - var ttStore = Ext.create('Ext.data.Store', | ||
140 | - { | ||
141 | - fields: [ 'name', 'hidden_id'] | ||
142 | - }); | 177 | + this.fieldName = new Ext.form.field.Text({ |
178 | + fieldLabel: 'Catalog Name', | ||
179 | + allowBlank : false, | ||
180 | + stripCharsRe: /(^\s+|\s+$)/g, | ||
181 | + emptyText: 'Please no spaces!', | ||
182 | + name: 'name', | ||
183 | + // anchor: '100%', | ||
184 | + validateOnChange: false, | ||
185 | + validateOnBlur: false, | ||
186 | + validFlag: false, | ||
187 | + validator : function() { | ||
188 | + return this.validFlag; | ||
189 | + } | ||
190 | + }); | ||
143 | 191 | ||
144 | - this.timeSelector = new amdaUI.TimeSelectorUI({id: 'statisticsTimeSelector', height : 160}); | 192 | + var ttStore = Ext.create('Ext.data.Store', |
193 | + { | ||
194 | + fields: [ 'name', 'hidden_id'] | ||
195 | + }); | ||
196 | + | ||
197 | + this.timeSelector = new amdaUI.TimeSelectorUI({id: 'statisticsTimeSelector', height : 160}); | ||
145 | 198 | ||
146 | - var store = Ext.create('Ext.data.Store', | ||
147 | - { | ||
148 | - fields: ['name', 'function'] | ||
149 | - }); | 199 | + var store = Ext.create('Ext.data.Store', |
200 | + { | ||
201 | + fields: ['name', 'function'] | ||
202 | + }); | ||
150 | 203 | ||
151 | - this.paramGrid = Ext.create('Ext.grid.Panel', { | 204 | + this.paramGrid = Ext.create('Ext.grid.Panel', { |
152 | title: 'Select Parameter & Apply Function', | 205 | title: 'Select Parameter & Apply Function', |
153 | selType : 'rowmodel', | 206 | selType : 'rowmodel', |
154 | // flex: 2, | 207 | // flex: 2, |
155 | height :250, | 208 | height :250, |
156 | store : store, | 209 | store : store, |
157 | columns: [ | 210 | columns: [ |
158 | - { xtype: 'rownumberer' }, | ||
159 | - { header: 'parameter', dataIndex: 'name', menuDisabled : true, sortable : false }, | ||
160 | - { header: 'function', dataIndex: 'function', menuDisabled : true, sortable : false, | ||
161 | - editor: { | ||
162 | - xtype: 'combo', queryMode : 'local', | ||
163 | -// emptyText : 'please click to select function', | ||
164 | - store: [ 'min', 'max', 'mean' ], | ||
165 | - triggerAction: 'all', | ||
166 | -// lazyInit: false, | ||
167 | - listeners: { | ||
168 | - focus: function(obj) { | ||
169 | - obj.expand(); | 211 | + { xtype: 'rownumberer' }, |
212 | + { | ||
213 | + header: "Parameter Name", | ||
214 | + dataIndex: 'name', | ||
215 | + flex:1, | ||
216 | + sortable: false, | ||
217 | + menuDisabled : true , | ||
218 | + renderer: function (val, meta, rec) { | ||
219 | + return rec.getParamFullName(); | ||
220 | + } | ||
221 | + }, | ||
222 | + // { header: 'parameter', dataIndex: 'name', menuDisabled : true, sortable : false }, | ||
223 | + { header: 'function', dataIndex: 'function', menuDisabled : true, sortable : false, | ||
224 | + editor: { | ||
225 | + xtype: 'combo', queryMode : 'local', | ||
226 | + // emptyText : 'please click to select function', | ||
227 | + store: [ 'min', 'max', 'mean' ], | ||
228 | + triggerAction: 'all', | ||
229 | + // lazyInit: false, | ||
230 | + listeners: { | ||
231 | + focus: function(obj) { | ||
232 | + obj.expand(); | ||
233 | + } | ||
234 | + } | ||
235 | + }, | ||
236 | + renderer: function(v) | ||
237 | + { | ||
238 | + if(v != null && v.length > 0 ) | ||
239 | + return v; | ||
240 | + else | ||
241 | + return 'click to select'; | ||
242 | + } | ||
243 | + }, | ||
244 | + { menuDisabled : true, width: 30, renderer: function(){ | ||
245 | + return '<div class="icon-remover" style="width: 15px; height: 15px;"></div>'; | ||
246 | + } | ||
170 | } | 247 | } |
171 | - } | ||
172 | - }, | ||
173 | - renderer: function(v) | ||
174 | - { | ||
175 | - if(v != null && v.length > 0 ) | ||
176 | - return v; | ||
177 | - else | ||
178 | - return 'click to select'; | ||
179 | - } | ||
180 | - }, | ||
181 | - { menuDisabled : true, width: 30, renderer: function(){ | ||
182 | - return '<div class="icon-remover" style="width: 15px; height: 15px;"></div>'; | ||
183 | - } | ||
184 | - } | ||
185 | ], | 248 | ], |
186 | - plugins: [ | ||
187 | - Ext.create('Ext.grid.plugin.CellEditing', { | ||
188 | - clicksToEdit: 1 | ||
189 | - }) | ||
190 | - ], | ||
191 | - listeners : | 249 | + plugins: [ Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 })], |
250 | + listeners : | ||
192 | { | 251 | { |
193 | render : function(o,op) | 252 | render : function(o,op) |
194 | { | 253 | { |
@@ -222,7 +281,8 @@ Ext.define('amdaUI.StatisticsUI', { | @@ -222,7 +281,8 @@ Ext.define('amdaUI.StatisticsUI', { | ||
222 | { | 281 | { |
223 | if (!this.valid) | 282 | if (!this.valid) |
224 | return false; | 283 | return false; |
225 | - var nameToSent; | 284 | + var nameToSent; |
285 | + var components = null; | ||
226 | switch (data.records[0].data.nodeType) | 286 | switch (data.records[0].data.nodeType) |
227 | { | 287 | { |
228 | case 'localParam' : | 288 | case 'localParam' : |
@@ -246,13 +306,8 @@ Ext.define('amdaUI.StatisticsUI', { | @@ -246,13 +306,8 @@ Ext.define('amdaUI.StatisticsUI', { | ||
246 | } | 306 | } |
247 | var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.statistics.id); | 307 | var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.statistics.id); |
248 | if (module) | 308 | if (module) |
249 | - { | ||
250 | - if (data.records[0].get('needsArgs') && !data.records[0].get('isSpectra')) { | ||
251 | - module.getUiContent().fireEvent('openParamEditor',nameToSent); | ||
252 | - } | ||
253 | - else { | ||
254 | - module.addParam(nameToSent,true); | ||
255 | - } | 309 | + { |
310 | + module.addParam(nameToSent, data.records[0].get('leaf'), data.records[0].get('needsArgs'), components); | ||
256 | } | 311 | } |
257 | return true; | 312 | return true; |
258 | } | 313 | } |
@@ -343,8 +398,9 @@ Ext.define('amdaUI.StatisticsUI', { | @@ -343,8 +398,9 @@ Ext.define('amdaUI.StatisticsUI', { | ||
343 | url: helpDir+'statisticsHOWTO' | 398 | url: helpDir+'statisticsHOWTO' |
344 | } | 399 | } |
345 | } | 400 | } |
346 | - ] | ||
347 | - }; | 401 | + ], |
402 | + plugins: [ {ptype: 'paramArgumentsPlugin', pluginId: 'statistics-param-arguments-plugin'}] | ||
403 | + }; | ||
348 | 404 | ||
349 | Ext.apply (this, Ext.apply(arguments, myConf)); | 405 | Ext.apply (this, Ext.apply(arguments, myConf)); |
350 | } | 406 | } |