/** * 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; } });