Blame view

js/app/views/PlotComponents/PlotSpectroForm.js 10.3 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
24
25
26
27
28
29
30

	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...
31
		return [
0fc6f7a1   Menouard AZIB   Add type combobox...
32
			this.addStandardCombo('filtering-level', 'Level', amdaPlotObj.PlotObjectConfig.availableFilteringLevel)
df008372   Benjamin Renard   Min/max value def...
33
34
		];
	},
4dbd97ec   Menouard AZIB   Goal is reached b...
35

c3e75a07   Menouard AZIB   IHM is finished a...
36
37
38
39
40
41
42
43
44
	/**
	 * 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...
45
			return;
4dbd97ec   Menouard AZIB   Goal is reached b...
46

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

c3e75a07   Menouard AZIB   IHM is finished a...
50
51
		const keyTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.key;
		const valueTemp = amdaPlotObj.PlotObjectConfig.fieldComboBox.value;
4dbd97ec   Menouard AZIB   Goal is reached b...
52

c3e75a07   Menouard AZIB   IHM is finished a...
53
54
55
56
57
58
59
60
		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...
61
		}
4dbd97ec   Menouard AZIB   Goal is reached b...
62

c3e75a07   Menouard AZIB   IHM is finished a...
63
64
65
		//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...
66

c3e75a07   Menouard AZIB   IHM is finished a...
67
68
		comboBoxV.store.loadData(newDataForStore);
	},
4dbd97ec   Menouard AZIB   Goal is reached b...
69

c3e75a07   Menouard AZIB   IHM is finished a...
70
71
72
73
74
75
	/**
	 * 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...
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
		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...
92
93
94
95
96
97
	/**
	 * 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...
98
99
100
101
		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...
102
103
104
105
106
					if (!newValue) {
						ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key,
							amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue);
						return;
					}
4dbd97ec   Menouard AZIB   Goal is reached b...
107
108
109
110
111
112
					ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key,
						newValue);
				}
			});
	},

c3e75a07   Menouard AZIB   IHM is finished a...
113
114
115
116
117
118
119
120
121
122
	/**
	 * 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...
123
124
125
126
127
128

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

4dbd97ec   Menouard AZIB   Goal is reached b...
129
	/**
c3e75a07   Menouard AZIB   IHM is finished a...
130
131
	 * 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...
132
133
	 * @returns StandardCombo
	 */
c3e75a07   Menouard AZIB   IHM is finished a...
134
	addComboBoxBackgroundSubType: (ref) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
135
136
137
138
139
140
141
142
143
144
145
146
147
148
		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...
149
150
151
					const newValue = amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values[newKey];
					if (newKey === null || newValue === undefined) {
						ref.resetDependentComponents(ref);
4dbd97ec   Menouard AZIB   Goal is reached b...
152
153
154
						return;
					}

c3e75a07   Menouard AZIB   IHM is finished a...
155
					//ComboBoxDim
4dbd97ec   Menouard AZIB   Goal is reached b...
156
					const comboBoxDim = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey);
c3e75a07   Menouard AZIB   IHM is finished a...
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
					//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...
175
					}
c3e75a07   Menouard AZIB   IHM is finished a...
176
177
178
					//By fixed value
					else if (newValue === amdaPlotObj.PlotObjectConfig.bgSubstraction.type.values.fixedvalue) {
						//Hide comboBoxDim
4dbd97ec   Menouard AZIB   Goal is reached b...
179
						comboBoxDim.setVisible(false);
c3e75a07   Menouard AZIB   IHM is finished a...
180
181
182
183
184
185
186
187
						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...
188
					}
4dbd97ec   Menouard AZIB   Goal is reached b...
189
190
191
192
193
194
195
				}
			});

		return comboBoxType;
	},

	/**
c3e75a07   Menouard AZIB   IHM is finished a...
196
197
	 * 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...
198
199
	 * @returns StandardCombo
	 */
c3e75a07   Menouard AZIB   IHM is finished a...
200
	addComboBoxBackgroundSubValue: (ref) => {
4dbd97ec   Menouard AZIB   Goal is reached b...
201
202
203
204
205
206
		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...
207
208
209
210
211
212
				}
			});

		return comboBoxValue;
	},

