Common CustomDataSourceCommon_CustomDataSource_CSharp\CustomDataSource_CSharp\TiledMapDataSource_CSharp\GISDataSource.cs
// 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.
//
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using System.Collections;
using ESRI.ArcGIS.ADF.Web.DataSources;
namespace TiledMapDataSource_CSharp
{
public class GISDataSource : IGISDataSource
{
public GISDataSource() { }
public GISDataSource(string name, string dataSourceDefinition) : this(name, string.Empty, dataSourceDefinition) { }
public GISDataSource(string name, string identity, string dataSourceDefinition)
{
this.name = name;
this.identity = identity;
this.dataSourceDefinition = dataSourceDefinition;
}
#region IGISDataSource implementation
private Hashtable m_state;
private string name = string.Empty;
private string dataSourceDefinition = string.Empty;
private string identity = string.Empty;
private Page page = null;
private GISResourceCollection resources = new GISResourceCollection();
/// <summary>
/// Name of the GIS Data Source
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}
/// <summary>
/// Definition of this data source
/// </summary>
public string DataSourceDefinition
{
get { return dataSourceDefinition; }
set
{
if (dataSourceDefinition != value)
{
dataSourceDefinition = value;
}
}
}
/// <summary>
/// Identity of user connecting to data source
/// </summary>
public string Identity
{
get { return identity; }
set { identity = value; }
}
/// <summary>
/// The Page using this data source
/// </summary>
public Page Page
{
get { return page; }
set { page = value; }
}
/// <summary>
/// The collection of LodInfoNodes that this data source supports.
/// </summary>
public GISResourceCollection Resources
{
get { return resources; }
set { resources = value; }
}
bool _initialized = false;
/// <summary>
/// Whether the data source has been initialized.
/// </summary>
public bool Initialized
{
get { return _initialized; }
}
/// <summary>
/// Loads state
/// </summary>
/// <param name="state">Hashtable to store state in</param>
public void LoadState(Hashtable state)
{
m_state = state;
}
/// <summary>
/// Initializes the data source
/// </summary>
public void Initialize()
{
_initialized = true;
}
/// <summary>
/// Saves state
/// </summary>
/// <returns>Hashtable with state</param>
public Hashtable SaveState()
{
return m_state;
}
/// <summary>
/// Disposes the data source
/// </summary>
public void Dispose()
{
_initialized = false;
}
public Hashtable State
{
get
{
return m_state;
}
}
/// <summary>
/// Gets the definitions of available LodInfoNodes
/// </summary>
public string[] GetAvailableResourceDefinitions(System.Type resourceType)
{
throw new Exception("The method or operation is not implemented.");
}
/// <summary>
/// Creates a resource with the passed in definition
/// </summary>
/// <param name="resourceDefinition">The definition of the resource to be created.</param>
/// <param name="name">The name of the resource to be created.</param>
/// <returns>A GIS Resource with the passed in definition.</returns>
public IGISResource CreateResource(string resourceDefinition, string name)
{
throw new Exception("The method or operation is not implemented.");
}
#endregion
}
}