Skip Navigation Links.

Northwind\WebControls\ControlBase.cs

D:\NorthwindForWeb\Northwind\CS\DotNet\ADO.Net\Northwind\WebControls\ControlBase.cs
/*
 * This file was generated by ProCG version 2.0
 *
 * File name:	Northwind\WebControls\ControlBase.cs
 * Language:	C# - ADO.Net 
 * Database:	My Sql
 *
 * Copyright (c) 2002-2019 iGenXSoft.
 * For more information visit http://www.igenxsoft.com
 */


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using Northwind.General;
using Northwind.Data;
using System.Collections;
using System.ComponentModel;

namespace Northwind.WebControls
{
	public class NorthwindControlBase : WebControl, Northwind.WebControls.NorthwindControlInterface
	{
		protected DataManager m_DataManager;
		protected ComboBoxManager m_ComboBoxManager;
		protected NorthwindWebEnv m_WebEnv;
		protected string m_CollectionDataSourceControlId;
		protected CollectionDataSourceWCC m_CollectionDataSourceControl;
		protected IStructDataCollection m_DataCollection;
		protected CStructData m_Data;
		protected int m_Index = 0;
		protected Control m_Control;
		protected StateBag m_ViewState;
		protected string m_CollectionDataInstanceName;
		protected string m_DataInstanceName;
		protected IDictionary m_DataObjectsContainer;

		public  NorthwindControlBase(Control control, StateBag viewState)
		{
			m_Control = control;
			m_ViewState = viewState;
		}

		public string CollectionDataSourceControlId
		{
			get
			{
				if (m_CollectionDataSourceControlId == null || m_CollectionDataSourceControlId.Equals(string.Empty))
				{
					if (m_ViewState["CollectionDataSourceControlId"] == null)
						m_CollectionDataSourceControlId = string.Empty;
					else
						m_CollectionDataSourceControlId = (string)m_ViewState["DataCollectionSourceId"];
				}
				return m_CollectionDataSourceControlId;
			}
			set 
			{
				m_CollectionDataSourceControlId = value;
				m_ViewState["CollectionDataSourceControlId"] = value; 
			}
		}

		public CollectionDataSourceWCC CollectionDataSourceControl
		{
			get
			{
				if (m_CollectionDataSourceControl == null)
				{
					if (String.IsNullOrEmpty(CollectionDataSourceControlId))
						return null;
					Control dataCollectionSource = NorthwindWebEnv.FindControlRecursive(m_Control.Page, CollectionDataSourceControlId);
					if (dataCollectionSource == null)
						throw new Exception("DataCollectionSource with this Id " + CollectionDataSourceControlId + " was not found in the page");
					if (!(dataCollectionSource is CollectionDataSourceWCC))
						throw new Exception("DataCollectionSource control is not type of  CollectionDataSourceWCC");
					m_CollectionDataSourceControl = (CollectionDataSourceWCC)dataCollectionSource;
				}
				return m_CollectionDataSourceControl;
			}
		}

		public int Index
		{
			get
			{
				if (m_ViewState["Index"] == null)
					m_Index = 0;
				else
					m_Index = (int)m_ViewState["Index"];
				return m_Index;
			}
			set { m_ViewState["Index"] = value; }
		}

		public virtual NorthwindWebEnv WebEnv
		{
			get
			{
				return (m_WebEnv);
			}
			set
			{
				m_WebEnv = value;
			}
		}

		public DataManager DataManager
		{
			get
			{
				if (m_DataManager != null)
					return m_DataManager;
				if (m_Control.Page == null)
					return null;
				if (m_Control.Page is NorthwindPage)
				{
					NorthwindPage page = (NorthwindPage)(m_Control.Page);
					m_DataManager = (page.DataManager);
				}
				else
				{
					throw new Exception("Running in an invalid context - This can only in NorthwindPage page type");
				}
				return ((NorthwindPage)(m_Control.Page)).DataManager;
			}
			set
			{
				if (!m_DataManager.Equals(value))
				{
					m_DataManager = value;
				}
			}
		}

