Common CustomDataSourceCommon_CustomDataSource_VBNet\CustomDataSource_VBNet\TiledMapDataSource_VBNet\MapFunctionality.vb
' Copyright 2007 ESRI
'
' All rights reserved under the copyright laws of the United States
' and applicable international laws, treaties, and conventions.
'
' You may freely redistribute and use this sample code, with or
' without modification, provided you include the original copyright
' notice and use restrictions.
'
' See the use restrictions.
'
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Web.UI
Imports ESRI.ArcGIS.ADF.Web.Geometry
Imports ESRI.ArcGIS.ADF.Web.SpatialReference
Imports ESRI.ArcGIS.ADF.Web.DataSources
Imports System.Collections
Imports ESRI.ArcGIS.ADF.Web.Display.Graphics
Imports ESRI.ArcGIS.ADF.Web.Display.Drawing
Imports ESRI.ArcGIS.ADF.Web
Namespace TiledMapDataSource_VBNet
Public Class MapFunctionality
Implements IMapFunctionality
#Region "Constructor"
Public Sub New(ByVal name_Renamed As String, ByVal resource_Renamed As MapResource)
Me.name_Renamed = name_Renamed
Me.resource_Renamed = resource_Renamed
End Sub
Public ReadOnly Property MapResource() As MapResource
Get
Return TryCast(resource_Renamed, MapResource)
End Get
End Property
#End Region
#Region "IMapFunctionality implementation"
#Region "Private Member Vars"
Private displaySettings_Renamed As ESRI.ArcGIS.ADF.Web.DisplaySettings = Nothing
Private webControl_Renamed As System.Web.UI.WebControls.WebControl = Nothing
Private maintainsState_Renamed As Boolean = False
Private spatialReference_Renamed As ESRI.ArcGIS.ADF.Web.SpatialReference.SpatialReference = Nothing
Private layerVisibility_Renamed As Dictionary(Of String, Boolean) = Nothing
#End Region
#Region "Public Properties"
Public Property MaintainsState() As Boolean Implements IMapFunctionality.MaintainsState
Get
Return maintainsState_Renamed
End Get
Set
maintainsState_Renamed = Value
End Set
End Property
Public Property WebControl() As System.Web.UI.WebControls.WebControl Implements IMapFunctionality.WebControl
Get
Return webControl_Renamed
End Get
Set
webControl_Renamed = Value
End Set
End Property
Public ReadOnly Property Units() As ESRI.ArcGIS.ADF.Web.DataSources.Units Implements IMapFunctionality.Units
Get
Throw New NotImplementedException()
End Get
End Property
Public Property DisplaySettings() As ESRI.ArcGIS.ADF.Web.DisplaySettings Implements IMapFunctionality.DisplaySettings
Get
If maintainsState_Renamed Then
If displaySettings_Renamed Is Nothing Then
displaySettings_Renamed = CType(MapResource.DisplaySettings.Clone(), DisplaySettings)
End If
Return displaySettings_Renamed
Else
Return MapResource.DisplaySettings
End If
End Get
Set
If maintainsState_Renamed Then
displaySettings_Renamed = Value
Else
MapResource.DisplaySettings = Value
End If
End Set
End Property
Public ReadOnly Property LayerIDs() As Object()
Get
Dim ids As Object() = New Object(LayerVisibility.Count - 1){}
Dim i As Integer = 0
For Each kvp As KeyValuePair(Of String, Boolean) In LayerVisibility
ids(i) = kvp.Key.ToString()
i += 1
Next kvp
Return ids
End Get
End Property
Private extent_Renamed As Envelope
Public Property Extent() As Envelope
Get
Return extent_Renamed
End Get
Set
extent_Renamed = Value
End Set
End Property
Public Property SpatialReference() As ESRI.ArcGIS.ADF.Web.SpatialReference.SpatialReference Implements IMapFunctionality.SpatialReference
Get
Return spatialReference_Renamed
End Get
Set
spatialReference_Renamed = Value
End Set
End Property
Public Function GetScale() As Double
Return Double.NaN
End Function
Public ReadOnly Property Rotation() As Double Implements IMapFunctionality.Rotation
Get
Return Double.NaN
End Get
End Property
#End Region
#Region "Public Methods"
Public Sub ApplyStateToDataSourceObjects() Implements IMapFunctionality.ApplyStateToDataSourceObjects
Throw New NotImplementedException()
End Sub
Public Sub GetStateFromDataSourceObjects() Implements IMapFunctionality.GetStateFromDataSourceObjects
Throw New NotImplementedException()
End Sub
Public Sub GetLayers(<System.Runtime.InteropServices.Out()> ByRef layerids As String(), <System.Runtime.InteropServices.Out()> ByRef layernames As String()) Implements IMapFunctionality.GetLayers
Throw New NotImplementedException()
End Sub
Public Sub GetVisibleScale(ByVal layerid As String, <System.Runtime.InteropServices.Out()> ByRef minscale As Double, <System.Runtime.InteropServices.Out()> ByRef maxscale As Double) Implements IMapFunctionality.GetVisibleScale
Throw New NotImplementedException()
End Sub
Public Function GetScale(ByVal extent_Renamed As ESRI.ArcGIS.ADF.Web.Geometry.Envelope, ByVal mapWidth As Integer, ByVal mapHeight As Integer) As Double Implements IMapFunctionality.GetScale
Throw New NotImplementedException()
End Function
Public Function GetCopyrightText() As System.Collections.Generic.Dictionary(Of String, String) Implements IMapFunctionality.GetCopyrightText
Throw New NotImplementedException()
End Function
Public Function DrawExtent(ByVal extentToDraw As ESRI.ArcGIS.ADF.Web.Geometry.Envelope) As ESRI.ArcGIS.ADF.Web.MapImage Implements IMapFunctionality.DrawExtent
Throw New NotImplementedException()
End Function
Public ReadOnly Property LayerVisibility() As Dictionary(Of String, Boolean)
Get
If maintainsState_Renamed Then
Return MapResource.layerVisibility
Else
Return layerVisibility_Renamed
End If
End Get
End Property
Public Function GetLayerVisibility(ByVal layerID As String) As Boolean Implements IMapFunctionality.GetLayerVisibility
Return LayerVisibility(layerID)
End Function
Public Sub SetLayerVisibility(ByVal layerID As String, ByVal visible As Boolean) Implements IMapFunctionality.SetLayerVisibility
LayerVisibility(layerID) = visible
End Sub
#End Region
#End Region
#Region "IGISFunctionality implementation"
Private name_Renamed As String = String.Empty
Private resource_Renamed As IGISResource = Nothing
Private initialized_Renamed As Boolean = False
Public Property Name() As String Implements IMapFunctionality.Name
Get
Return name_Renamed
End Get
Set
name_Renamed = Value
End Set
End Property
Public Property Resource() As IGISResource Implements IMapFunctionality.Resource
Get
Return resource_Renamed
End Get
Set
resource_Renamed = Value
End Set
End Property
Public ReadOnly Property Initialized() As Boolean Implements IMapFunctionality.Initialized
Get
Return initialized_Renamed
End Get
End Property
Public Sub LoadState() Implements IMapFunctionality.LoadState
If resource_Renamed.DataSource Is Nothing Then
Return
End If
If resource_Renamed.DataSource.State Is Nothing Then
Return
End If
Dim o As Object = resource_Renamed.DataSource.State(key)
If Not o Is Nothing Then
Dim mf As MapFunctionality = TryCast(o, MapFunctionality)
layerVisibility_Renamed = mf.layerVisibility
End If
End Sub
Public Sub Initialize() Implements IMapFunctionality.Initialize
initialized_Renamed = True
If layerVisibility_Renamed Is Nothing Then
layerVisibility_Renamed = New Dictionary(Of String, Boolean)()
Dim mapRes As MapResource = TryCast(resource_Renamed, MapResource)
For Each kvp As KeyValuePair(Of String, Boolean) In mapRes.layerVisibility
layerVisibility_Renamed.Add(kvp.Key, kvp.Value)
Next kvp
End If
End Sub
Public Sub SaveState() Implements IMapFunctionality.SaveState
If resource_Renamed.DataSource Is Nothing Then
Return
End If
If resource_Renamed.DataSource.State Is Nothing Then
Return
End If
resource_Renamed.DataSource.State(key) = Me
End Sub
Public Sub Dispose() Implements IMapFunctionality.Dispose
initialized_Renamed = False
End Sub
Public Function Supports(ByVal operation As String) As Boolean Implements IMapFunctionality.Supports
Return False
End Function
#End Region
#Region "Private Properties"
Private ReadOnly Property key() As String
Get
Dim szResource As String = CType(resource_Renamed, Object).GetType().ToString() & ":" & resource_Renamed.Name
Dim szThis As String = Me.GetType().ToString() & ":" & name_Renamed
Return (szResource & "," & szThis)
End Get
End Property
#End Region
End Class
End Namespace