Code:
/ FX-1434 / FX-1434 / 1.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
- PrimitiveType.cs
- Effect.cs
- DocumentNUp.cs
- PersonalizableAttribute.cs
- XmlValidatingReaderImpl.cs
- ComboBox.cs
- XPathPatternParser.cs
- NullableFloatSumAggregationOperator.cs
- ModulesEntry.cs
- CFGGrammar.cs
- SinglePageViewer.cs
- DataGridClipboardHelper.cs
- AutomationPattern.cs
- RegularExpressionValidator.cs
- OLEDB_Util.cs
- Size3DValueSerializer.cs
- LinkButton.cs
- MimeMultiPart.cs
- ManagementOptions.cs
- FlagsAttribute.cs
- NameTable.cs
- PieceDirectory.cs
- CalendarAutomationPeer.cs
- FastEncoder.cs
- XmlSchemaSet.cs
- UIElement3D.cs
- PointLight.cs
- SqlDataReader.cs
- XmlQueryType.cs
- ViewValidator.cs
- SafeProcessHandle.cs
- Delegate.cs
- StorageMappingFragment.cs
- TextProviderWrapper.cs
- ByteRangeDownloader.cs
- KeyValueInternalCollection.cs
- ToolStripItemRenderEventArgs.cs
- LogicalExpr.cs
- OleDbSchemaGuid.cs
- VectorValueSerializer.cs
- SplitContainerDesigner.cs
- SQLMoney.cs
- OperationParameterInfo.cs
- InstanceDataCollection.cs
- DocumentReference.cs
- CodeConstructor.cs
- ManualResetEvent.cs
- SizeAnimationClockResource.cs
- HttpCachePolicy.cs
- IntSecurity.cs
- SecureConversationSecurityTokenParameters.cs
- _SslState.cs
- DynamicEntity.cs
- RegexFCD.cs
- Missing.cs
- ControlBindingsConverter.cs
- Quad.cs
- Metafile.cs
- PropertyNames.cs
- CommandLibraryHelper.cs
- RequestSecurityTokenSerializer.cs
- FreeFormDragDropManager.cs
- StrokeCollection.cs
- GeneralTransformGroup.cs
- ProgressBarBrushConverter.cs
- HttpEncoderUtility.cs
- SecurityPolicySection.cs
- SynchronizationContext.cs
- Thread.cs
- NameTable.cs
- ExtentCqlBlock.cs
- XamlReader.cs
- LayoutEngine.cs
- SettingsPropertyIsReadOnlyException.cs
- ObjectNotFoundException.cs
- WinFormsComponentEditor.cs
- CallbackValidator.cs
- SizeConverter.cs
- EntityViewContainer.cs
- CssClassPropertyAttribute.cs
- SQLConvert.cs
- ProfileGroupSettingsCollection.cs
- ConfigXmlAttribute.cs
- GradientBrush.cs
- CodeIdentifiers.cs
- WmlLinkAdapter.cs
- AddIn.cs
- Helper.cs
- QilGenerator.cs
- GridViewRowCollection.cs
- ToolboxItemSnapLineBehavior.cs
- ChannelManager.cs
- FixUp.cs
- ServiceX509SecurityTokenProvider.cs
- PlaceHolder.cs
- MediaScriptCommandRoutedEventArgs.cs
- ChineseLunisolarCalendar.cs
- SerializationException.cs
- Win32Native.cs
- Directory.cs