Blame view

js/app/views/PlotComponents/PlotSpectroForm.js 10.7 KB
17433635   Benjamin Renard   Add series and sp...
1
2
3
4
/**
 * Project   : AMDA-NG
 * Name      : PlotSpectroForm.js
 * @class   amdaPlotComp.PlotSpectroForm
a0bf9157   Benjamin Renard   Add tick plot and...
5
 * @extends amdaPlotComp.PlotStandardForm
17433635   Benjamin Renard   Add series and sp...
6
7
8
9
10
11
12
 * @brief   Form to define specifics spectro options
 * @author  Benjamin Renard
 * @version $Id: PlotSpectroForm.js benjamin $
 */

Ext.define('amdaPlotComp.PlotSpectroForm', {
	extend: 'amdaPlotComp.PlotStandardForm',
0fc6f7a1   Menouard AZIB   Add type combobox...
13

4dbd97ec   Menouard AZIB   Goal is reached b...
14
15
16
	requires: [
		'amdaUI.ParamArgumentsUI'
	],
0fc6f7a1   Menouard AZIB   Add type combobox...
17
	setObject: function (object) {
4dbd97ec   Menouard AZIB   Goal is reached b...
18
		this.data = object.data;
17433635   Benjamin Renard   Add series and sp...
19
		this.object = object.get('param-drawing-object');
4dbd97ec   Menouard AZIB   Goal is reached b...
20

17433635   Benjamin Renard   Add series and sp...
21
22
		this.loadRecord(this.object);
	},
0fc6f7a1   Menouard AZIB   Add type combobox...
23

9162d169   Benjamin Renard   Add symbolic link...
24
25
26
27
28
29
30
31
32
33
	setParentObject: function (parentObject) {
		this.callParent(arguments);
		this.updateColorMap();
	},

	updateColorMap: function() {
		var colorAxisObj = this.parentObject.axes().getById('color');
		this.getForm().findField('spectro-color-map').setValue(colorAxisObj.get('axis-color-map'));
	},

0fc6f7a1   Menouard AZIB   Add type combobox...
34
35
36
37
38
39
40
	getValuesRangeItems: function () {
		return [
			this.addStandardFloat2('spectro-value-min', 'Min value', -Number.MAX_VALUE, Number.MAX_VALUE, true),
			this.addStandardFloat2('spectro-value-max', 'Max value', -Number.MAX_VALUE, Number.MAX_VALUE, true)
		];
	},
	getFilteringItems: function () {
df008372   Benjamin Renard   Min/max value def...
41
		return [
4f728fd9   Erdogan Furkan   For now 2
42
			this.addStandardCombo('filtering-level', 'Level', amdaDefaultConfigs.availableFilteringLevel)
df008372   Benjamin Renard   Min/max value def...
43
44
		];
	},
4dbd97ec   Menouard AZIB   Goal is reached b...
45

c3e75a07   Menouard AZIB   IHM is finished a...
46
47
48
49
50
51
52
53
54
	/**
	 * Populate the comboBoxValue by the set of channel data related to the selected dimension
	 * @param {*} ref  the reference of the current instance of this class
	 * @param {*} index dimension's index
	 * @param {*} comboBoxV  the comboBoxValue
	 * @returns 
	 */
	populateComboBoxValue: (ref, index, comboBoxV) => {
		if (ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName][index].variable)
4dbd97ec   Menouard AZIB   Goal is reached b...
55
			return;
4dbd97ec   Menouard AZIB   Goal is reached b...
56

c3e75a07   Menouard AZIB   IHM is finished a...
57
58
		const channelsData = ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName][index]
		[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableChannels];
4dbd97ec   Menouard AZIB   Goal is reached b...
59

c3e75a07   Menouard AZIB   IHM is finished a...
60
61
		const keyTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.key;
		const valueTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.value;
4dbd97ec   Menouard AZIB   Goal is reached b...
62

c3e75a07   Menouard AZIB   IHM is finished a...
63
64
65
66
67
68
69
70
		const newDataForStore = [];
		//Loop through the channels
		for (channelIndex in channelsData) {
			const channelData = channelsData[channelIndex];
			let item = {};
			item[keyTemp] = channelIndex;
			item[valueTemp] = channelIndex + " : [" + channelData.min + " , " + channelData.max + "]";
			newDataForStore.push(item);
4dbd97ec   Menouard AZIB   Goal is reached b...
71
		}
4dbd97ec   Menouard AZIB   Goal is reached b...
72

c3e75a07   Menouard AZIB   IHM is finished a...
73
74
75
		//Update the label of the field
		comboBoxV.setFieldLabel(ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName][index]["name"]
			+ " (" + ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName][index]["units"] + ") ");
