Blame view

js/app/models/PlotObjects/PlotRequestObject.js 4.69 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
31
              {name: 'one-file-per-interval', type: 'boolean'},
              {name: 'last-tab-id', type: 'int', defaultValue: 0}
437c4dbc   Benjamin Renard   First implementat...
32
33
34
35
    ],
    
    hasMany: {
    		model : 'amdaPlotObj.PlotTabObject',
18d4a11e   Benjamin Renard   Save and load plo...
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    		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...
60
61
62
63
64
65
66
67
    },
    
    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);
18d4a11e   Benjamin Renard   Save and load plo...
68
    	this.set('name', '');
437c4dbc   Benjamin Renard   First implementat...
69
70
    },
    
abe09878   Benjamin Renard   Add panels and ax...
71
    createNewTab: function() {
dbb7bcbe   Benjamin Renard   Add curves defint...
72
73
    	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...
74
75
76
77
    	recs[0].setDefaultValues();
		return recs[0];
    },
    
dbb7bcbe   Benjamin Renard   Add curves defint...
78
79
80
81
82
83
84
    removeTabById: function(tabId) {
    	//Retrieve tab record
    	var tabRecord = this.tabs().getById(tabId);
    	if (tabRecord == null)
    		return false;
    	this.tabs().remove(tabRecord);
    	return true;
abe09878   Benjamin Renard   Add panels and ax...
85
86
    },
    
437c4dbc   Benjamin Renard   First implementat...
87
88
89
90
91
92
93
94
95
96
    getJsonValues : function(hasId) 
    {
    	var requestValues  = new Object();
    	
    	requestValues['nodeType'] = 'request';
    	
    	if (hasId) {
    		requestValues['id'] = this.get('id');
        }
    	
18d4a11e   Benjamin Renard   Save and load plo...
97
98
    	requestValues['leaf'] = true;
    	
437c4dbc   Benjamin Renard   First implementat...
99
100
101
102
    	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');
18d4a11e   Benjamin Renard   Save and load plo...
103
    	requestValues['name'] = this.get('name');
437c4dbc   Benjamin Renard   First implementat...
104
    	
003ba315   Benjamin Renard   Add Epoch Plot an...
105
    	requestValues['timesrc'] =  this.get('timesrc');       
437c4dbc   Benjamin Renard   First implementat...
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
        // 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...
137
138
    	requestValues['last-tab-id'] = this.get('last-tab-id');
    	
437c4dbc   Benjamin Renard   First implementat...
139
140
141
        return requestValues;
    }
});