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
- FloaterParaClient.cs
- FindCriteriaElement.cs
- PageParserFilter.cs
- TextTreeObjectNode.cs
- XmlSchemaCollection.cs
- DesignerTransactionCloseEvent.cs
- DataGridViewColumnStateChangedEventArgs.cs
- InlineObject.cs
- PropertyManager.cs
- GraphicsPath.cs
- Overlapped.cs
- NonParentingControl.cs
- BrowserCapabilitiesCodeGenerator.cs
- ScriptReferenceBase.cs
- PkcsUtils.cs
- DataColumn.cs
- MergablePropertyAttribute.cs
- HandlerWithFactory.cs
- HMACMD5.cs
- WebPageTraceListener.cs
- GifBitmapEncoder.cs
- Separator.cs
- ProcessHostFactoryHelper.cs
- Emitter.cs
- ArrayWithOffset.cs
- XmlReaderSettings.cs
- DecoderBestFitFallback.cs
- DiagnosticTraceSource.cs
- DatePickerTextBox.cs
- CheckBoxRenderer.cs
- WindowsGraphics.cs
- StructuredTypeEmitter.cs
- CompilationUtil.cs
- DisplayInformation.cs
- KeyFrames.cs
- ManagedWndProcTracker.cs
- SystemUdpStatistics.cs
- BitmapImage.cs
- ComboBox.cs
- RemotingException.cs
- Relationship.cs
- XPathSingletonIterator.cs
- DataMemberAttribute.cs
- TransformCollection.cs
- ServiceChannel.cs
- SqlCacheDependencyDatabaseCollection.cs
- BaseCodePageEncoding.cs
- IriParsingElement.cs
- TabControl.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- HandleExceptionArgs.cs
- _Events.cs
- TimersDescriptionAttribute.cs
- EncryptedPackage.cs
- MappingSource.cs
- BuildManager.cs
- PointAnimationBase.cs
- MatrixCamera.cs
- TraceListener.cs
- LinkLabel.cs
- RijndaelCryptoServiceProvider.cs
- Message.cs
- ObjectDataSourceView.cs
- SQLBytesStorage.cs
- ImageSource.cs
- Missing.cs
- MouseActionConverter.cs
- AssemblyInfo.cs
- Rect3DValueSerializer.cs
- XLinq.cs
- PlainXmlDeserializer.cs
- FormConverter.cs
- FrameworkTextComposition.cs
- TypeElement.cs
- QueryStringHandler.cs
- BamlStream.cs
- ReturnType.cs
- DelegateArgument.cs
- XpsSerializationManager.cs
- TemplateControlBuildProvider.cs
- PageBreakRecord.cs
- ClientUrlResolverWrapper.cs
- TextRunCache.cs
- AuthenticationModulesSection.cs
- ExchangeUtilities.cs
- FileDialogCustomPlacesCollection.cs
- versioninfo.cs
- TextRunCacheImp.cs
- WebPartHelpVerb.cs
- Helper.cs
- FuncTypeConverter.cs
- PathData.cs
- OleDbParameterCollection.cs
- HMACSHA384.cs
- AudioStateChangedEventArgs.cs
- ImageClickEventArgs.cs
- HostingEnvironment.cs
- TransformationRules.cs
- ExceptionUtil.cs
- OleDbConnectionPoolGroupProviderInfo.cs