4dbd97ec   Menouard AZIB   Goal is reached b...
76

c3e75a07   Menouard AZIB   IHM is finished a...
77
78
		comboBoxV.store.loadData(newDataForStore);
	},
4dbd97ec   Menouard AZIB   Goal is reached b...
79

c3e75a07   Menouard AZIB   IHM is finished a...
80
81
82
83
84
85
	/**
	 * Populate the comboBoxDim by the set of dimensions related to the selected parameter
	 * @param {*} ref the reference of the current instance of this class
	 * @param {*} comboBoxDim the comboBoxDim reference
	 */
	populateComboBoxDim: (ref, comboBoxDim) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
		const keyTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.key;
		const valueTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.value;

		const newDataForStore = [];
		for (indexTable in ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName]) {
			const table = ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName][indexTable];
			let item = {};
			item[keyTemp] = indexTable;
			item[valueTemp] = table[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableRelatedDim];
			newDataForStore.push(item);
		}

		//Set the new store
		comboBoxDim.store.loadData(newDataForStore);
	},

c3e75a07   Menouard AZIB   IHM is finished a...
102
103
104
105
106
107
	/**
	 * Add a textInput which holds Background Substraction value when fixedvalue is selected
	 * @param {*} ref the reference of the current instance of this class
	 * @returns addStandardFloat2
	 */
	addComboBoxBackgroundSubFixedValue: (ref) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
108
109
110
111
		return ref.addStandardFloat2(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.textinputkey,
			amdaPlotObj.PlotObjectConfig.bgSubstraction.value.textinputlabel, 0
			, Number.MAX_VALUE, true, true, (name, newValue, oldValue) => {
				if (oldValue !== newValue) {
11b200e3   Menouard AZIB   Send -1 when text...
112
113
114
115
116
					if (!newValue) {
						ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key,
							amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue);
						return;
					}
4dbd97ec   Menouard AZIB   Goal is reached b...
117
118
119
120
121
122
					ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key,
						newValue);
				}
			});
	},

c3e75a07   Menouard AZIB   IHM is finished a...
123
124
125
126
127
128
129
130
131
132
	/**
	 * Reset ComboBoxDim and textInput
	 * 
	 * @param {*} ref the reference of the current instance of this class
	 */
	resetDependentComponents: (ref) => {
		const comboBoxDim = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey);
		ref.populateComboBoxDim(ref, comboBoxDim);
		comboBoxDim.setVisible(false);
		comboBoxDim.setValue(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue);
4dbd97ec   Menouard AZIB   Goal is reached b...
133
134
135
136
137
138

		const textInputV = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.textinputkey);
		textInputV.setVisible(false);
		textInputV.setValue(null);
	},

4dbd97ec   Menouard AZIB   Goal is reached b...
139
	/**
c3e75a07   Menouard AZIB   IHM is finished a...
140
141
	 * Add a comboBox which holds Background Substraction type : bychannel, fixedvalue
	 * @param {*} ref the reference of the current instance of this class
4dbd97ec   Menouard AZIB   Goal is reached b...
142
143
	 * @returns StandardCombo
	 */
c3e75a07   Menouard AZIB   IHM is finished a...
144
	addComboBoxBackgroundSubType: (ref) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
