/*---------------- 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 nl.idgis.giclient.framework.buttons.GIButton; import nl.idgis.giclient.modes.Mode; import nl.idgis.giclient.event.StateEvent; import nl.idgis.giclient.event.StateEventListener; import nl.idgis.giclient.event.ChangeEvent; import nl.idgis.giclient.Ruler; class nl.idgis.giclient.framework.buttons.ModeButton extends GIButton implements StateEventListener { private var mode:Mode = null; // Set by init object. function setRuler(ruler:Ruler):Void { super.setRuler(ruler); ruler.addEventListener(this, "Ruler", StateEvent.CHANGE, "currentMode"); settGlowing(); } function onStateEvent(stateEvent:StateEvent):Void { var sourceClassName:String = stateEvent.getSourceClassName(); var actionType:Number = stateEvent.getActionType(); var propertyName:String = stateEvent.getPropertyName(); if (sourceClassName + "_" + actionType + "_" + propertyName == "Ruler_" + StateEvent.CHANGE + "_currentMode") { settGlowing(); } } private function settGlowing():Void { if (ruler.getActiveMode() == mode) { setGlowing(true); } else { setGlowing(false); } } function onRelease():Void { try { ruler.setActiveMode(mode); } catch (e:Error) { _root["frameWork"].state(e.message, 0); } } }