/*---------------- FILE HEADER --------------------------------------- This file is part of Geoide. Copyright (C) 2005-2006 by: IDgis B.V. http://www.idgis.nl This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact: Herman Assink IDgis bv P.O. Box 15 7450 AA Holten The Netherlands E-Mail: herman.assink@idgis.nl * @version 1.4.0 * @author IDgis team * ------------------------------------------------------------------------*/ import mx.controls.TextInput; import mx.utils.Delegate; import nl.idgis.giclient.filterencoding.PropertyIsBetweenOperation; import nl.idgis.giclient.framework.IDComboBox; import nl.idgis.giclient.query.Operand; class nl.idgis.giclient.query.PropertyIsBetweenOperand extends Operand { private var lowerValueField:Object = null; private var upperValueField:Object = null; function PropertyIsBetweenOperand(){ paint(); } private function paint(){ if(operationViewer.queryColumn.getSearchType().toUpperCase() == "TEXTINPUT"){ lowerValueField = TextInput(attachMovie("TextInput", "lowerValueField", 1,{_width:100})); lowerValueField.setNewTextFormat(textFormat); lowerValueField.text = operationViewer.queryColumn.getValueFormat(); //TODO: format van de inputtext moet exact opgegeven kunnen worden if (operationViewer.queryColumn.getValueFormat() == "99999") { lowerValueField.restrict = "0-9 , -"; } lowerValueField.addEventListener("change", Delegate.create(this, onChangeTypedLowerValue)); upperValueField = TextInput(attachMovie("TextInput", "upperValueField", 4 ,{_x:120,_width:100})); upperValueField.setNewTextFormat(textFormat); upperValueField.text = operationViewer.queryColumn.getValueFormat(); //TODO: format van de inputtext moet exact opgegeven kunnen worden if (operationViewer.queryColumn.getValueFormat() == "99999") { upperValueField.restrict = "0-9 , -"; } upperValueField.addEventListener("change", Delegate.create(this, onChangeTypedUpperValue)); } else { lowerValueField = IDComboBox(attachMovie("IDComboBox", "lowerValueField", 1, {_x:0,_width:100})); lowerValueField.textField.setNewTextFormat(textFormat); lowerValueField.addEventListener("select", Delegate.create(this, onChangeSelectedLowerValue)); lowerValueField.editable = true; upperValueField = IDComboBox(attachMovie("IDComboBox", "upperValueField", 4, {_x:120,_width:100})); upperValueField.textField.setNewTextFormat(textFormat); upperValueField.addEventListener("select", Delegate.create(this, onChangeSelectedUpperValue)); upperValueField.editable = true; } createTextField("and", 3, 102, 0, 100, 20, {enabled:false}); this["and"].setNewTextFormat(textFormat); this["and"].text = "en"; } private function onChangeSelectedLowerValue(eventObject:Object){ var selectedValue:String; // valueField.selectedIndex = 0 is "Alles" of "Selecteer een waarde" if(lowerValueField.selectedIndex != 0){ selectedValue = lowerValueField.selectedItem.data; } else { selectedValue = null; } resetOperationLowerBoundary(selectedValue); if(selectedValue!=null && lowerValueField.selectedItem > upperValueField.selectedItem){ resetOperationUpperBoundary(selectedValue); } operationViewer.onChangeOperand(); } private function onChangeSelectedUpperValue(eventObject:Object){ var selectedValue:String; // valueField.selectedIndex = 0 is "Alles" of "Selecteer een waarde" if(upperValueField.selectedIndex != 0){ selectedValue = upperValueField.selectedItem.data; } else { selectedValue = null; } resetOperationUpperBoundary(selectedValue); if(selectedValue!=null && lowerValueField.selectedItem > upperValueField.selectedItem){ resetOperationLowerBoundary(selectedValue); } operationViewer.onChangeOperand(); } private function onChangeTypedLowerValue(eventObject:Object){ resetOperationLowerBoundary(lowerValueField.text); operationViewer.onChangeOperand(); } private function onChangeTypedUpperValue(eventObject:Object){ resetOperationUpperBoundary(upperValueField.text); operationViewer.onChangeOperand(); } function resetOperationLowerBoundary(selectedValue:String){ PropertyIsBetweenOperation(operationViewer.getOperation()).setLowerBoundary(selectedValue); } function resetOperationUpperBoundary(selectedValue:String){ PropertyIsBetweenOperation(operationViewer.getOperation()).setUpperBoundary(selectedValue); } function reset(values:Array){ lowerValueField.dataProvider = values; //zet de default selectie lowerValueField.selectedIndex = 0; upperValueField.dataProvider = values; //zet de default selectie upperValueField.selectedIndex = 0; resetOperationLowerBoundary(null); resetOperationUpperBoundary(null); IDComboBox(lowerValueField).resize(); IDComboBox(upperValueField).resize(); var lowerWidth:Number = IDComboBox(lowerValueField).getWidth(); var upperWidth:Number = IDComboBox(upperValueField).getWidth(); IDComboBox(upperValueField)._x = lowerWidth + 20; this["and"]._x = lowerWidth + 2; operandWidth= lowerWidth + 20 + upperWidth; operationViewer.onResizeOperand(this); } }