145
146
147
148
149
150
151
152
153
154
155
156
157
158
		const data = [];
		for (value in amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values) {
			const keyTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.key;
			const valueTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.value;
			let item = {};
			item[keyTemp] = value;
			item[valueTemp] = amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values[value];
			data.push(item);
		}

		const comboBoxType = ref.addStandardCombo(amdaPlotObj.PlotObjectConfig.bgSubstraction.type.key,
			amdaPlotObj.PlotObjectConfig.bgSubstraction.type.label, data,
			(name, newKey, oldKey) => {
				if (newKey !== oldKey) {
c3e75a07   Menouard AZIB   IHM is finished a...
159
160
161
					const newValue = amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values[newKey];
					if (newKey === null || newValue === undefined) {
						ref.resetDependentComponents(ref);
4dbd97ec   Menouard AZIB   Goal is reached b...
162
163
164
						return;
					}

c3e75a07   Menouard AZIB   IHM is finished a...
165
					//ComboBoxDim
4dbd97ec   Menouard AZIB   Goal is reached b...
166
					const comboBoxDim = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey);
c3e75a07   Menouard AZIB   IHM is finished a...
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
					//Fixed value input
					const textInputV = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.textinputkey);

					//By channel
					if (newValue === amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values.bychannel) {
						const nbDims = ref.data[amdaPlotObj.PlotObjectConfig.bgSubstraction.tableName].length;
						//Show comboBoxDim
						comboBoxDim.select(comboBoxDim.store.getAt(0));
						if (nbDims > 1)
							comboBoxDim.setVisible(true);

						//Hide comboBoxDim
						else
							comboBoxDim.setVisible(false);

						//Hide text input
						textInputV.setValue(null);
						textInputV.setVisible(false);
4dbd97ec   Menouard AZIB   Goal is reached b...
185
					}
c3e75a07   Menouard AZIB   IHM is finished a...
186
187
188
					//By fixed value
					else if (newValue === amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values.fixedvalue) {
						//Hide comboBoxDim
4dbd97ec   Menouard AZIB   Goal is reached b...
189
						comboBoxDim.setVisible(false);
c3e75a07   Menouard AZIB   IHM is finished a...
190
191
192
193
194
195
196
197
						comboBoxDim.setValue(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue);
						//Show text input
						textInputV.setValue(null);
						textInputV.setVisible(true);
					}
					//Another value
					else {
						console.warn("Unkown key : ", newKey);
4dbd97ec   Menouard AZIB   Goal is reached b...
198
					}
4dbd97ec   Menouard AZIB   Goal is reached b...
199
200
201
202
203
204
205
				}
			});

		return comboBoxType;
	},

	/**
c3e75a07   Menouard AZIB   IHM is finished a...
206
207
	 * Add a comboBox which holds Background Substraction value
	 * @param {*} ref the reference of the current instance of this class
4dbd97ec   Menouard AZIB   Goal is reached b...
208
209
	 * @returns StandardCombo
	 */
c3e75a07   Menouard AZIB   IHM is finished a...
210
	addComboBoxBackgroundSubValue: (ref) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
211
212
213
214
215
216
		const comboBoxValue = ref.addStandardCombo(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key,
			"", [],
			(name, newKey, oldKey) => {
				if (newKey !== oldKey) {
					ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key,
						newKey);
4dbd97ec   Menouard AZIB   Goal is reached b...
217
218
219
220
221
222
				}
			});

		return comboBoxValue;
	},

c3e75a07   Menouard AZIB   IHM is finished a...
223
224
225
226
227
228
	/**
	 * Add a comboBox which holds Background Substraction dimension
	 * @param {*} ref the reference of the current instance of this class
	 * @returns StandardCombo
	 */
	addComboBoxBackgroundSubDim: (ref) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
229
230
231
		const comboBoxDim = ref.addStandardCombo(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey,
			amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimlabel, [],
			(name, newKey, oldKey) => {
c3e75a07   Menouard AZIB   IHM is finished a...
232
				const comboBoxV = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key);
11b200e3   Menouard AZIB   Send -1 when text...
233

c3e75a07   Menouard AZIB   IHM is finished a...
234
				if (newKey === amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue) {
86615884   Menouard AZIB   Quand on passe d'...
235
					comboBoxV.setValue(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue);
c3e75a07   Menouard AZIB   IHM is finished a...
236
237
238
239
240
241
242
					comboBoxV.setVisible(false);
					return;
				}

				if (newKey !== null && newKey !== undefined) {
					comboBoxV.setVisible(true);
					ref.populateComboBoxValue(ref, newKey, comboBoxV);
11b200e3   Menouard AZIB   Send -1 when text...
243
					comboBoxV.select(comboBoxV.store.getAt(0));
4dbd97ec   Menouard AZIB   Goal is reached b...
244
				}
c3e75a07   Menouard AZIB   IHM is finished a...
245

4dbd97ec   Menouard AZIB   Goal is reached b...
246
247
248
				ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey,
					newKey);

