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
- DataGridViewColumnCollectionEditor.cs
- RectangleConverter.cs
- SoapProtocolReflector.cs
- ConnectionOrientedTransportChannelListener.cs
- XmlILOptimizerVisitor.cs
- FrameworkContentElementAutomationPeer.cs
- OrderedDictionary.cs
- SqlBuilder.cs
- Aggregates.cs
- UInt64Converter.cs
- IndexingContentUnit.cs
- HasCopySemanticsAttribute.cs
- TextInfo.cs
- RoutingConfiguration.cs
- JulianCalendar.cs
- ContainerSelectorActiveEvent.cs
- _AutoWebProxyScriptEngine.cs
- BindingList.cs
- AnnotationObservableCollection.cs
- SeparatorAutomationPeer.cs
- RepeatBehavior.cs
- ValidationUtility.cs
- DynamicDataRoute.cs
- InkCollectionBehavior.cs
- ScriptReferenceEventArgs.cs
- HybridDictionary.cs
- precedingsibling.cs
- UnsafeNativeMethods.cs
- TypeToken.cs
- FileReservationCollection.cs
- OneOfScalarConst.cs
- GridEntry.cs
- CodeEntryPointMethod.cs
- TypeDelegator.cs
- BoundPropertyEntry.cs
- FormViewUpdatedEventArgs.cs
- SQLUtility.cs
- Win32SafeHandles.cs
- SrgsDocument.cs
- XmlComment.cs
- DataServiceQueryOfT.cs
- Environment.cs
- ListenerConnectionModeReader.cs
- MediaTimeline.cs
- DetailsViewDeletedEventArgs.cs
- EraserBehavior.cs
- CultureTableRecord.cs
- LocalizabilityAttribute.cs
- DiagnosticTrace.cs
- NativeMethods.cs
- GradientStopCollection.cs
- ToolTipAutomationPeer.cs
- brushes.cs
- MimePart.cs
- TypeProvider.cs
- TreeViewAutomationPeer.cs
- NetWebProxyFinder.cs
- EventlogProvider.cs
- GroupItemAutomationPeer.cs
- ControlBuilder.cs
- ControlType.cs
- UIPropertyMetadata.cs
- DeleteIndexBinder.cs
- CountAggregationOperator.cs
- StrokeIntersection.cs
- XslCompiledTransform.cs
- QuotedPrintableStream.cs
- PatternMatcher.cs
- JoinGraph.cs
- ProcessHostFactoryHelper.cs
- ControlIdConverter.cs
- RedirectionProxy.cs
- LowerCaseStringConverter.cs
- AssociationSetEnd.cs
- OperationInfoBase.cs
- SchemaReference.cs
- DataRelationPropertyDescriptor.cs
- DesignSurfaceCollection.cs
- TextFormatterContext.cs
- XmlAttribute.cs
- AutomationTextAttribute.cs
- SqlProviderServices.cs
- StringSource.cs
- VariableBinder.cs
- DropShadowBitmapEffect.cs
- HtmlGenericControl.cs
- TimeSpanSecondsConverter.cs
- DispatcherHookEventArgs.cs
- DbConnectionHelper.cs
- TransformGroup.cs
- GroupByExpressionRewriter.cs
- InheritanceAttribute.cs
- FusionWrap.cs
- _SSPIWrapper.cs
- ColorIndependentAnimationStorage.cs
- wmiprovider.cs
- XmlSchemaInferenceException.cs
- CodeStatement.cs
- HtmlButton.cs
- DiscoveryMessageSequenceGenerator.cs