Common Custom data source
Common_CustomDataSource_VBNet\TiledMapDataSource_VBNet\MapTocFunctionality.vb
' Copyright 2010 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 ESRI.ArcGIS.ADF.Web.DataSources
Imports ESRI.ArcGIS.ADF.Web

Namespace TiledMapDataSource_VBNet
    Public Class MapTocFunctionality
        Implements IMapTocFunctionality
        Private _tileCacheInfo As TileCacheInfo = Nothing
        Public Sub New(ByVal name_Renamed As String, ByVal resource_Renamed As MapResource, ByVal tileCacheInfo As TileCacheInfo)
            Me.name_Renamed = name_Renamed
            Me.resource_Renamed = resource_Renamed
            _tileCacheInfo = tileCacheInfo
        End Sub

#Region "private member variables"
        Private name_Renamed As String = String.Empty
        Private resource_Renamed As IGISResource = Nothing
        Private initialized_Renamed As Boolean = False
#End Region

#Region "IMapTocFunctionality implementation"
        Public Sub SetLayerVisibility(ByVal mapFunctionalityName As String, ByVal layerID As Object, ByVal visible As Boolean)
            Dim mapFunc As MapFunctionality = GetMapFunctionality(mapFunctionalityName)
            If mapFunc Is Nothing Then
                Throw New ArgumentException("mapFunctionalityName")
            End If
            mapFunc.SetLayerVisibility(layerID.ToString(), visible)
        End Sub

        Public Function GetMapContents(ByVal mapFunctionalityName As String, ByVal format As ESRI.ArcGIS.ADF.Web.WebImageFormat, ByVal useMimeData As Boolean, ByVal showAllDataFrames As Boolean) As ESRI.ArcGIS.ADF.Web.TocDataFrame() Implements IMapTocFunctionality.GetMapContents
            Dim tocDataFrames As TocDataFrame() = New TocDataFrame(0) {}
            tocDataFrames(0) = New TocDataFrame(resource_Renamed.Name)
            If Not _tileCacheInfo.Layers Is Nothing Then
                For Each kvp As KeyValuePair(Of String, String) In _tileCacheInfo.Layers
                    Dim layer As TocLayer = New TocLayer()
                    layer.LayerName = kvp.Value
                    layer.ID = kvp.Key
                    layer.Name = kvp.Key
                    layer.Visible = True
                    layer.AllowVisibilityChange = False
                    tocDataFrames(0).Add(layer)
                Next kvp
            End If
            Return tocDataFrames
        End Function

#End Region

#Region "IGISFunctionality implementation"
        Private _webControl As System.Web.UI.WebControls.WebControl

        Public Property WebControl() As System.Web.UI.WebControls.WebControl Implements IMapTocFunctionality.WebControl
            Get
                Return _webControl
            End Get
            Set(ByVal value As System.Web.UI.WebControls.WebControl)
                _webControl = Value
            End Set
        End Property

        Public Property Name() As String Implements IMapTocFunctionality.Name
            Get
                Return name_Renamed
            End Get
            Set(ByVal value As String)
                name_Renamed = Value
            End Set
        End Property

        Public Property Resource() As IGISResource Implements IMapTocFunctionality.Resource
            Get
                Return resource_Renamed
            End Get
            Set(ByVal value As IGISResource)
                resource_Renamed = Value
            End Set
        End Property

        Public ReadOnly Property Initialized() As Boolean Implements IMapTocFunctionality.Initialized
            Get
                Return initialized_Renamed
            End Get
        End Property

        Public Sub LoadState() Implements IMapTocFunctionality.LoadState
        End Sub

        Public Sub Initialize() Implements IMapTocFunctionality.Initialize
            initialized_Renamed = True
        End Sub

        Public Sub SaveState() Implements IMapTocFunctionality.SaveState
        End Sub


        Public Sub Dispose() Implements IMapTocFunctionality.Dispose
            initialized_Renamed = False
        End Sub

        Public Function Supports(ByVal operation As String) As Boolean Implements IMapTocFunctionality.Supports
            Return True
        End Function
#End Region

#Region "private methods"
        Private Function GetMapFunctionality(ByVal name_Renamed As String) As MapFunctionality
            Dim mapFunctionality As MapFunctionality = TryCast(resource_Renamed.Functionalities.Find(name_Renamed), MapFunctionality)
            Return mapFunctionality
        End Function
#End Region
    End Class
End Namespace