4dbd97ec   Menouard AZIB   Goal is reached b...
249
250
251
252
253
254
			});

		return comboBoxDim;
	},

	/**
c3e75a07   Menouard AZIB   IHM is finished a...
255
	 * Add Background Substraction items
4dbd97ec   Menouard AZIB   Goal is reached b...
256
257
	 * @returns StandardFieldSet
	 */
c3e75a07   Menouard AZIB   IHM is finished a...
258
	getBackgroundSubItems: function () {
0fc6f7a1   Menouard AZIB   Add type combobox...
259
		return [
c3e75a07   Menouard AZIB   IHM is finished a...
260
261
262
263
			this.addComboBoxBackgroundSubType(this),
			this.addComboBoxBackgroundSubDim(this),
			this.addComboBoxBackgroundSubValue(this),
			this.addComboBoxBackgroundSubFixedValue(this)
0fc6f7a1   Menouard AZIB   Add type combobox...
264
265
266
267
		];
	},

	getFormItems: function () {
4dbd97ec   Menouard AZIB   Goal is reached b...
268
269
		const ref = this;
		const field = this.addStandardFieldSet(amdaPlotObj.PlotObjectConfig.bgSubstraction.name,
c3e75a07   Menouard AZIB   IHM is finished a...
270
			amdaPlotObj.PlotObjectConfig.bgSubstraction.name, this.getBackgroundSubItems(),
4dbd97ec   Menouard AZIB   Goal is reached b...
271
			function (name, newKey, oldKey) {
86615884   Menouard AZIB   Quand on passe d'...
272
273
274
275
				const comboBoxType = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.type.key);
				comboBoxType.setValue(null);
				if (newKey) {
					comboBoxType.setValue(Object.keys(amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values)[0]);
4dbd97ec   Menouard AZIB   Goal is reached b...
276
277
278
				}
			});

17433635   Benjamin Renard   Add series and sp...
279
		return [
9162d169   Benjamin Renard   Add symbolic link...
280
281
282
			this.addColorMapCombo('spectro-color-map', function(name, newValue, oldValue){
				ref.parentObject.axes().getById('color').set('axis-color-map', newValue);
			}),
4f728fd9   Erdogan Furkan   For now 2
283
			this.addStandardCombo('spectro-resolution', 'Points per plot', amdaDefaultConfigs.availableResolutions, function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
284
				ref.object.set('spectro-resolution', value);
0fc6f7a1   Menouard AZIB   Add type combobox...
285
			}),
4f728fd9   Erdogan Furkan   For now 2
286
			this.addStandardCombo('spectro-yaxis', 'Y axis', amdaDefaultConfigs.availableYAxes, function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
287
288
				ref.object.set('spectro-yaxis', value);
				ref.crtTree.refresh();
9b3f49e3   Elena.Budnik   info bulls Plot r...
289
			}),
0fc6f7a1   Menouard AZIB   Add type combobox...
290
			myDesktopApp.addAmdaInfo('MinMaxThreshold', 'vertical-align:bottom'),
9b3f49e3   Elena.Budnik   info bulls Plot r...
291
			this.addStandardFieldSet('Min/Max thresholds', '', this.getValuesRangeItems()),
0fc6f7a1   Menouard AZIB   Add type combobox...
292
			this.addStandardCheck('spectro-log0-as-min', 'Show 0 values as Min Values in log scale', function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
293
				ref.object.set('spectro-log0-as-min', value);
4c89e876   Hacene SI HADJ MOHAND   ihn normalization ok
294
			}),
4f728fd9   Erdogan Furkan   For now 2
295
			this.addStandardCombo('spectro-normalization', 'Normalization', amdaDefaultConfigs.availableSpectroNormalization, function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
296
297
				if (ref.object.get('spectro-normalization') != value) {
					ref.object.set('spectro-normalization', value);
0fc6f7a1   Menouard AZIB   Add type combobox...
298
299
300
				}
			}),
			this.addStandardFieldSet('Spike Filtering ( ! Experimental ! )', 'filtering-activated', this.getFilteringItems()),
4dbd97ec   Menouard AZIB   Goal is reached b...
301
			field
17433635   Benjamin Renard   Add series and sp...
302
303
		];
	}
afb7b464   Benjamin Renard   Fix decimal preci...
304
});