/*---------------- 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.geoma.Envelope; import nl.idgis.giclient.gis.CentreScale; import nl.idgis.giclient.gis.Layer; class nl.idgis.giclient.gui.mapviewer.MapLayerSession { private var mapLayers:Array = null; private var numLoadingMapLayers:Number = 0; private var centreScale:CentreScale = null; private var inVisibleLayers:Array = null; private var visibleActiveAndHasSelection:Array = null; private var envelope:Array = null; private var url:Array = null; private var selectedMapFeatureIDs:Array = null; // 2 dimensional array. private var currentMapFeatureID:Array = null; function MapLayerSession(mapLayers:Array, centreScale:CentreScale) { this.mapLayers = mapLayers; this.centreScale = centreScale; inVisibleLayers = new Array(); visibleActiveAndHasSelection = new Array(); envelope = new Array(); url = new Array(); selectedMapFeatureIDs = new Array(); currentMapFeatureID = new Array(); } function getMapLayers():Array { return mapLayers; } function incNumLoadingMapLayers(n:Number):Void { numLoadingMapLayers += n; } function getNumLoadingMapLayers():Number { return numLoadingMapLayers; } function getCentreScale():CentreScale { return centreScale; } function setInVisibleLayers(layer:Layer, inVisibleLayers:Boolean):Void { this.inVisibleLayers[layer.getMapConnector().getID() + layer.getName()] = inVisibleLayers; } function getInVisibleLayers(layer:Layer):Boolean { return Boolean(inVisibleLayers[layer.getMapConnector().getID() + layer.getName()]); } function setVisibleActiveAndHasSelection(layer:Layer, visibleActiveAndHasSelection:Boolean):Void { this.visibleActiveAndHasSelection[layer.getMapConnector().getID() + layer.getName()] = visibleActiveAndHasSelection; } function getVisibleActiveAndHasSelection(layer:Layer):Boolean { return Boolean(visibleActiveAndHasSelection[layer.getMapConnector().getID() + layer.getName()]); } function setEnvelope(layer:Layer, envelope:Envelope):Void { this.envelope[layer.getMapConnector().getID() + layer.getName()] = envelope; } function getEnvelope(layer:Layer):Envelope { return Envelope(envelope[layer.getMapConnector().getID() + layer.getName()]); } function setURL(layer:Layer, url:String):Void { this.url[layer.getMapConnector().getID() + layer.getName()] = url; } function getURL(layer:Layer):String { return String(url[layer.getMapConnector().getID() + layer.getName()]); } function setSelectedMapFeatureIDs(layer:Layer, selectedMapFeatureIDs:Array):Void { this.selectedMapFeatureIDs[layer.getMapConnector().getID() + layer.getName()] = selectedMapFeatureIDs; } function getSelectedMapFeatureIDs(layer:Layer):Array { return selectedMapFeatureIDs[layer.getMapConnector().getID() + layer.getName()]; // Do not cast to Array here. } function setCurrentMapFeatureID(layer:Layer, currentMapFeatureID:String):Void { this.currentMapFeatureID[layer.getMapConnector().getID() + layer.getName()] = currentMapFeatureID; } function getCurrentMapFeatureID(layer:Layer):String { return String(currentMapFeatureID[layer.getMapConnector().getID() + layer.getName()]); } function getFadingBehavior():String { return "POST_LOADING"; } }