Blame view

js/app/models/PlotObjects/PlotPanelObject.js 23.4 KB
abe09878   Benjamin Renard   Add panels and ax...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * Project      : AMDA-NG
 * Name         : PlotPanelObject.js
 * @class   amdaPlotObj.PlotPanelObject
 * @extends Ext.data.Model
 * @brief   Plot Panel Business Object Definition 
 * @author  Benjamin Renard
 * @version $Id: PlotPanelObject.js benjamin $
 ******************************************************************************
 *    FT Id     :   Date   : Name - Description
 ******************************************************************************
 *	:           :13/08/2015: BRE  - file creation
 */
 
 		
Ext.define('amdaPlotObj.PlotPanelObject', {
	extend: 'Ext.data.Model',
dbb7bcbe   Benjamin Renard   Add curves defint...
18
	idProperty: 'id',
17433635   Benjamin Renard   Add series and sp...
19
	
abe09878   Benjamin Renard   Add panels and ax...
20
21
	requires: [
	           'amdaPlotObj.PlotObjectConfig',
17433635   Benjamin Renard   Add series and sp...
22
	           'amdaPlotObj.PlotAxisObject',
94abdb37   Benjamin Renard   Add params legend...
23
	           'amdaPlotObj.PlotParamObject',
339866c4   Benjamin Renard   Add text legend d...
24
	           'amdaPlotObj.PlotLegendSeriesObject',
829160b3   Benjamin Renard   Add constants def...
25
	           'amdaPlotObj.PlotLegendTextObject',
a8c54fb9   Benjamin Renard   Add text object p...
26
	           'amdaPlotObj.PlotConstantObject',
dbb7bcbe   Benjamin Renard   Add curves defint...
27
	           'amdaPlotObj.PlotTextObject',
486cc3c7   Benjamin Renard   Add fill elements...
28
29
	           'amdaPlotObj.PlotCurveObject',
	           'amdaPlotObj.PlotFillObject'
abe09878   Benjamin Renard   Add panels and ax...
30
31
32
33
34
35
36
37
38
39
40
41
42
43
	],
	
	fields : [
	          {name: 'id', type: 'string'},
	          {name: 'panel-background-color', type: 'string'},
              {name: 'panel-title-text', type: 'string'},
              {name: 'panel-title-color', type: 'string'},
              {name: 'panel-title-position', type: 'string'},
              {name: 'panel-title-alignment', type: 'string'},
              {name: 'panel-title-font-activated', type: 'boolean'},
              {name: 'panel-title-font-name', type: 'string'},
              {name: 'panel-title-font-size', type: 'int'},
              {name: 'panel-title-font-bold', type: 'boolean'},
              {name: 'panel-title-font-italic', type: 'boolean'},
abe09878   Benjamin Renard   Add panels and ax...
44
45
46
47
48
              {name: 'panel-plot-type', type: 'string'},
              {name: 'panel-font-activated', type: 'boolean'},
              {name: 'panel-font-name', type: 'string'},
              {name: 'panel-font-size', type: 'int'},
              {name: 'panel-font-bold', type: 'boolean'},
a0bf9157   Benjamin Renard   Add tick plot and...
49
              {name: 'panel-font-italic', type: 'boolean'},
003ba315   Benjamin Renard   Add Epoch Plot an...
50
51
52
53
54
55
56
57
58
59
60
61
              //Only used with layout Manual
              {name: 'panel-bounds-x', type: 'float'},
              {name: 'panel-bounds-y', type: 'float'},
              {name: 'panel-bounds-width', type: 'float'},
              {name: 'panel-bounds-height', type: 'float'},
              {name: 'panel-margin-left', type: 'float', useNull:true},
              {name: 'panel-margin-right', type: 'float', useNull:true},
              //Only used with layout Vertical
              {name: 'panel-prefered-width', type: 'float', useNull:true},
              {name: 'panel-prefered-height', type: 'float', useNull:true},
              //Only used for xyPlot
              {name: 'panel-scatter-isotropic', type: 'boolean'},
a0bf9157   Benjamin Renard   Add tick plot and...
62
63
64
65
              //Only used for statusPlot and timePlot
              {name: 'panel-status-position', type: 'string'},
              {name: 'panel-status-colormap', type: 'int'},
              //Only used for tickPlot and timePlot
003ba315   Benjamin Renard   Add Epoch Plot an...
66
67
              {name: 'panel-tick-format', type: 'int'},
              //Only used for epochPlot
6a801541   Benjamin Renard   Add possibility t...
68
69
70
71
72
73
74
75
76
77
78
79
              {name: 'panel-epoch-centertimeid', type: 'string'},
              //Only used for instantPlot
              {name: 'panel-instant-time', type: 'date',
            	  defaultValue:Ext.Date.add(Ext.Date.clearTime(new Date()),Ext.Date.DAY,-1),
            	  convert: function(value,rec) {
            		  if (!Ext.isDate(value)) {
            		    var valueString = new String(value);
            		    var date = new Date(valueString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
            		      return date;
            		  }
            		  return value;
            	  }
94abdb37   Benjamin Renard   Add params legend...
80
81
              },
              //Only used for timePlot, xyPlot, epochPlot and instantPlot
dbb7bcbe   Benjamin Renard   Add curves defint...
82
83
84
85
86
87
              {name: 'panel-legend-series', type: 'auto', defaultValue: null},
              
              {name: 'last-param-id', type: 'int', defaultValue:0},
              {name: 'last-textlegend-id', type: 'int', defaultValue:0},
              {name: 'last-constant-id', type: 'int', defaultValue:0},
              {name: 'last-textobj-id', type: 'int', defaultValue:0},
486cc3c7   Benjamin Renard   Add fill elements...
88
89
              {name: 'last-curve-id', type: 'int', defaultValue:0},
              {name: 'last-fill-id', type: 'int', defaultValue:0}
abe09878   Benjamin Renard   Add panels and ax...
90
91
92
93
94
95
96
97
98
    ],
    
    associations : [
              {
            	  type : 'hasMany', 
            	  model : 'amdaPlotObj.PlotAxisObject',
            	  name  : 'axes'
              },
              {
17433635   Benjamin Renard   Add series and sp...
99
100
101
102
103
            	  type : 'hasMany', 
            	  model : 'amdaPlotObj.PlotParamObject',
            	  name  : 'params'
              },
              {
339866c4   Benjamin Renard   Add text legend d...
104
105
106
107
108
            	  type : 'hasMany', 
            	  model : 'amdaPlotObj.PlotLegendTextObject',
            	  name  : 'textLegends'
              },
              {
829160b3   Benjamin Renard   Add constants def...
109
110
111
112
113
            	  type : 'hasMany', 
            	  model : 'amdaPlotObj.PlotConstantObject',
            	  name  : 'constants'
              },
              {
a8c54fb9   Benjamin Renard   Add text object p...
114
115
116
117
118
            	  type : 'hasMany',
            	  model : 'amdaPlotObj.PlotTextObject',
            	  name : 'textObjs'
              },
              {
dbb7bcbe   Benjamin Renard   Add curves defint...
119
120
121
122
123
            	  type : 'hasMany',
            	  model : 'amdaPlotObj.PlotCurveObject',
            	  name : 'curves'
              },
              {
486cc3c7   Benjamin Renard   Add fill elements...
124
125
126
127
128
            	  type : 'hasMany',
            	  model : 'amdaPlotObj.PlotFillObject',
            	  name : 'fills'
              },
              {
abe09878   Benjamin Renard   Add panels and ax...
129
            	  type  : 'belongsTo',
17433635   Benjamin Renard   Add series and sp...
130
                  model : 'amdaPlotObj.PlotTabObject'
abe09878   Benjamin Renard   Add panels and ax...
131
132
133
              }
    ],
    
18d4a11e   Benjamin Renard   Save and load plo...
134
135
136
137
138
139
140
141
142
    constructor: function(){
        var me = this;
        me.callParent(arguments);
        if ((arguments.length > 0) && arguments[0])
        {
        	if (arguments[0].axes)
        		me.loadAxes(arguments[0].axes);
        	if (arguments[0].params)
        		me.loadParams(arguments[0].params);
a971060f   Benjamin Renard   Fix some bugs
143
144
        	if (arguments[0]['text-legends'])
        		me.loadTextLegends(arguments[0]['text-legends']);
829160b3   Benjamin Renard   Add constants def...
145
146
        	if (arguments[0].constants)
        		me.loadConstants(arguments[0].constants);
a8c54fb9   Benjamin Renard   Add text object p...
147
148
        	if (arguments[0].textObjs)
        		me.loadTextObjs(arguments[0].textObjs);
dbb7bcbe   Benjamin Renard   Add curves defint...
149
150
        	if (arguments[0].curves)
        		me.loadCurves(arguments[0].curves);
486cc3c7   Benjamin Renard   Add fill elements...
151
152
        	if (arguments[0].fills)
        		me.loadFills(arguments[0].fills);
a971060f   Benjamin Renard   Fix some bugs
153
154
        	if (arguments[0]['panel-series-legend'])
        		me.loadSeriesLegend(arguments[0]['panel-series-legend']);
18d4a11e   Benjamin Renard   Save and load plo...
155
156
157
158
159
160
        }
        else
        {
        	//new object, set default fields values
        	me.setDefaultValues();
        }
a971060f   Benjamin Renard   Fix some bugs
161
        this.dirty = false;
18d4a11e   Benjamin Renard   Save and load plo...
162
163
164
165
166
167
168
169
170
171
172
173
    },
    
    loadAxes: function(axes)
    {
       this.axes().loadData(axes);
    },
    
    loadParams: function(params)
    {
       this.params().loadData(params);
    },
    
339866c4   Benjamin Renard   Add text legend d...
174
175
176
177
178
    loadTextLegends: function(textLegends)
    {
       this.textLegends().loadData(textLegends);
    },
    
829160b3   Benjamin Renard   Add constants def...
179
180
181
182
183
    loadConstants: function(constants)
    {
       this.constants().loadData(constants);
    },
    
a8c54fb9   Benjamin Renard   Add text object p...
184
185
186
187
188
    loadTextObjs: function(textObjs)
    {
    	this.textObjs().loadData(textObjs);
    },
    
dbb7bcbe   Benjamin Renard   Add curves defint...
189
190
191
192
193
    loadCurves: function(curves)
    {
    	this.curves().loadData(curves);
    },
    
486cc3c7   Benjamin Renard   Add fill elements...
194
195
196
197
198
    loadFills: function(fills)
    {
    	this.fills().loadData(fills);
    },
    
a971060f   Benjamin Renard   Fix some bugs
199
200
201
202
203
204
    loadSeriesLegend: function(seriesLegend)
    {
    	this.set('panel-legend-series', new amdaPlotObj.PlotLegendSeriesObject(seriesLegend));
    	this.get('panel-legend-series').dirty = false;
    },
    
abe09878   Benjamin Renard   Add panels and ax...
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
    initAxes : function()
    {
    	this.axes().removeAll();
    	switch (this.get('panel-plot-type'))
    	{
    	case 'timePlot' :
    		//Time axis
    		var recs = this.axes().add({id : 'time'});
        	recs[0].setDefaultValues('time');
        	//Y Left Axis
        	recs = this.axes().add({id : 'y-left'});
        	recs[0].setDefaultValues('y-left');
        	//Y Right Axis
        	recs = this.axes().add({id : 'y-right'});
        	recs[0].setDefaultValues('y-right');
        	//Color Axis
        	recs = this.axes().add({id : 'color'});
        	recs[0].setDefaultValues('color');
    		break;
    	case 'xyPlot' :
abe09878   Benjamin Renard   Add panels and ax...
225
    		//X Axis
7ef7ea02   Benjamin Renard   Add erase button ...
226
    		var recs = this.axes().add({id : 'xaxis_id'});
abe09878   Benjamin Renard   Add panels and ax...
227
228
229
230
231
232
233
234
235
236
237
        	recs[0].setDefaultValues('x');
        	//Y Left Axis
        	recs = this.axes().add({id : 'y-left'});
        	recs[0].setDefaultValues('y-left');
        	//Y Right Axis
        	recs = this.axes().add({id : 'y-right'});
        	recs[0].setDefaultValues('y-right');
        	//Color Axis
        	recs = this.axes().add({id : 'color'});
        	recs[0].setDefaultValues('color');
    		break;
6a801541   Benjamin Renard   Add possibility t...
238
239
    	case 'instantPlot' :
    		//X Axis
7ef7ea02   Benjamin Renard   Add erase button ...
240
    		var recs = this.axes().add({id : 'xaxis_id'});
6a801541   Benjamin Renard   Add possibility t...
241
242
243
244
245
246
247
248
        	recs[0].setDefaultValues('x');
        	//Y Left Axis
        	recs = this.axes().add({id : 'y-left'});
        	recs[0].setDefaultValues('y-left');
        	//Color Axis
        	recs = this.axes().add({id : 'color'});
        	recs[0].setDefaultValues('color');
    		break;
abe09878   Benjamin Renard   Add panels and ax...
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
    	case 'epochPlot' :
    		//Epoch Axis
    		var recs = this.axes().add({id : 'epoch'});
        	recs[0].setDefaultValues('epoch');
        	//Y Left Axis
        	recs = this.axes().add({id : 'y-left'});
        	recs[0].setDefaultValues('y-left');
        	//Y Right Axis
        	recs = this.axes().add({id : 'y-right'});
        	recs[0].setDefaultValues('y-right');
        	//Color Axis
        	recs = this.axes().add({id : 'color'});
        	recs[0].setDefaultValues('color');
    		break;
    	case 'statusPlot' :
    	case 'tickPlot' :
    		//Time axis
    		var recs = this.axes().add({id : 'time'});
        	recs[0].setDefaultValues('time');
    		break;
    	}
    },
    
ced82260   Benjamin Renard   Get initial plot ...
272
273
    createNewParam: function(paramId, onAfterCreate) {
    	
dbb7bcbe   Benjamin Renard   Add curves defint...
274
    	this.set('last-param-id', this.get('last-param-id') + 1);
ced82260   Benjamin Renard   Get initial plot ...
275
276
277
    	
    	var emptyPanel = (this.params().getCount() == 0);
    	
fd5552a4   Benjamin Renard   Info for plot ele...
278
    	var recs = this.params().add({id : this.get('last-param-id')});
ced82260   Benjamin Renard   Get initial plot ...
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
    	recs[0].set('param-id', paramId);
    	
    	var me = this;
    	amdaPlotObj.PlotObjectConfig.getParamConfig(paramId, function (success, data) {
    		var availableDrawingObjects = null;
    		
    		//Change type only if the panel is empty!
    		if (success && emptyPanel) {
    			me.changePlotType(data.panel.plotType);
    			if (data.draw)
    				availableDrawingObjects = [{'key' : data.draw.type}];
    			availableDrawingObjects = [{'key' : data.draw.type}];
    		}
    		
    		if (!availableDrawingObjects)
    			availableDrawingObjects = recs[0].getAvailableDrawingObjectByPlotType(me.get('panel-plot-type'));
    			
        	
    		recs[0].changeDrawingType(availableDrawingObjects[0].key, data ? data.draw : null);	

    		if (success && emptyPanel) {
    			if (data.additionalObjects && data.additionalObjects.curves) {
    				Ext.each(data.additionalObjects.curves, function (curveData) {
    					var newCurve = me.createNewCurve();
    					newCurve.loadFromData(curveData,recs[0].getId());
    				});
    			}
    		}
    		
			me.dirty = true;
			
			onAfterCreate(recs[0]);
    	});
17433635   Benjamin Renard   Add series and sp...
312
313
314
315
316
317
318
319
    },
    
    removeParamById: function(paramId) {
    	//Retrieve param record
    	var paramRecord = this.params().getById(paramId);
    	if (paramRecord == null)
    		return false;
    	this.params().remove(paramRecord);
a971060f   Benjamin Renard   Fix some bugs
320
    	this.dirty = true;
17433635   Benjamin Renard   Add series and sp...
321
322
323
    	return true;
    },
    
339866c4   Benjamin Renard   Add text legend d...
324
    createNewTextLegend: function() {
dbb7bcbe   Benjamin Renard   Add curves defint...
325
    	this.set('last-textlegend-id', this.get('last-textlegend-id') + 1);
fd5552a4   Benjamin Renard   Info for plot ele...
326
    	var recs = this.textLegends().add({id : this.get('last-textlegend-id')});
339866c4   Benjamin Renard   Add text legend d...
327
    	recs[0].setDefaultValues();
a971060f   Benjamin Renard   Fix some bugs
328
    	this.dirty = true;
339866c4   Benjamin Renard   Add text legend d...
329
330
331
332
333
334
335
336
337
    	return recs[0];
    },
    
    removeTextLegendById: function(legendId) {
    	//Retrieve text legend record
    	var textLegendRecord = this.textLegends().getById(legendId);
    	if (textLegendRecord == null)
    		return false;
    	this.textLegends().remove(textLegendRecord);
a971060f   Benjamin Renard   Fix some bugs
338
    	this.dirty = true;
339866c4   Benjamin Renard   Add text legend d...
339
340
341
    	return true;
    },
    
829160b3   Benjamin Renard   Add constants def...
342
    createNewConstant: function() {
dbb7bcbe   Benjamin Renard   Add curves defint...
343
    	this.set('last-constant-id', this.get('last-constant-id') + 1);
fd5552a4   Benjamin Renard   Info for plot ele...
344
    	var recs = this.constants().add({id : this.get('last-constant-id')});
829160b3   Benjamin Renard   Add constants def...
345
    	recs[0].setDefaultValues();
a971060f   Benjamin Renard   Fix some bugs
346
    	this.dirty = true;
829160b3   Benjamin Renard   Add constants def...
347
348
349
350
351
352
353
354
355
    	return recs[0];
    },
    
    removeConstantById: function(constantId) {
    	//Retrieve constant record
    	var constantRecord = this.constants().getById(constantId);
    	if (constantRecord == null)
    		return false;
    	this.constants().remove(constantRecord);
a971060f   Benjamin Renard   Fix some bugs
356
    	this.dirty = true;
829160b3   Benjamin Renard   Add constants def...
357
358
359
    	return true;
    },
    
a8c54fb9   Benjamin Renard   Add text object p...
360
    createNewTextObject: function() {
dbb7bcbe   Benjamin Renard   Add curves defint...
361
    	this.set('last-textobj-id', this.get('last-textobj-id') + 1);
fd5552a4   Benjamin Renard   Info for plot ele...
362
    	var recs = this.textObjs().add({id : this.get('last-textobj-id')});
a8c54fb9   Benjamin Renard   Add text object p...
363
    	recs[0].setDefaultValues();
a971060f   Benjamin Renard   Fix some bugs
364
    	this.dirty = true;
a8c54fb9   Benjamin Renard   Add text object p...
365
366
367
368
369
370
371
372
373
    	return recs[0];
    },
    
    removeTextObjectById: function(textObjId) {
    	//Retrieve text object record
    	var textObjRecord = this.textObjs().getById(textObjId);
    	if (textObjRecord == null)
    		return false;
    	this.textObjs().remove(textObjRecord);
a971060f   Benjamin Renard   Fix some bugs
374
    	this.dirty = true;
a8c54fb9   Benjamin Renard   Add text object p...
375
376
377
    	return true;
    },
    
dbb7bcbe   Benjamin Renard   Add curves defint...
378
379
    createNewCurve: function() {
    	this.set('last-curve-id', this.get('last-curve-id') + 1);
fd5552a4   Benjamin Renard   Info for plot ele...
380
    	var recs = this.curves().add({id : this.get('last-curve-id')});
dbb7bcbe   Benjamin Renard   Add curves defint...
381
    	recs[0].setDefaultValues();
a971060f   Benjamin Renard   Fix some bugs
382
    	this.dirty = true;
dbb7bcbe   Benjamin Renard   Add curves defint...
383
384
385
386
387
388
389
390
391
    	return recs[0];
    },
    
    removeCurveById: function(curveId) {
    	//Retrieve curve record
    	var curveRecord = this.curves().getById(curveId);
    	if (curveRecord == null)
    		return false;
    	this.curves().remove(curveRecord);
a971060f   Benjamin Renard   Fix some bugs
392
    	this.dirty = true;
dbb7bcbe   Benjamin Renard   Add curves defint...
393
394
395
    	return true;
    },
    
486cc3c7   Benjamin Renard   Add fill elements...
396
397
398
399
    createNewFill: function() {
    	this.set('last-fill-id', this.get('last-fill-id') + 1);
    	var recs = this.fills().add({id : this.get('last-fill-id')});
    	recs[0].setDefaultValues();
a971060f   Benjamin Renard   Fix some bugs
400
    	this.dirty = true;
486cc3c7   Benjamin Renard   Add fill elements...
401
402
403
404
405
406
407
408
409
    	return recs[0];
    },
    
    removeFillById: function(fillId) {
    	//Retrieve fill record
    	var fillRecord = this.fills().getById(fillId);
    	if (fillRecord == null)
    		return false;
    	this.fills().remove(fillRecord);
a971060f   Benjamin Renard   Fix some bugs
410
    	this.dirty = true;
486cc3c7   Benjamin Renard   Add fill elements...
411
412
413
    	return true;
    },
    
a971060f   Benjamin Renard   Fix some bugs
414
415
    changePlotType: function(plotType) {
    	if (plotType == this.get('panel-plot-type'))
a0bf9157   Benjamin Renard   Add tick plot and...
416
417
418
419
420
421
422
423
424
425
426
427
428
429
    		return;
    	
    	this.set('panel-plot-type', plotType);
    	this.params().each(function (param, index) {
    		var availableDrawingObjects = param.getAvailableDrawingObjectByPlotType(plotType);
    		var compatibleDrawingType = false;
    		Ext.each(availableDrawingObjects, function (item, index) {
    			if (param.get('param-drawing-type') == item.key)
    			{
    				compatibleDrawingType = true;
    			}
    		});
    		if (!compatibleDrawingType)
    		{
a971060f   Benjamin Renard   Fix some bugs
430
    			param.changeDrawingType(availableDrawingObjects[0].key);
a0bf9157   Benjamin Renard   Add tick plot and...
431
432
433
    		}
    	});
    	this.initAxes();
94abdb37   Benjamin Renard   Add params legend...
434
435
436
437
438
439
    	
    	if ((plotType == 'timePlot') || (plotType == 'xyPlot') || (plotType == 'epochPlot') || (plotType == 'instantPlot'))
    	{
    		if (this.get('panel-legend-series') == null)
    		{
    			this.set('panel-legend-series', new amdaPlotObj.PlotLegendSeriesObject());
94abdb37   Benjamin Renard   Add params legend...
440
441
442
    		}
    	}
    	else
339866c4   Benjamin Renard   Add text legend d...
443
    	{
94abdb37   Benjamin Renard   Add params legend...
444
    		this.set('panel-legend-series', null);
339866c4   Benjamin Renard   Add text legend d...
445
446
    		this.textLegends().removeAll();
    	}
fd5552a4   Benjamin Renard   Info for plot ele...
447
448
449
450
451
452
    	
    	if ((plotType == 'tickPlot') || (plotType == 'statusPlot'))
    	{
    		this.textObjs().removeAll();
    		this.constants().removeAll();
    		this.curves().removeAll();
486cc3c7   Benjamin Renard   Add fill elements...
453
    		this.fills().removeAll();
fd5552a4   Benjamin Renard   Info for plot ele...
454
455
456
    	}
    	else if (plotType != 'xyPlot')
    		this.curves().removeAll();
a0bf9157   Benjamin Renard   Add tick plot and...
457
458
    },
    
abe09878   Benjamin Renard   Add panels and ax...
459
460
461
462
463
464
465
466
467
468
469
470
471
472
    setDefaultValues: function()
    {
    	this.set('panel-background-color', amdaPlotObj.PlotObjectConfig.defaultValues.panel.backgroundColor);
    	this.set('panel-title-text', '');
    	this.set('panel-title-color', amdaPlotObj.PlotObjectConfig.defaultValues.panel.title.color);
    	this.set('panel-title-position', amdaPlotObj.PlotObjectConfig.defaultValues.panel.title.position);
    	this.set('panel-title-alignment', amdaPlotObj.PlotObjectConfig.defaultValues.panel.title.alignment);
    	
    	this.set('panel-title-font-activated', false);
    	this.set('panel-title-font-name', amdaPlotObj.PlotObjectConfig.defaultValues.panel.font.name);
    	this.set('panel-title-font-size', amdaPlotObj.PlotObjectConfig.defaultValues.panel.font.size);
    	this.set('panel-title-font-bold', false);
    	this.set('panel-title-font-italic', false);
    	
abe09878   Benjamin Renard   Add panels and ax...
473
474
475
476
477
478
    	this.set('panel-font-activated', false);
    	this.set('panel-font-name', amdaPlotObj.PlotObjectConfig.defaultValues.panel.font.name);
    	this.set('panel-font-size', amdaPlotObj.PlotObjectConfig.defaultValues.panel.font.size);
    	this.set('panel-font-bold', false);
    	this.set('panel-font-italic', false);
    	
003ba315   Benjamin Renard   Add Epoch Plot an...
479
480
481
482
483
484
485
486
487
488
489
    	this.set('panel-bounds-x', 0);
    	this.set('panel-bounds-y', 0);
    	this.set('panel-bounds-width', 1);
    	this.set('panel-bounds-height', 1);
    	
    	this.set('panel-margin-left', null);
    	this.set('panel-margin-right', null);
    	
    	this.set('panel-prefered-width', null);
    	this.set('panel-prefered-height', null);
    	
ced82260   Benjamin Renard   Get initial plot ...
490
    	this.set('panel-scatter-isotropic', amdaPlotObj.PlotObjectConfig.defaultValues.panel.isotropic);
003ba315   Benjamin Renard   Add Epoch Plot an...
491
    	
a0bf9157   Benjamin Renard   Add tick plot and...
492
493
494
495
496
    	this.set('panel-status-position', amdaPlotObj.PlotObjectConfig.defaultValues.panel.status.position);
    	this.set('panel-status-colormap', amdaPlotObj.PlotObjectConfig.defaultValues.panel.status.colorMap);
    	
    	this.set('panel-tick-format', "");
    	
003ba315   Benjamin Renard   Add Epoch Plot an...
497
498
    	this.set('panel-epoch-centertimeid', "");
    	
a971060f   Benjamin Renard   Fix some bugs
499
    	this.changePlotType(amdaPlotObj.PlotObjectConfig.defaultValues.panel.plotType);
abe09878   Benjamin Renard   Add panels and ax...
500
501
    },
    
fd5552a4   Benjamin Renard   Info for plot ele...
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
    getPanelShortInfo : function()
    {
    	var type = amdaPlotObj.PlotObjectConfig.getValueByKey(amdaPlotObj.PlotObjectConfig.availablePlotTypes, this.get('panel-plot-type'));
		var info = 'Id = '+this.get('id')+', '+type;
		switch (this.get('panel-plot-type'))
		{
		case 'instantPlot' :
			info += (', '+Ext.Date.format(this.get('panel-instant-time'), "Y/m/d H:i:s"));
			break;
		case 'epochPlot' :
			info += (', '+this.get('panel-epoch-centertimeid'));
			break;
		case 'xyPlot' :
			if (this.get('panel-scatter-isotropic'))
				info += ', Isotropic';
			break;
		}
		return info;
    },
    
a971060f   Benjamin Renard   Fix some bugs
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
    isDirty : function()
    {
    	if (this.dirty)
    		return true;
    	var d = false;
    	
    	this.axes().each(function (axe, index) {
    		if (axe.isDirty())
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	this.params().each(function (param, index) {
    		if (param.isDirty())
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	this.textLegends().each(function (text, index) {
    		if (text.dirty)
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	this.constants().each(function (constant, index) {
    		if (constant.dirty)
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	this.textObjs().each(function (textObj, index) {
    		if (textObj.dirty)
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	this.curves().each(function (curve, index) {
    		if (curve.isDirty())
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	this.fills().each(function (fill, index) {
    		if (fill.dirty)
    			d = true;
    	});
    	if (d)
    		return d;
    	
    	if (this.get('panel-legend-series') != null)
    		if (this.get('panel-legend-series').dirty)
    			return true;
    	
    	return false;
    },
    
17433635   Benjamin Renard   Add series and sp...
584
    getJsonValues : function() 
abe09878   Benjamin Renard   Add panels and ax...
585
586
587
    {
    	var panelValues  = new Object();
    	
dbb7bcbe   Benjamin Renard   Add curves defint...
588
589
    	panelValues['id'] = this.get('id');
    	
abe09878   Benjamin Renard   Add panels and ax...
590
591
592
593
594
595
596
597
598
599
    	panelValues['panel-background-color'] = this.get('panel-background-color');
    	panelValues['panel-title-text'] = this.get('panel-title-text');
    	panelValues['panel-title-color'] = this.get('panel-title-color');
    	panelValues['panel-title-position'] = this.get('panel-title-position');
    	panelValues['panel-title-alignment'] = this.get('panel-title-alignment');
    	panelValues['panel-title-font-activated'] = this.get('panel-title-font-activated');
    	panelValues['panel-title-font-name'] = this.get('panel-title-font-name');
    	panelValues['panel-title-font-size'] = this.get('panel-title-font-size');
    	panelValues['panel-title-font-bold'] = this.get('panel-title-font-bold');
    	panelValues['panel-title-font-italic'] = this.get('panel-title-font-italic');
abe09878   Benjamin Renard   Add panels and ax...
600
601
602
603
604
605
606
    	panelValues['panel-plot-type'] = this.get('panel-plot-type');
    	panelValues['panel-font-activated'] = this.get('panel-font-activated');
    	panelValues['panel-font-name'] = this.get('panel-font-name');
    	panelValues['panel-font-size'] = this.get('panel-font-size');
    	panelValues['panel-font-bold'] = this.get('panel-font-bold');
    	panelValues['panel-font-italic'] = this.get('panel-font-italic');
    	
003ba315   Benjamin Renard   Add Epoch Plot an...
607
608
609
610
611
612
613
614
615
616
617
618
619
620
    	panelValues['panel-bounds-x']      = this.get('panel-bounds-x');
    	panelValues['panel-bounds-y']      = this.get('panel-bounds-y');
    	panelValues['panel-bounds-width']  = this.get('panel-bounds-width');
    	panelValues['panel-bounds-height'] = this.get('panel-bounds-height');
    	
    	panelValues['panel-margin-left'] = this.get('panel-margin-left') ? this.get('panel-margin-left') : -1;
    	panelValues['panel-margin-right'] = this.get('panel-margin-right') ? this.get('panel-margin-right') : -1;
    	
    	panelValues['panel-prefered-width'] = this.get('panel-prefered-width') ? this.get('panel-prefered-width') : -1;
    	panelValues['panel-prefered-height'] = this.get('panel-prefered-height') ? this.get('panel-prefered-height') : -1;
    	
    	if (this.get('panel-plot-type') == 'xyPlot')
    		panelValues['panel-scatter-isotropic'] = this.get('panel-scatter-isotropic');
    	
a0bf9157   Benjamin Renard   Add tick plot and...
621
622
623
624
625
626
627
628
629
630
631
    	if ((this.get('panel-plot-type') == 'statusPlot') || (this.get('panel-plot-type') == 'timePlot'))
    	{
    		panelValues['panel-status-position'] = this.get('panel-status-position');
    		panelValues['panel-status-colormap'] = this.get('panel-status-colormap');
    	}
    	
    	if ((this.get('panel-plot-type') == 'tickPlot') || (this.get('panel-plot-type') == 'timePlot'))
    	{
    		panelValues['panel-tick-format'] = this.get('panel-tick-format');
    	}
    	
003ba315   Benjamin Renard   Add Epoch Plot an...
632
633
634
    	if (this.get('panel-plot-type') == 'epochPlot')
    		panelValues['panel-epoch-centertimeid'] = this.get('panel-epoch-centertimeid');
    	
6a801541   Benjamin Renard   Add possibility t...
635
636
637
    	if (this.get('panel-plot-type') == 'instantPlot')
    		panelValues['panel-instant-time'] = this.get('panel-instant-time');
    	
a971060f   Benjamin Renard   Fix some bugs
638
    	if (this.get('panel-legend-series') != null)
94abdb37   Benjamin Renard   Add params legend...
639
640
    		panelValues['panel-series-legend'] = this.get('panel-legend-series').getJsonValues();
    	
339866c4   Benjamin Renard   Add text legend d...
641
642
643
644
645
646
    	panelValues['text-legends'] = [];
    	
    	this.textLegends().each(function (legend, index) {
    		panelValues['text-legends'][index] = legend.getJsonValues();
    	});
    	
829160b3   Benjamin Renard   Add constants def...
647
648
649
650
651
652
    	panelValues['constants'] = [];
    	
    	this.constants().each(function (constant, index) {
    		panelValues['constants'][index] = constant.getJsonValues();
    	});
    	
a8c54fb9   Benjamin Renard   Add text object p...
653
654
655
656
657
658
    	panelValues['textObjs'] = [];
    	
    	this.textObjs().each(function (textObj, index) {
    		panelValues['textObjs'][index] = textObj.getJsonValues();
    	});
    	
dbb7bcbe   Benjamin Renard   Add curves defint...
659
660
661
662
663
664
    	panelValues['curves'] = [];
    	
    	this.curves().each(function (curve, index) {
    		panelValues['curves'][index] = curve.getJsonValues();
    	});
    	
486cc3c7   Benjamin Renard   Add fill elements...
665
666
667
668
669
670
    	panelValues['fills'] = [];
    	
    	this.fills().each(function (fill, index) {
    		panelValues['fills'][index] = fill.getJsonValues();
    	});
    	
abe09878   Benjamin Renard   Add panels and ax...
671
672
673
674
675
676
    	panelValues['axes'] = [];
    	
    	this.axes().each(function (axe, index) {
    		panelValues['axes'][index] = axe.getJsonValues();
    	});
    	
17433635   Benjamin Renard   Add series and sp...
677
678
679
680
681
682
    	panelValues['params'] = [];
    	
    	this.params().each(function (param, index) {
    		panelValues['params'][index] = param.getJsonValues();
    	});
    	
dbb7bcbe   Benjamin Renard   Add curves defint...
683
684
685
686
687
    	panelValues['last-param-id'] = this.get('last-param-id');
    	panelValues['last-textlegend-id'] = this.get('last-textlegend-id');
    	panelValues['last-constant-id'] = this.get('last-constant-id');
    	panelValues['last-textobj-id'] = this.get('last-textobj-id');
    	panelValues['last-curve-id'] = this.get('last-curve-id');
486cc3c7   Benjamin Renard   Add fill elements...
688
    	panelValues['last-fill-id'] = this.get('last-fill-id');
dbb7bcbe   Benjamin Renard   Add curves defint...
689
    	
abe09878   Benjamin Renard   Add panels and ax...
690
691
692
    	return panelValues;
    }
});