/*---------------- 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.core.UIObject; import nl.idgis.giclient.framework.bars.ProgressBar; import nl.idgis.giclient.modes.MapViewerWebInfo; import nl.idgis.giclient.api.APIInterpreter; import nl.idgis.giclient.gui.attributeviewer.AttributeViewer; import nl.idgis.giclient.gui.authenticationviewer.AuthenticationViewer; import nl.idgis.giclient.gui.authenticationviewer.Authenticator; import nl.idgis.giclient.framework.bars.BarBackGround; import nl.idgis.giclient.framework.bars.ScaleBar; import nl.idgis.giclient.framework.ButtonGrid; import nl.idgis.giclient.framework.ConfirmationFrame; import nl.idgis.giclient.gui.CustomCursor; import nl.idgis.giclient.gui.attributeviewer.DefaultCellRenderer; import nl.idgis.giclient.framework.EventBlocker; import nl.idgis.giclient.framework.FrameWork; import nl.idgis.giclient.framework.GeoideTip; import nl.idgis.giclient.framework.buttons.GIButtonConfig; import nl.idgis.giclient.GICapabilities; import nl.idgis.giclient.GIClientConfig; import nl.idgis.giclient.GIContext; import nl.idgis.giclient.gis.GIS; import nl.idgis.giclient.gui.htmlviewer.HtmlViewer; import nl.idgis.giclient.gui.popupviewer.InfoPopUpViewer; import nl.idgis.giclient.framework.MainFrame; import nl.idgis.giclient.gui.mapviewer.MapCircle; import nl.idgis.giclient.gui.mapviewer.MapEllipse; import nl.idgis.giclient.gui.mapviewer.MapGeometryCollection; import nl.idgis.giclient.gui.mapviewer.MapLineSegment; import nl.idgis.giclient.gui.mapviewer.MapLineString; import nl.idgis.giclient.gui.mapviewer.MapPicker; import nl.idgis.giclient.gui.mapviewer.MapPoint; import nl.idgis.giclient.gui.mapviewer.MapPolygon; import nl.idgis.giclient.gui.mapviewer.MapSquare; import nl.idgis.giclient.gui.mapviewer.MapViewBorder; import nl.idgis.giclient.framework.buttons.ModeButton; import nl.idgis.giclient.framework.buttons.EditModeButton; import nl.idgis.giclient.framework.buttons.NavigationButton; import nl.idgis.giclient.gui.overviewer.OverViewer; import nl.idgis.giclient.query.QueryBuilderViewer; import nl.idgis.giclient.Ruler; import nl.idgis.giclient.gui.mapviewer.SelectBySelection; import nl.idgis.giclient.framework.Stater; import nl.idgis.giclient.gui.attributeviewer.URLCellRenderer; import nl.idgis.giclient.framework.UserMessage; import nl.idgis.giclient.framework.ValuePicker; import nl.idgis.giclient.io.XMLServer; import nl.idgis.giclient.print.PrintRequestViewer; import nl.idgis.giclient.timeanimation.Timebar; import nl.idgis.giclient.framework.SimpleFrame; import nl.idgis.giclient.framework.bars.SimpleButtonBar; import nl.idgis.giclient.gui.propertiesviewer.PropertiesViewer; import nl.idgis.giclient.modes.MapViewerMeasureDistance; import nl.idgis.giclient.modes.MapViewerMeasureArea; import nl.idgis.giclient.modes.MapViewerCreateMultiLineString; import nl.idgis.giclient.framework.SaveDiscardFrame; import nl.idgis.giclient.gui.mapviewer.CoordinateInputFrame; import nl.idgis.giclient.gui.propertiesviewer.PropertiesPane; import nl.idgis.giclient.timeanimation.TimeRangeScaleViewer; import nl.idgis.giclient.util.SRSInfo; import nl.idgis.giclient.util.Strings; import nl.idgis.giclient.GIContextListener; import nl.idgis.giclient.print.PrintDialog; import nl.idgis.giclient.print.PrintMovie; import nl.idgis.giclient.print.ReportDialog; import nl.idgis.giclient.gui.featureinfoviewer.FeatureInfoViewer; import nl.idgis.giclient.template.TemplateMovie; import nl.idgis.giclient.gui.mapviewer.BufferInputFrame; import nl.idgis.giclient.gui.context.AddLayer; class nl.idgis.giclient.GIClient implements GIContextListener{ private static var instance:GIClient = null; private var frameWork:FrameWork = null; private var giClientConfig:GIClientConfig = null; private var giCapabilities:GICapabilities = null; private var giContext:GIContext = null; private var srsInfo:SRSInfo = null; private var gism:GIS = null; // This reference can for some reason not be named "gis". var ruler:Ruler = null; //dummy variables to force compilation by MTASC private var queryBuilderViewer:QueryBuilderViewer = null; private var timeRangeScaleViewer:TimeRangeScaleViewer = null; private var printRequestViewer:PrintRequestViewer = null; private var scaleBar:ScaleBar = null; private var mapViewBorder:MapViewBorder = null; private var defaultCellRenderer:DefaultCellRenderer = null; private var urlCellRenderer:URLCellRenderer = null; private var geoideTip:GeoideTip = null; private var mainFrame:MainFrame = null; private var progressBar:ProgressBar = null; private var attributeViewer:AttributeViewer = null; private var modeButton:ModeButton = null; private var editModeButton:EditModeButton = null; private var overViewer:OverViewer = null; private var navigationButton:NavigationButton = null; private var authenticator:Authenticator = null; private var mapPicker:MapPicker = null; private var apiInterpreter:APIInterpreter = null; private var authenticationViewer:AuthenticationViewer = null; private var customCursor:CustomCursor = null; private var stater:Stater = null; private var barBackGround:BarBackGround = null; private var eventBlocker:EventBlocker = null; private var valuePicker:ValuePicker = null; private var htmlViewer:HtmlViewer = null; private var infoPopUpViewer:InfoPopUpViewer = null; private var buttonGrid:ButtonGrid = null; private var confirmationFrame:ConfirmationFrame = null; private var saveDiscardFrame:SaveDiscardFrame = null; private var userMessage:UserMessage = null; private var mapPoint:MapPoint = null; private var mapLineString:MapLineString = null; private var mapPolygon:MapPolygon = null; private var mapCircle:MapCircle = null; private var mapSquare:MapSquare = null; private var mapEllipse:MapEllipse = null; private var selectBySelection:SelectBySelection = null; private var mapGeometryCollection:MapGeometryCollection = null; private var mapLineSegment:MapLineSegment = null; private var timebar:Timebar = null; private var simpleFrame:SimpleFrame= null; private var simpleButtonBar:SimpleButtonBar= null; private var propertiesViewer:PropertiesViewer= null; private var mapViewerMeasureDistance:MapViewerMeasureDistance = null; private var mapViewerMeasureArea:MapViewerMeasureArea = null; private var mapViewerCreateMultiLineString:MapViewerCreateMultiLineString = null; private var coordinateInputFrame:CoordinateInputFrame = null; private var propertiesPane:PropertiesPane = null; private var printDialog:PrintDialog = null; private var printMovie:PrintMovie = null; //private var printViewerComponent:PrintViewerComponent = null; private var reportDialog:ReportDialog = null; private var strings:Number; private var featureInfoViewer:FeatureInfoViewer; private var templateMovie:TemplateMovie; private var uIComponentExtensions:mx.core.ext.UIComponentExtensions; private var label:mx.controls.Label; private var xMLConnector:mx.data.components.XMLConnector; private var dataSet:mx.data.components.DataSet; private var dataBinding:mx.data.components.DataBinding; private var checkCellRenderer:mx.controls.cells.CheckCellRenderer; private var bufferInputFrame:BufferInputFrame; private var addLayer:AddLayer; function GIClient() { // asynchronous var movieClip:MovieClip = _root.attachMovie("FrameWork", "frameWork", 21, {giClient:this,giClientConfig:this.giClientConfig}); frameWork = FrameWork(movieClip); } static function getInstance():GIClient { if (instance == null) { instance = new GIClient(); } return instance; } function getGisModel():GIS { return gism; } function onLoadFrameWork():Void { // asynchronous giClientConfig = new GIClientConfig(this); } function onLoadGIClientConfig():Void { // asynchronous srsInfo = new SRSInfo(this, giClientConfig); } function onLoadSRSInfo():Void { // asynchronous //strings = new Strings(this, giClientConfig.getStringsURL()); var urls:Array = giClientConfig.getStringsURLS(); strings = urls.length / 2; for(var i:Number = 0; i < urls.length; i+=2) Strings.addFile(urls[i], urls[i + 1], this); } function onLoadStrings():Void { // asynchronous strings--; if(strings == 0) giContext = new GIContext(this, giClientConfig); } function onLoadGIContext():Void { gism = new GIS(this, giContext, srsInfo); ruler = new Ruler(giClientConfig, gism, srsInfo); frameWork.setRuler(ruler); if(giClientConfig.getType()!="Simple"){ frameWork.addMainFrame(); frameWork.addScaleBar(); //addScaleBar() after setting ruler because of references from frameWork to ruler frameWork.addProgressBar(); frameWork["progressBar"].setGIClientConfig(giClientConfig); } var buttonConfigs:Array = giClientConfig.getButtonConfigs(); for (var i:String in buttonConfigs) { GIButtonConfig(buttonConfigs[i]).setRuler(ruler); } if (giClientConfig.getAnimationConfig() != null) { if (giClientConfig.getAnimationConfig().getTimeBarVisible()) { frameWork.addTimeBar(); frameWork["timeBar"].setGIClientConfig(giClientConfig); } } } /** * Returns the path to GIClient.swf */ public function getGIClientUrlPath():String { var chopPos:Number = _root._url.toLowerCase().indexOf("giclient.swf"); var urlPath:String = _root._url.substr(0, chopPos); return urlPath; } /** * Transforms url relative to GIClient.swf into absolute url */ public function getAbosulteUrl(relativeUrl:String):String{ var absUrl:String = relativeUrl; if (relativeUrl.toLowerCase().indexOf("http") == -1) { absUrl = getGIClientUrlPath() + relativeUrl; } return absUrl; } }