RequestParamObject.js 4.34 KB
/**
 * Project      : AMDA-NG
 * Name         : RequestParamObject.js
 * Description  : Request Param Business Object Definition
 * @class amdaModel.RequestParamObject
 * @extends amdaModel.AmdaObject 
 * 
 * @author benjamin
 * @version $Id:  $
 ******************************************************************************
 *    FT Id     :   Date   : Name - Description
 ******************************************************************************
 *	:           :13/06/2016: benjamin – creation 
 */
 
 		
Ext.define('amdaModel.RequestParamObject', {
	extend: 'amdaModel.AmdaObject',
	
	idProperty: 'id',
    
    fields : [
          {name: 'type', type: 'int'},
          {name: 'paramid', type: 'string'},
	      {name: 'dim1-type-range', type: 'int', defaultValue: 0},
	      {name: 'dim1-min-range', type: 'float', defaultValue: 0.},
	      {name: 'dim1-max-range', type: 'float', defaultValue: 0.},
	      {name: 'dim1-index', type: 'string', defaultValue: '*'},
	      {name: 'dim2-type-range', type: 'int', defaultValue: 0},
	      {name: 'dim2-min-range', type: 'float', defaultValue: 0.},
	      {name: 'dim2-max-range', type: 'float', defaultValue: 0.},
	      {name: 'dim2-index', type: 'string', defaultValue: '*'},
	      {name: 'template_args', type: 'auto', defaultValue: null},
              {name: 'plotonly', type: 'bool', defaultValue: false}
	],

	getDimRange : function(dim) {
		switch (this.get(dim+'-type-range')) {
			case 1:
				return 'range[' + this.get(dim+'-min-range') + ',' + this.get(dim+'-max-range') + ']';
			case 2:
				return 'indexes[' + this.get(dim+'-min-range') + ',' + this.get(dim+'-max-range') + ']';
		}
		return false;
	},
	
	getParamFullName : function() {
		var paramIndexes = '';
		var range_1 = this.getDimRange('dim1');
		var range_2 = this.getDimRange('dim2');
		switch (this.get('type')) {
			case 0:
	  			//scalar - nothing to do
	  			break;
	  		case 1:
	  			//Tab1D
	  			if (range_1 !== false) {
	  				paramIndexes = '(' + range_1 + ')';
	  			}
	  			else if (range_2 !== false) {
	  				paramIndexes = '(' + range_2 + ')';
	  			}
	  			else {
	  				if ((this.get('dim1-index') != '') && (this.get('dim1-index') != '*'))
	  					paramIndexes = '('+this.get('dim1-index')+')';
	  				else if ((this.get('dim2-index') != '') && (this.get('dim2-index') != '*'))
	  					paramIndexes = '('+this.get('dim2-index')+')';
	  			}
	  			break;
	  		case 2:
	  			//Tab2D
	  			var dim1 = '';
	  			if (range_1 !== false)
	  				dim1 = range_1;
	  			else
		  			dim1 = this.get('dim1-index') != '' ? this.get('dim1-index') : "*";
	  			var dim2 = '';
	  			if (range_2 !== false)
	  				dim2 = range_2;
	  			else
	  				dim2 = this.get('dim2-index') != '' ? this.get('dim2-index') : "*";
	  			if ((dim1 != '*') || (dim2 != '*'))
	  				paramIndexes = '('+dim1+','+dim2+')';
		}
	
		var template_args = "";
		if (this.get('template_args')) {
			Ext.Object.each(this.get('template_args'), function (argKey, argValue) {
				template_args += "_";
				if (typeof(argValue) === "boolean") {
					template_args += (argValue ? 1 : 0);
				}
				else {
					template_args += argValue;
				}
			});
		}
		
		return this.get('paramid')+template_args+paramIndexes;
	},
	
	getJsonValues : function() 
    {
    	var paramValues  = new Object();
    	
    	paramValues['id'] = this.get('id');
    	paramValues['paramid'] = this.get('paramid');
    	paramValues['name'] = this.get('name');
    	
    	paramValues['dim1-type-range'] = this.get('dim1-type-range');
    	paramValues['dim1-min-range'] = this.get('dim1-min-range');
    	paramValues['dim1-max-range'] = this.get('dim1-max-range');
    	paramValues['dim1-index'] = this.get('dim1-index');
    	
    	paramValues['dim2-type-range'] = this.get('dim2-type-range');
    	paramValues['dim2-min-range'] = this.get('dim2-min-range');
    	paramValues['dim2-max-range'] = this.get('dim2-max-range');
    	paramValues['dim2-index'] = this.get('dim2-index');
    	
    	paramValues['type'] = this.get('type');
    	
    	if (this.get('template_args') != null) {
    		paramValues['template_args'] = new Object();
    		Ext.Object.each(this.get('template_args'), function (argKey, argValue) {
			if (typeof(argValue) === "boolean") {
				paramValues['template_args'][argKey] = (argValue ? 1 : 0);
			}
			else {
    				paramValues['template_args'][argKey] = argValue;
			}
    		});
    	}
    	
    	return paramValues;
    }
      
});