Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / DataSourceCollectionBase.cs / 1 / DataSourceCollectionBase.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.ComponentModel; using System.Diagnostics; using System.Globalization; ////// internal abstract class DataSourceCollectionBase : CollectionBase, INamedObjectCollection, IObjectWithParent { private DataSourceComponent collectionHost; internal DataSourceCollectionBase(DataSourceComponent collectionHost) { this.collectionHost = collectionHost; } internal virtual DataSourceComponent CollectionHost { get { return this.collectionHost; } set { this.collectionHost = value; } } protected virtual Type ItemType { get { return typeof(IDataSourceNamedObject); } } protected abstract INameService NameService { get; } [Browsable(false)] object IObjectWithParent.Parent { get { return this.collectionHost; } } protected virtual string CreateUniqueName(IDataSourceNamedObject value) { string suggestedName = StringUtil.NotEmpty(value.Name) ? value.Name : value.PublicTypeName; return NameService.CreateUniqueName(this, suggestedName, 1); } ////// This function will check to see namedObject have a name conflict with the names /// used in the collection and fix the name for namedObject if there is a conflict /// /// internal protected virtual void EnsureUniqueName(IDataSourceNamedObject namedObject) { if (namedObject.Name == null || namedObject.Name.Length == 0 || this.FindObject(namedObject.Name) != null) { namedObject.Name = CreateUniqueName(namedObject); } } internal virtual protected IDataSourceNamedObject FindObject(string name) { IEnumerator e = this.InnerList.GetEnumerator(); while( e.MoveNext() ) { IDataSourceNamedObject existing = (IDataSourceNamedObject) e.Current; if (StringUtil.EqualValue(existing.Name, name)) { return existing; } } return null; } public void InsertBefore(object value, object refObject) { int index = List.IndexOf(refObject); if (index >= 0) { List.Insert(index, value); } else { List.Add(value); } } protected override void OnValidate( object value ) { base.OnValidate( value ); ValidateType( value ); } public void Remove(string name) { INamedObject obj = NamedObjectUtil.Find( this, name ); if( obj != null ) { this.List.Remove( obj ); } } ////// This function only check the name to be valid, typically used by Insert function, which already ensure the name is unique /// /// internal protected virtual void ValidateName(IDataSourceNamedObject obj) { this.NameService.ValidateName(obj.Name); } ////// This function checks the name to be unique and valid, typically used by rename /// /// /// internal protected virtual void ValidateUniqueName(IDataSourceNamedObject obj, string proposedName) { this.NameService.ValidateUniqueName(this, obj, proposedName); } protected void ValidateType( object value ) { if (!ItemType.IsInstanceOfType(value)) { throw new InternalException(VSDExceptions.DataSource.INVALID_COLLECTIONTYPE_MSG, VSDExceptions.DataSource.INVALID_COLLECTIONTYPE_CODE, true); } } public INameService GetNameService() { return NameService; } } } // 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
- ProfileEventArgs.cs
- DiscreteKeyFrames.cs
- ADConnectionHelper.cs
- precedingsibling.cs
- DataGridViewRowsAddedEventArgs.cs
- StyleCollection.cs
- FilterableAttribute.cs
- VBIdentifierTrimConverter.cs
- MachineKeyConverter.cs
- SessionStateSection.cs
- NullableLongAverageAggregationOperator.cs
- AsymmetricSignatureFormatter.cs
- ValueQuery.cs
- TabControlAutomationPeer.cs
- StrokeNodeOperations2.cs
- SqlClientWrapperSmiStream.cs
- ProxyGenerator.cs
- SQLString.cs
- TemplateControlParser.cs
- InvalidOperationException.cs
- Size.cs
- WindowsAuthenticationEventArgs.cs
- GroupBox.cs
- IriParsingElement.cs
- GlobalItem.cs
- TextServicesDisplayAttribute.cs
- SqlClientMetaDataCollectionNames.cs
- FontWeights.cs
- CorrelationManager.cs
- APCustomTypeDescriptor.cs
- DateTimeConverter2.cs
- MemoryPressure.cs
- StylusLogic.cs
- WebPartDescription.cs
- PointF.cs
- StateRuntime.cs
- TableRow.cs
- AssemblyEvidenceFactory.cs
- PriorityBindingExpression.cs
- DesignerTransactionCloseEvent.cs
- RulePatternOps.cs
- JsonClassDataContract.cs
- TaskFileService.cs
- ApplicationProxyInternal.cs
- XmlQueryRuntime.cs
- ParentQuery.cs
- ClickablePoint.cs
- METAHEADER.cs
- OutputCacheEntry.cs
- ContourSegment.cs
- TextServicesContext.cs
- RefExpr.cs
- ChannelServices.cs
- CancellationHandlerDesigner.cs
- TextChange.cs
- AssociationSetMetadata.cs
- BindingMAnagerBase.cs
- LifetimeServices.cs
- Vector3DAnimationUsingKeyFrames.cs
- ProtocolsConfigurationEntry.cs
- TypedColumnHandler.cs
- translator.cs
- Parameter.cs
- FrameworkElement.cs
- InputScopeAttribute.cs
- ApplicationSettingsBase.cs
- ContractNamespaceAttribute.cs
- TargetInvocationException.cs
- DocumentSchemaValidator.cs
- AnimatedTypeHelpers.cs
- CommandHelper.cs
- CompoundFileReference.cs
- FontSource.cs
- HyperLinkStyle.cs
- SqlConnectionStringBuilder.cs
- BooleanKeyFrameCollection.cs
- DragCompletedEventArgs.cs
- ImageAnimator.cs
- TrustSection.cs
- CryptographicAttribute.cs
- ProtocolElement.cs
- XPathBinder.cs
- ExpressionEvaluator.cs
- QualifiedCellIdBoolean.cs
- ValidationManager.cs
- NativeCppClassAttribute.cs
- ReflectTypeDescriptionProvider.cs
- BindingsCollection.cs
- SrgsElementFactory.cs
- DocumentSchemaValidator.cs
- SecurityException.cs
- DataGridViewRowConverter.cs
- LicenseContext.cs
- NativeMethods.cs
- LateBoundBitmapDecoder.cs
- SetUserLanguageRequest.cs
- ProcessModuleDesigner.cs
- InputLangChangeEvent.cs
- MembershipSection.cs
- HttpCapabilitiesBase.cs