Download.js 4.66 KB
/**
 * Project      : AMDA-NG
 * Name         : Download.js
 * Description  : Download Request Business Object Definition
 * @class amdaModel.Download
 * @extends amdaModel.AmdaObject 
 * 
 * @author myriam
 * @version $Id: Download.js 2068 2014-02-06 11:27:38Z elena $
 ******************************************************************************
 *    FT Id     :   Date   : Name - Description
 ******************************************************************************
 *	:           :15/12/2011: myriam – creation 
 */
 
 		
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: 'sampling', type: 'int', defaultValue: '600'},
	      {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,sampling,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.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');
	}
	else if (myValues.downloadSrc === '1'){ // TT download
		// 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){                 
                myValues.list[index]=item.get('id');
            });  
        }
        myValues.fileformat = this.get('fileformatTT');
        myValues.timeformat = this.get('timeformatTT');
        myValues.compression = this.get('compressionTT');
	}
	else { // fits images download
	   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;
	}
      
});