		public ComboBoxManager ComboBoxManager
		{
			get
			{
				if (m_ComboBoxManager != null)
					return m_ComboBoxManager;
				if (m_Control.Page == null)
					return null;

				if (m_Control.Page is NorthwindPage)
				{
					NorthwindPage page = (NorthwindPage)(m_Control.Page);
					m_ComboBoxManager = (page.ComboBoxManager);
					m_ComboBoxManager.EmptyOptionText = "";

				}
				else
				{
					throw new Exception("Running in an invalid context - This can only in NorthwindPage page type");
				}
				return m_ComboBoxManager;
			}
			set
			{
				m_ComboBoxManager = value;
				m_ComboBoxManager.EmptyOptionText = "";
			}
		}

		[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
		public virtual CStructData Data
		{
			get
			{
				//if (m_Data != null)
				//{
				//    return m_Data;
				//}
				if (DataCollection != null)
				{
					int dataIndex = DataIndex;

					if (dataIndex >= DataCollection.Count)
						m_Data = null;
					else
						m_Data = DataCollection.GetAtReturnsStructData(dataIndex);
				}
				else
				{
					m_Data = GetStructDataFromDataInstanceName();
				}
				return m_Data;
			}
			set
			{
				if (value != null)
				{
					if (DataCollection != null)
					{
						SetDataToCollection(value);
						m_Data = value;
						return;
					}
					if (DataInstanceName == "")
						throw new Exception("DataInstanceName must be specified");
				}
				m_Data = value;
				if (DataObjectsContainer != null)
				{
					DataObjectsContainer[DataInstanceName] = m_Data;
				}
				else
				{
					if (KeepDataInSession)
						this.Page.Session[DataInstanceName] = m_Data;
					else
						this.m_ViewState[DataInstanceName] = m_Data;
				}

			}
		}

		public void SetDataToCollection(CStructData value)
		{
			IStructDataCollection structDataCollection = DataCollection;
			if (DataIndex >= 0 && structDataCollection != null)
			{
				if (value is CRecordData && (value as CRecordData).IsDeleted())
				{
					structDataCollection.RemoveAt(DataIndex);
				}
				else
				{
					if (DataIndex < structDataCollection.Count)
						structDataCollection[Index] = value;
				}
			}

			SetCollection(structDataCollection);
		}

		protected void SetCollection(IStructDataCollection structDataCollection)
		{

			if (CollectionDataSourceControl != null)
			{
				CollectionDataSourceWCC collectionDataSourde = CollectionDataSourceControl;
				collectionDataSourde.DataCollection = structDataCollection;
			}
			else if (String.IsNullOrEmpty(this.CollectionDataInstanceName))
			{
				if (DataObjectsContainer != null)
				{
					DataObjectsContainer[CollectionDataInstanceName] = structDataCollection;
				}
				else
				{
					if (KeepDataInSession)
						this.Page.Session[CollectionDataInstanceName] = structDataCollection;
					else
						this.m_ViewState[CollectionDataInstanceName] = structDataCollection;
				}
			}
		}

		public IStructDataCollection DataCollection
		{
			get
			{
				if (CollectionDataSourceControl != null)
				{
					CollectionDataSourceWCC collectionDataSourde = CollectionDataSourceControl;
					m_DataCollection = collectionDataSourde.DataCollection;
				}
				else if (!String.IsNullOrEmpty(this.CollectionDataInstanceName))
					m_DataCollection = DataCollectionFromCollectionDataInstanceName();
				return m_DataCollection;
			}
		}

		private IStructDataCollection DataCollectionFromCollectionDataInstanceName()
		{
			IStructDataCollection structDataCollection;

			if (DataObjectsContainer != null)
			{
				structDataCollection = (IStructDataCollection)DataObjectsContainer[CollectionDataInstanceName];
			}
			else
			{
				if (KeepDataInSession)
					structDataCollection = (IStructDataCollection)this.Page.Session[CollectionDataInstanceName];
				else
					structDataCollection = (IStructDataCollection)this.m_ViewState[CollectionDataInstanceName];
			}
			return structDataCollection;
		}
		
		private CStructData GetStructDataFromDataInstanceName()
		{

			if (DataInstanceName == "")
				throw new Exception("DataInstanceName must be specified");

			if (DataObjectsContainer != null)
			{

				if (DataObjectsContainer[DataInstanceName] != null)
				{
					m_Data = (CStructData)DataObjectsContainer[DataInstanceName];
				}
			}
			else
			{
				if (KeepDataInSession)
				{
					if (this.Page != null && this.Page.Session[DataInstanceName] != null)
						m_Data = (CStructData)this.Page.Session[DataInstanceName];
				}
				else
				{
					if (this.m_ViewState[DataInstanceName] != null)
						m_Data = (CStructData)this.m_ViewState[DataInstanceName];
				}
			}
			return m_Data;
		}

		
		public int DataIndex
		{
			get
			{
				int dataIndex = 0;

				if (CollectionDataSourceControl != null)
				{
					dataIndex = CollectionDataSourceControl.StartingIndex + this.Index;
				}
				else if (String.IsNullOrEmpty(this.CollectionDataInstanceName))
					dataIndex = Index;
				else
					dataIndex = Index;
				return dataIndex;
			}
		}
		
		public void DataChangedByClient()
		{
			CollectionDataSourceWCC collectionDataSourde = CollectionDataSourceControl;
			collectionDataSourde.DataCollection = m_DataCollection;
		}
		
		/*
		protected int FieldsListType
		{
			set
			{
				m_FieldsListType = value;
				m_ViewState["FieldsListType"] = value;
			}

			get
			{
				if (m_ViewState["FieldsListType"] == null)
					m_FieldsListType = 0;
				else
					m_FieldsListType = (int)m_ViewState["FieldsListType"];
				return (m_FieldsListType);
			}
		}
		 */

		public System.Collections.IDictionary DataObjectsContainer
		{
			get
			{
				return m_DataObjectsContainer;
			}
			set
			{
				m_DataObjectsContainer = value;
			}
		}

		[Browsable(true)]
		public string CollectionDataInstanceName
		{
			get
			{
				if (String.IsNullOrEmpty(m_CollectionDataInstanceName))
				{
					m_CollectionDataInstanceName = (string)this.m_ViewState["CollectionDataInstanceName"];
				}
				return m_CollectionDataInstanceName;
			}
			set
			{
				m_CollectionDataInstanceName = value;
				this.ViewState["CollectionDataInstanceName"] = value;
			}
		}

		[Browsable(true)]
		public string DataInstanceName
		{
			get
			{
				if (String.IsNullOrEmpty(m_DataInstanceName))
				{
					if (this.m_ViewState["DataInstanceName"] == null)
						DataInstanceName = this.DataObjectName;
					else
						m_DataInstanceName = (string)this.m_ViewState["DataInstanceName"];
				}
				return m_DataInstanceName;
			}
			set
			{
				m_DataInstanceName = value;
				this.m_ViewState["DataInstanceName"] = value;
			}
		}

		[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
		public virtual string DataObjectName
		{
			get
			{
				if (Attributes["DataObjectName"] == null)
				{
					if (m_Data == null)

						return "";
					else
						return m_Data.GetType().ToString();
				}
				else
					return (Attributes["DataObjectName"]);
			}
			set
			{
				Attributes["DataObjectName"] = value;
			}
		}

		[Browsable(true)]
		public bool KeepDataInSession
		{
			get
			{
				if (m_ViewState["KeepDataInSession"] == null)
				{
					KeepDataInSession = true;
				}
				return ((bool)m_ViewState["KeepDataInSession"]);
			}
			set
			{
				m_ViewState["KeepDataInSession"] = value;
			}
		}
	}
}



  //     11370 ProCG uses this line - don't edit it