/** * Project  : AMDA-NG * Name : Download.js * Description : Download Request Business Object Definition * @class amdaModel.Download * @extends amdaModel.AmdaTimeObject * @author myriam * @version $Id: Download.js 2068 2014-02-06 11:27:38Z elena $ */ Ext.define('amdaModel.Download', { extend: 'amdaModel.AmdaTimeObject', fields : [ {name: 'type', type: 'string', defaultValue: 'Download'}, {name: 'downloadSrc', type: 'string'}, {name: 'list', defaultValue: null }, // array of parameters {name: 'timeformat', type: 'string'}, {name: 'timeformatTT', type: 'string'}, {name: 'structure', type: 'string'}, {name: 'refparamSampling', type: 'boolean', defaultValue: false}, {name: 'separateInfoFile', type: 'boolean', defaultValue: false}, {name: 'sampling', type: 'int', defaultValue: '600'}, {name: 'scientificformat', type: 'boolean', defaultValue: false}, {name: 'fileprefix', type: 'string'}, {name: 'fileformat', type: 'string'}, {name: 'fileformatTT', type: 'string'}, {name: 'compression', type: 'string'}, {name: 'compressionTT', type: 'string'} ], propertiesToCopy : 'id,name,downloadSrc,refparamSampling,separateInfoFile,sampling,scientificformat,list,timeformat,timeformatTT,structure,fileprefix,fileformat,fileformatTT,compression,compressionTT', getJsonValues : function(){ var myValues = new Object(); myValues.nodeType = 'download';//amdaModel.DownloadNode.nodeType; myValues.type = this.get('type'); myValues.downloadSrc = this.get('downloadSrc'); //Data download if (myValues.downloadSrc === '0') { // Data download myValues.structure = this.get('structure'); myValues.refparamSampling = this.get('refparamSampling'); myValues.separateInfoFile = this.get('separateInfoFile'); myValues.scientificformat = this.get('scientificformat'); myValues.sampling = this.get('sampling'); myValues.fileprefix = this.get('fileprefix'); myValues.timesrc = this.get('timesrc'); // if there's at least one timeTable in case of Download data 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 myValues.timeTables=[]; // for each interval record Ext.Array.each(timeTables, function(item, index, all){ // get Json simplified value if (!item.$className) { myValues.timeTables[index] = {timeTableName : item.timeTableName, id : item.id}; } // get Json simplified value else { myValues.timeTables[index] = item.getJsonValues(); } }); } else { myValues.startDate = this.get('startDate'); myValues.stopDate = this.get('stopDate'); myValues.durationDay = this.get('durationDay'); myValues.durationHour = this.get('durationHour'); myValues.durationMin = this.get('durationMin'); myValues.durationSec = this.get('durationSec'); } // if there's at least one parameter if (this.get('list') && this.get('list').length) { var list = this.get('list'); myValues.list=[]; Ext.each(list, function(item, index){ myValues.list[index] = item.getJsonValues(); }); } myValues.fileformat = this.get('fileformat'); myValues.timeformat = this.get('timeformat'); myValues.compression = this.get('compression'); } // TT download else if (myValues.downloadSrc === '1') { // if there's at least one timeTable if (this.get('timeTables') && this.get('timeTables').length) { var list = this.get('timeTables'); myValues.list=[]; Ext.each(list, function(item, index){ var tt = new Object(); tt.name = item.get('name'); tt.id = item.get('id'); myValues.list[index] = tt; }); } myValues.fileformat = this.get('fileformatTT'); myValues.timeformat = this.get('timeformatTT'); myValues.compression = this.get('compressionTT'); } // fits images download else { myValues.list=[]; if (this.get('list') && this.get('list').length) Ext.each(this.get('list'), function(item, index){ var image = new Object(); image.name = item['name']; image.url = item['url']; myValues.list[index] = image; }); myValues.compression = this.get('compression'); } myValues.leaf = true; // myValues.nodeType = amdaModel.PlotNode.nodeType; return myValues; } });