c3e75a07   Menouard AZIB   IHM is finished a...
213
214
215
216
217
218
	/**
	 * 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...
219
220
221
		const comboBoxDim = ref.addStandardCombo(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey,
			amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimlabel, [],
			(name, newKey, oldKey) => {
c3e75a07   Menouard AZIB   IHM is finished a...
222
				const comboBoxV = ref.getForm().findField(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.key);
11b200e3   Menouard AZIB   Send -1 when text...
223

c3e75a07   Menouard AZIB   IHM is finished a...
224
				if (newKey === amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue) {
86615884   Menouard AZIB   Quand on passe d'...
225
					comboBoxV.setValue(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimNullValue);
c3e75a07   Menouard AZIB   IHM is finished a...
226
227
228
229
230
231
232
					comboBoxV.setVisible(false);
					return;
				}

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

4dbd97ec   Menouard AZIB   Goal is reached b...
236
237
238
				ref.object.set(amdaPlotObj.PlotObjectConfig.bgSubstraction.value.dimkey,
					newKey);

4dbd97ec   Menouard AZIB   Goal is reached b...
239
240
241
242
243
244
			});

		return comboBoxDim;
	},

	/**
c3e75a07   Menouard AZIB   IHM is finished a...
245
	 * Add Background Substraction items
4dbd97ec   Menouard AZIB   Goal is reached b...
246
247
	 * @returns StandardFieldSet
	 */
c3e75a07   Menouard AZIB   IHM is finished a...
248
	getBackgroundSubItems: function () {
0fc6f7a1   Menouard AZIB   Add type combobox...
249
		return [
c3e75a07   Menouard AZIB   IHM is finished a...
250
251
252
253
			this.addComboBoxBackgroundSubType(this),
			this.addComboBoxBackgroundSubDim(this),
			this.addComboBoxBackgroundSubValue(this),
			this.addComboBoxBackgroundSubFixedValue(this)
0fc6f7a1   Menouard AZIB   Add type combobox...
254
255
256
257
		];
	},

	getFormItems: function () {
4dbd97ec   Menouard AZIB   Goal is reached b...
258
259
		const ref = this;
		const field = this.addStandardFieldSet(amdaPlotObj.PlotObjectConfig.bgSubstraction.name,
c3e75a07   Menouard AZIB   IHM is finished a...
260
			amdaPlotObj.PlotObjectConfig.bgSubstraction.name, this.getBackgroundSubItems(),
4dbd97ec   Menouard AZIB   Goal is reached b...
261
			function (name, newKey, oldKey) {
86615884   Menouard AZIB   Quand on passe d'...
262
263
264
265
				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...
266
267
268
				}
			});

17433635   Benjamin Renard   Add series and sp...
269
		return [
0fc6f7a1   Menouard AZIB   Add type combobox...
270
			this.addStandardCombo('spectro-resolution', 'Points per plot', amdaPlotObj.PlotObjectConfig.availableResolutions, function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
271
				ref.object.set('spectro-resolution', value);
0fc6f7a1   Menouard AZIB   Add type combobox...
272
273
			}),
			this.addStandardCombo('spectro-yaxis', 'Y axis', amdaPlotObj.PlotObjectConfig.availableYAxes, function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
274
275
				ref.object.set('spectro-yaxis', value);
				ref.crtTree.refresh();
9b3f49e3   Elena.Budnik   info bulls Plot r...
276
			}),
0fc6f7a1   Menouard AZIB   Add type combobox...
277
			myDesktopApp.addAmdaInfo('MinMaxThreshold', 'vertical-align:bottom'),
9b3f49e3   Elena.Budnik   info bulls Plot r...
278
			this.addStandardFieldSet('Min/Max thresholds', '', this.getValuesRangeItems()),
0fc6f7a1   Menouard AZIB   Add type combobox...
279
			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...
280
				ref.object.set('spectro-log0-as-min', value);
4c89e876   Hacene SI HADJ MOHAND   ihn normalization ok
281
			}),
0fc6f7a1   Menouard AZIB   Add type combobox...
282
			this.addStandardCombo('spectro-normalization', 'Normalization', amdaPlotObj.PlotObjectConfig.availableSpectroNormalization, function (name, value, oldValue) {
4dbd97ec   Menouard AZIB   Goal is reached b...
283
284
				if (ref.object.get('spectro-normalization') != value) {
					ref.object.set('spectro-normalization', value);
0fc6f7a1   Menouard AZIB   Add type combobox...
285
286
287
				}
			}),
			this.addStandardFieldSet('Spike Filtering ( ! Experimental ! )', 'filtering-activated', this.getFilteringItems()),
4dbd97ec   Menouard AZIB   Goal is reached b...
288
			field
17433635   Benjamin Renard   Add series and sp...
289
290
		];
	}
afb7b464   Benjamin Renard   Fix decimal preci...
291
});