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
- FixedDSBuilder.cs
- RegularExpressionValidator.cs
- SurrogateChar.cs
- CloseSequence.cs
- DropShadowEffect.cs
- TemplateXamlTreeBuilder.cs
- SecureEnvironment.cs
- IDReferencePropertyAttribute.cs
- ContentValidator.cs
- EncryptedReference.cs
- RepeaterItemEventArgs.cs
- TypedReference.cs
- VectorCollection.cs
- SerializerWriterEventHandlers.cs
- VerticalAlignConverter.cs
- TableCell.cs
- _SingleItemRequestCache.cs
- ToolTipService.cs
- ImportedNamespaceContextItem.cs
- RNGCryptoServiceProvider.cs
- SiblingIterators.cs
- Page.cs
- DrawTreeNodeEventArgs.cs
- Transform3DGroup.cs
- sqlstateclientmanager.cs
- WebPartEditVerb.cs
- TreeNodeBinding.cs
- VariantWrapper.cs
- CalendarData.cs
- Utils.cs
- XamlParser.cs
- ErrorTolerantObjectWriter.cs
- PolicyAssertionCollection.cs
- TreeViewCancelEvent.cs
- LoginCancelEventArgs.cs
- TextFormatterHost.cs
- CompilationSection.cs
- RoleManagerSection.cs
- SupportsEventValidationAttribute.cs
- TypeBrowser.xaml.cs
- CryptoProvider.cs
- WindowsRegion.cs
- FixedHyperLink.cs
- EventSchemaTraceListener.cs
- GridView.cs
- PropertyChangedEventManager.cs
- PrivilegeNotHeldException.cs
- XmlSchemaExporter.cs
- WebPartCatalogCloseVerb.cs
- Peer.cs
- Crypto.cs
- CustomSignedXml.cs
- Activator.cs
- SQLCharsStorage.cs
- ExpressionStringBuilder.cs
- ExceptionUtil.cs
- TripleDESCryptoServiceProvider.cs
- XmlAtomicValue.cs
- ResourceReferenceKeyNotFoundException.cs
- StrokeCollection2.cs
- ImageButton.cs
- CodeExpressionCollection.cs
- DbConnectionStringBuilder.cs
- JsonObjectDataContract.cs
- AudioStateChangedEventArgs.cs
- SiteMapDataSourceDesigner.cs
- GridLength.cs
- ParseElementCollection.cs
- PerformanceCounterNameAttribute.cs
- ContractUtils.cs
- DictionaryEntry.cs
- XmlResolver.cs
- LogReserveAndAppendState.cs
- FixedTextSelectionProcessor.cs
- LogReservationCollection.cs
- UidManager.cs
- BaseHashHelper.cs
- DetailsViewRowCollection.cs
- Vector.cs
- TraceHandler.cs
- WebBrowserBase.cs
- IInstanceContextProvider.cs
- BrowserInteropHelper.cs
- DrawingState.cs
- DefaultIfEmptyQueryOperator.cs
- PageContent.cs
- FontDriver.cs
- ResourceManager.cs
- SystemIPv6InterfaceProperties.cs
- ExpressionBuilderCollection.cs
- TripleDES.cs
- HttpPostProtocolImporter.cs
- OpenTypeLayoutCache.cs
- EDesignUtil.cs
- CodeDirectiveCollection.cs
- Propagator.ExtentPlaceholderCreator.cs
- WebPartDisplayModeCancelEventArgs.cs
- HttpResponse.cs
- HandleRef.cs
- regiisutil.cs