import nl.idgis.giclient.gis.Layer; import nl.idgis.giclient.webserviceconnector.giconnector.GIConnector; import nl.idgis.giclient.gis.Column; import nl.idgis.giclient.geoma.Envelope; import nl.idgis.giclient.webserviceconnector.MapConnector; class nl.idgis.giclient.gis.GILayer extends Layer { private var connector:GIConnector; private var featureTypeName:String = ""; private var mapTipColumn:Column = null; private var printLayerName:String = ""; private var printStyle:String = ""; private var dynamicLegend:Boolean; private var reports:Array = null; private var popUpInfoUrl:String = null; private var popUpInfoTrigger:String = null; private var giScales:Array = null; function GILayer(connector:GIConnector, name:String, title:String, visible:Boolean, expanded:Boolean, scales:Array, printLayerName:String, printStyle:String, superLayer:Layer, editable:Boolean, featureTypeName:String, extentZoom:Boolean, dynamicLegend:Boolean ) { super(name, title, visible, expanded, scales, superLayer, editable, extentZoom); this.connector = connector; this.featureTypeName = featureTypeName; this.dynamicLegend = dynamicLegend; } function getGeometryType():String { return connector.getGeometryType(name); } function getServerURL():String { return connector.getURL(); } function getColumns():Array { return connector.getColumns(name); } function setReports(reports:Array):Void { this.reports = reports; } function getReports():Array { return reports; } function getPopUpInfoUrl():String { return popUpInfoUrl; } function getPopUpInfoTrigger():String { return popUpInfoTrigger; } function setPopUpInfo(popUpInfoUrl:String,popUpInfoTrigger:String):Void { this.popUpInfoUrl = popUpInfoUrl; if(popUpInfoTrigger == null){ this.popUpInfoTrigger = "MouseHoover"; } else{ this.popUpInfoTrigger = popUpInfoTrigger; } } function getColumn(columnPath:String):Column { var columns:Array = getColumns(); for (var i:Number = 0; i < columns.length; i++) { if (columns[i].getPath() == columnPath) { return columns[i]; } } return null; } function getHyperlinkColumn():Column { return getColumn(connector.getHyperlinkColumnName(name)); } function getFeatureTypeName():String { //return this.featureTypeName; return connector.getFeatureTypeName(name); } function getFeatureIdPrefix():String { return connector.getFeatureIdPrefix(name); } function getType():String { return connector.getType(name); } function getPrintLayerName():String { return this.printLayerName; } function getPrintStyle():String { return this.printStyle; } function getScales():Array { if(giScales != null) return giScales; var layerScales:Array = super.getScales(); var serverScales:Array = connector.getScales(name); if(layerScales.length == 0) { giScales = serverScales; return serverScales; } else { var min:Number = layerScales[0]; var max:Number = layerScales[layerScales.length - 1]; for(var i:Number = 0; i < serverScales.length; i++) { if(serverScales[i] > min && serverScales[i] < max) { layerScales.push(serverScales[i]); } } layerScales.sort(function(a, b) { if(a > b) return 1; if(a < b) return -1; return 0; }); giScales = layerScales; return layerScales; } } function legendIsDynamic():Boolean{ return dynamicLegend; } function getEnvelope():Envelope { //return connector.getLatLongBoundingBox(name); return connector.getEnvelope(name, this.srs); } function getConnector():GIConnector { return this.connector; } function getMapConnector():MapConnector { return connector; } }