/////////////////////////////////////////////////////////////////////////// // Copyright © 2014 - 2018 Esri. All Rights Reserved. // // Licensed under the Apache License Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. /////////////////////////////////////////////////////////////////////////// define([ 'dojo/_base/html', 'dojo/_base/declare', './ValueProvider', 'dijit/_TemplatedMixin', 'dijit/_WidgetsInTemplateMixin', 'dojo/text!./TwoNumbersValueProvider.html', 'dijit/form/NumberTextBox' ], function(html, declare, ValueProvider, _TemplatedMixin, _WidgetsInTemplateMixin, template) { return declare([ValueProvider, _TemplatedMixin, _WidgetsInTemplateMixin], { templateString: template, postCreate: function(){ this.inherited(arguments); html.addClass(this.domNode, 'jimu-two-numbers-filter-value-provider'); }, _onRangeNumberBlur:function(){ if(this._dijit1.validate() && this._dijit2.validate()){ var value1 = parseFloat(this._dijit1.get('value')); var value2 = parseFloat(this._dijit2.get('value')); if(value1 > value2){ this._dijit1.set('value', value2); this._dijit2.set('value', value1); } } }, getDijits: function(){ return [this._dijit1, this._dijit2]; }, setValueObject: function(valueObj){ if(this.isDefined(valueObj.value1)){ this._dijit1.set('value', valueObj.value1); } if(this.isDefined(valueObj.value2)){ this._dijit2.set('value', valueObj.value2); } }, getValueObject: function(){ if(this.isValidValue()){ return { "isValid": true, "type": this.partObj.valueObj.type, "value1": parseFloat(this._dijit1.get('value')), "value2": parseFloat(this._dijit2.get('value')) }; } return null; }, tryGetValueObject: function(){ if(this.isValidValue()){ return this.getValueObject(); }else if(this.isEmptyValue()){ var result = { "isValid": true, "type": this.partObj.valueObj.type, "value1": parseFloat(this._dijit1.get('value')), "value2": parseFloat(this._dijit2.get('value')) }; if(isNaN(result.value1)){ result.value1 = null; } if(isNaN(result.value2)){ result.value2 = null; } return result; } return null; }, setRequired: function(required){ this._dijit1.set("required", required); this._dijit2.set("required", required); } }); });