Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / DesignTableCollection.cs / 1 / DesignTableCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All Rights Reserved.
// Information Contained Herein is Proprietary and Confidential.
//
//-----------------------------------------------------------------------------
namespace System.Data.Design{
using System;
using System.Collections;
using System.Data;
using System.Diagnostics;
///
///
internal class DesignTableCollection : DataSourceCollectionBase {
private DesignDataSource dataSource;
public DesignTableCollection(DesignDataSource dataSource) : base(dataSource) {
this.dataSource = dataSource;
}
private DataSet DataSet{
get{
if (dataSource != null){
return dataSource.DataSet;
}
return null;
}
}
protected override Type ItemType {
get {
return typeof(DesignTable);
}
}
protected override INameService NameService {
get {
return DataSetNameService.DefaultInstance;
}
}
///
///
internal DesignTable this[string name] {
get {
return (DesignTable)FindObject(name);
}
}
///
///
internal DesignTable this[DataTable dataTable] {
get {
foreach (DesignTable designTable in this) {
if (designTable.DataTable == dataTable) {
return designTable;
}
}
return null;
}
}
///
/// Will throw if name is invalid or a dup
/// Add the DataTable to the dataTable if not added yet
///
public void Add(DesignTable designTable){
//
List.Add(designTable);
}
public bool Contains( DesignTable table ) {
return List.Contains( table );
}
public int IndexOf( DesignTable table ) {
return List.IndexOf( table );
}
public void Remove( DesignTable table ) {
List.Remove( table );
}
///
/// Note: this function need to call base first
/// to ensure the undo model work!
///
protected override void OnInsert( int index, object value ) {
base.OnInsert(index, value);
DesignTable designTable = (DesignTable)value;
if (designTable.Name == null || designTable.Name.Length == 0) {
designTable.Name = CreateUniqueName(designTable);
}
NameService.ValidateUniqueName(this, designTable.Name);
if( (this.dataSource != null) && (designTable.Owner == this.dataSource) ) {
Debug.Fail( "Table already belongs to this DataSource" );
return; // no-op
}
if( (this.dataSource != null) && (designTable.Owner != null) ) {
throw new InternalException( VSDExceptions.DataSource.TABLE_BELONGS_TO_OTHER_DATA_SOURCE_MSG,
VSDExceptions.DataSource.TABLE_BELONGS_TO_OTHER_DATA_SOURCE_CODE );
}
DataSet dataSet = DataSet;
if ((dataSet != null) && (!dataSet.Tables.Contains(designTable.DataTable.TableName))) {
Debug.Assert( this.dataSource != null, "If we were able to get the DataSet we should have a design time data source as well" );
dataSet.Tables.Add(designTable.DataTable);
}
designTable.Owner = this.dataSource;
}
///
/// Remove the DataTable in the dataTable if not removed yet
/// Note: this function need to call base first
/// to ensure the undo model work!
///
protected override void OnRemove( int index, object value ) {
base.OnRemove(index, value);
DesignTable designTable = (DesignTable)value;
DataSet dataSet = DataSet;
if (dataSet != null && designTable.DataTable != null
&& dataSet.Tables.Contains(designTable.DataTable.TableName)){
dataSet.Tables.Remove(designTable.DataTable);
}
designTable.Owner = null;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StylusPointProperties.cs
- GenerateHelper.cs
- TextTrailingWordEllipsis.cs
- BamlBinaryWriter.cs
- TdsParserStateObject.cs
- AsyncPostBackErrorEventArgs.cs
- ManipulationDeltaEventArgs.cs
- TypeSystem.cs
- Double.cs
- Parsers.cs
- WpfWebRequestHelper.cs
- LayoutUtils.cs
- DataGridView.cs
- ApplicationSecurityManager.cs
- PixelShader.cs
- TailCallAnalyzer.cs
- CustomAttribute.cs
- InternalControlCollection.cs
- EllipticalNodeOperations.cs
- CaseKeyBox.xaml.cs
- PerformanceCounterPermissionEntry.cs
- RequiredAttributeAttribute.cs
- DispatcherObject.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- DocumentPageViewAutomationPeer.cs
- TemplateControlParser.cs
- Translator.cs
- ColumnMap.cs
- FontFaceLayoutInfo.cs
- XmlResolver.cs
- CodeParameterDeclarationExpression.cs
- HttpWrapper.cs
- ContentAlignmentEditor.cs
- ToolboxItemSnapLineBehavior.cs
- TrackingDataItem.cs
- GridView.cs
- SemaphoreSecurity.cs
- DiscoveryVersion.cs
- TemplateComponentConnector.cs
- NativeMethods.cs
- SourceChangedEventArgs.cs
- WebServiceHandler.cs
- WebPartEventArgs.cs
- DropDownHolder.cs
- MessagePropertyAttribute.cs
- sapiproxy.cs
- WebHeaderCollection.cs
- ToolZone.cs
- _TimerThread.cs
- InboundActivityHelper.cs
- FrameworkContentElementAutomationPeer.cs
- EdmProperty.cs
- SqlAliasesReferenced.cs
- GlyphInfoList.cs
- TraceFilter.cs
- _IPv4Address.cs
- AbstractDataSvcMapFileLoader.cs
- StaticFileHandler.cs
- CachedCompositeFamily.cs
- QuaternionRotation3D.cs
- Solver.cs
- FontFamily.cs
- RawMouseInputReport.cs
- PerformanceCounterLib.cs
- Pen.cs
- InkCanvas.cs
- UIElementAutomationPeer.cs
- XmlSchemaProviderAttribute.cs
- XLinq.cs
- MaskedTextProvider.cs
- EntityDataSourceChangingEventArgs.cs
- HitTestParameters.cs
- UInt64Storage.cs
- DataGridViewTextBoxColumn.cs
- LogEntryHeaderSerializer.cs
- AnnotationHighlightLayer.cs
- SiteMapSection.cs
- TableColumn.cs
- WindowsSecurityTokenAuthenticator.cs
- HwndMouseInputProvider.cs
- ConfigurationErrorsException.cs
- ServicesUtilities.cs
- XmlMtomReader.cs
- BorderSidesEditor.cs
- SequentialOutput.cs
- XPathAncestorQuery.cs
- ConnectionProviderAttribute.cs
- SqlCacheDependencyDatabaseCollection.cs
- ColorKeyFrameCollection.cs
- SqlDataReader.cs
- ComponentResourceManager.cs
- ObjectQuery.cs
- IsolatedStorageFileStream.cs
- StateChangeEvent.cs
- EventLogPermissionEntry.cs
- SortDescriptionCollection.cs
- SqlUtils.cs
- OfTypeExpression.cs
- X509ServiceCertificateAuthenticationElement.cs
- ExponentialEase.cs