Blame view

js/app/models/PlotObjects/PlotRequestObject.js 5.18 KB
437c4dbc   Benjamin Renard   First implementat...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * Project      : AMDA-NG
 * Name         : PlotRequestObject.js
 * @class   amdaPlotObj.PlotRequestObject
 * @extends amdaModel.AmdaTimeObject
 * @brief   Plot Request Business Object Definition 
 * @author  Benjamin Renard
 * @version $Id: PlotRequestObject.js benjamin $
 ******************************************************************************
 *    FT Id     :   Date   : Name - Description
 ******************************************************************************
 *	:           :21/07/2015: BRE  - file creation
 */
 
 		
Ext.define('amdaPlotObj.PlotRequestObject', {
	extend: 'amdaModel.AmdaTimeObject',
	idProperty: 'id',
	
437c4dbc   Benjamin Renard   First implementat...
20
21
22
23
24
25
26
27
28
29
	requires: [
	           'amdaPlotObj.PlotObjectConfig',
	           'amdaPlotObj.PlotTabObject'
	],
	
	fields : [
	          {name: 'id', type:'string'},
              {name: 'file-format', type: 'string'},
              {name: 'file-output', type: 'string'},
              {name: 'file-prefix', type: 'string'},
dbb7bcbe   Benjamin Renard   Add curves defint...
30
              {name: 'one-file-per-interval', type: 'boolean'},
87658ba0   Benjamin Renard   TT Navigation in ...
31
              {name: 'last-plotted-tab', type: 'int', defaultValue: 0},
dbb7bcbe   Benjamin Renard   Add curves defint...
32
              {name: 'last-tab-id', type: 'int', defaultValue: 0}
437c4dbc   Benjamin Renard   First implementat...
33
34
35
36
    ],
    
    hasMany: {
    		model : 'amdaPlotObj.PlotTabObject',
18d4a11e   Benjamin Renard   Save and load plo...
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    		name  : 'tabs',
    		associationKey:'tabs'
    },
    
    constructor: function(){
    	var me = this;
    	me.callParent(arguments);
        if ((arguments.length > 0) && arguments[0] && arguments[0].tabs)
        {
        	if (arguments[0].tabs)
        		me.loadTabs(arguments[0].tabs);
        }
        else
        {
        	//new object, set default fields values
        	me.setDefaultValues();
        	//New object, force the creation of the first tab
        	me.createNewTab();
        }
    },
    
    loadTabs: function(tabs)
    {
       this.tabs().loadData(tabs);
437c4dbc   Benjamin Renard   First implementat...
61
62
63
64
65
66
67
68
    },
    
    setDefaultValues: function()
    {
    	this.set('file-format', amdaPlotObj.PlotObjectConfig.defaultValues.file.format);
    	this.set('file-output', amdaPlotObj.PlotObjectConfig.defaultValues.file.output);
    	this.set('file-prefix', '');
    	this.set('one-file-per-interval', amdaPlotObj.PlotObjectConfig.defaultValues.file.oneFilePerInterval);
87658ba0   Benjamin Renard   TT Navigation in ...
69
    	this.set('last-plotted-tab', 0);
18d4a11e   Benjamin Renard   Save and load plo...
70
    	this.set('name', '');
437c4dbc   Benjamin Renard   First implementat...
71
72
    },
    
abe09878   Benjamin Renard   Add panels and ax...
73
    createNewTab: function() {
dbb7bcbe   Benjamin Renard   Add curves defint...
74
75
    	this.set('last-tab-id', this.get('last-tab-id') + 1);
    	var recs = this.tabs().add({id : this.get('last-tab-id')});
abe09878   Benjamin Renard   Add panels and ax...
76
    	recs[0].setDefaultValues();
a971060f   Benjamin Renard   Fix some bugs
77
    	this.dirty = true;
abe09878   Benjamin Renard   Add panels and ax...
78
79
80
		return recs[0];
    },
    
dbb7bcbe   Benjamin Renard   Add curves defint...
81
82
83
84
85
86
    removeTabById: function(tabId) {
    	//Retrieve tab record
    	var tabRecord = this.tabs().getById(tabId);
    	if (tabRecord == null)
    		return false;
    	this.tabs().remove(tabRecord);
a971060f   Benjamin Renard   Fix some bugs
87
    	this.dirty = true;
dbb7bcbe   Benjamin Renard   Add curves defint...
88
    	return true;
abe09878   Benjamin Renard   Add panels and ax...
89
90
    },
    
a971060f   Benjamin Renard   Fix some bugs
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
    isDirty : function()
    {
    	if (this.get('id') == '')
    		return false;
    	
    	if (this.dirty)
    		return true;
    	
    	var d = false;
    	this.tabs().each(function (tab, index) {
    		if (tab.isDirty())
    			d = true;
    	});
    	return d;
    },
    
437c4dbc   Benjamin Renard   First implementat...
107
108
109
110
111
112
113
114
115
116
    getJsonValues : function(hasId) 
    {
    	var requestValues  = new Object();
    	
    	requestValues['nodeType'] = 'request';
    	
    	if (hasId) {
    		requestValues['id'] = this.get('id');
        }
    	
18d4a11e   Benjamin Renard   Save and load plo...
117
118
    	requestValues['leaf'] = true;
    	
437c4dbc   Benjamin Renard   First implementat...
119
120
121
122
    	requestValues['file-format'] = this.get('file-format');
    	requestValues['file-output'] = this.get('file-output');
    	requestValues['file-prefix'] = this.get('file-prefix');
    	requestValues['one-file-per-interval'] = this.get('one-file-per-interval');
87658ba0   Benjamin Renard   TT Navigation in ...
123
    	requestValues['last-plotted-tab'] = this.get('last-plotted-tab');
18d4a11e   Benjamin Renard   Save and load plo...
124
    	requestValues['name'] = this.get('name');
437c4dbc   Benjamin Renard   First implementat...
125
    	
003ba315   Benjamin Renard   Add Epoch Plot an...
126
    	requestValues['timesrc'] =  this.get('timesrc');       
437c4dbc   Benjamin Renard   First implementat...
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
        // if there's at least one timeTable name into 'timeTables' collection
        if (this.get('timesrc') == amdaModel.AmdaTimeObject.inputTimeSrc[0] && this.get('timeTables') && this.get('timeTables').length){
            // get complete timeTables collection
            var timeTables = this.get('timeTables');	    
            // init an empty array for timeTables
            requestValues['timeTables'] = [];
            // for each interval record
            Ext.Array.each(timeTables, function(item, index, all){
            	if (!item.$className) {
            		requestValues['timeTables'][index] = {timeTableName : item.timeTableName, id : item.id};
            	}
            	// get Json simplified value 
            	else {
            		requestValues['timeTables'][index] = item.getJsonValues();
            	}
            });            
        } else {
        	requestValues['startDate'] = this.get('startDate');	
            requestValues['stopDate'] = this.get('stopDate'); 
            requestValues['durationDay'] = this.get('durationDay');
            requestValues['durationHour'] = this.get('durationHour');
            requestValues['durationMin'] = this.get('durationMin');
            requestValues['durationSec'] = this.get('durationSec');
        }
    	
    	requestValues['tabs'] = [];
    	
    	this.tabs().each(function (tab, index) {
    		requestValues['tabs'][index] = tab.getJsonValues();
    	});
    	
fd5552a4   Benjamin Renard   Info for plot ele...
158
159
    	requestValues['last-tab-id'] = this.get('last-tab-id');
    	
437c4dbc   Benjamin Renard   First implementat...
160
161
162
        return requestValues;
    }
});