ParamField.js
4.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/**
* Un composant de 'PlotFunction' qui permet d'afficher le min samplig de chaque paramètre et le nombre de points théoriques entre un start time et stop time
*/
Ext.define('amdaPlotComp.plotFunction.ParamField', {
extend: 'Ext.form.Panel',
/**
* id du composant de type numberfield qui hébérge le min sampling
*/
label_number_field: "NUMBERFIELD",
/**
* id du composant de type numberfield qui hébérge le nombre de points
*/
label_number_field1: "NUMBERFIELD1",
/**
* Le composant parent de celui-ci
*/
parent: null,
initComponent: function () {
const items_params = [];
const minSampling = "Min Sampling (s)";
const minValue = 0;
const labelWitdh = 120;
const width = 30;
for (p in this.params) {
const param = this.params[p];
const fieldSet = {
xtype: 'fieldset',
name: 'FIELDSET' + param.id,
title: param.id,
collapsible: false,
layout: {
type: 'vbox',
align: 'stretch',
},
items: [
{
xtype: 'numberfield',
name: this.label_number_field + param.id,
labelWidth: labelWitdh,
width: width,
value: param.MinSampling,
minValue: minValue,
disabled: true,
fieldLabel: minSampling
},
{
xtype: 'numberfield',
name: this.label_number_field1 + param.id,
labelWidth: labelWitdh,
width: width,
value: 0,
minValue: minValue,
fieldLabel: "Nb Points"
}
]
};
items_params.push(fieldSet);
}
const tabParams = Ext.create('Ext.tab.Panel', {
layout: 'fit',
plain: true,
bodyStyle: 'background: none',
items: items_params
});
const config =
{
title: 'Parameters Sampling',
layout: 'fit',
bodyStyle: { background: '#dfe8f6' },
items: [tabParams]
};
Ext.apply(this, config);
//Les arguments sont les paramètres, chaque paramètre contient un id et un min Sampling
this.callParent(arguments);
},
/**
* Set parent
* @param {*} parent_ le parent qui contient ce composant
*/
setParent: function (parent_) {
this.parent = parent_;
},
/**
* Retourne les valeurs d'id, min sampling et nb_points de tout les parametres passés comme argument
* @returns id1@minSampling1@nb_points1@id2@minSampling2@nb_points2....
*/
getValues: function () {
let list = "";
const delimeter = "@";
let i = 0;
for (p in this.params) {
let param = this.params[p];
const ui_item = this.parent.findField(this.label_number_field1 + param.id);
if (i > 0) list += delimeter;
if (ui_item !== undefined && ui_item !== null) {
list += param.id + delimeter + param.MinSampling + delimeter + ui_item.getValue();
}
i++;
}
return { "param_nb_points": list };
},
/**
* Mettre à jour le nb_points en fonction de la valeur de start time et stop time passés en paramètres
* @param {*} startTime le start time issu du ZoomPlugin
* @param {*} stopTime le stop time issu du ZoomPlugin
*/
setValues: function (startTime, stopTime) {
for (p in this.params) {
let param = this.params[p];
const nb_points = (stopTime.getTime() - startTime.getTime()) / (1000. * param.MinSampling);
const ui_item = this.parent.findField(this.label_number_field1 + param.id);
ui_item.setValue(parseInt(nb_points));
}
}
});