Code:
/ FX-1434 / FX-1434 / 1.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
- EventBuilder.cs
- figurelength.cs
- ListViewItem.cs
- DoubleLink.cs
- PublisherIdentityPermission.cs
- RequestQueue.cs
- WebPartConnectionsConfigureVerb.cs
- RegistryKey.cs
- StorageModelBuildProvider.cs
- ZipPackagePart.cs
- WindowsAltTab.cs
- ActiveXHost.cs
- SkinBuilder.cs
- HttpStreamXmlDictionaryReader.cs
- IssuerInformation.cs
- PrimitiveXmlSerializers.cs
- CheckoutException.cs
- GuidConverter.cs
- FastPropertyAccessor.cs
- StructuralObject.cs
- XpsFilter.cs
- SafeCryptoHandles.cs
- CapabilitiesRule.cs
- KnownTypes.cs
- HttpClientCredentialType.cs
- MsmqBindingFilter.cs
- CacheOutputQuery.cs
- OutputCacheProfileCollection.cs
- IsolatedStorage.cs
- GenerateHelper.cs
- SchemaNamespaceManager.cs
- CanExecuteRoutedEventArgs.cs
- BaseCollection.cs
- ToolStripAdornerWindowService.cs
- CodeMemberProperty.cs
- DbLambda.cs
- DataServiceQueryException.cs
- ParserContext.cs
- GridErrorDlg.cs
- PathNode.cs
- StorageInfo.cs
- ValueProviderWrapper.cs
- RectAnimationUsingKeyFrames.cs
- GroupItemAutomationPeer.cs
- EntityDataSourceViewSchema.cs
- ExtendedTransformFactory.cs
- MDIClient.cs
- Clipboard.cs
- AdRotator.cs
- ModifyActivitiesPropertyDescriptor.cs
- DataQuery.cs
- WorkflowDefinitionContext.cs
- KeyboardEventArgs.cs
- HttpHandlerActionCollection.cs
- DrawTreeNodeEventArgs.cs
- WebConfigurationHostFileChange.cs
- Convert.cs
- MD5Cng.cs
- ImageKeyConverter.cs
- Thickness.cs
- __ConsoleStream.cs
- Merger.cs
- URL.cs
- SemanticResultKey.cs
- CryptoHelper.cs
- XmlCharacterData.cs
- FileDialog_Vista_Interop.cs
- StickyNoteAnnotations.cs
- RangeValidator.cs
- StoreContentChangedEventArgs.cs
- CodePageEncoding.cs
- TargetPerspective.cs
- NamedPipeAppDomainProtocolHandler.cs
- WaitHandle.cs
- CultureSpecificCharacterBufferRange.cs
- GeneralTransform.cs
- CodeStatementCollection.cs
- DbConnectionPoolGroupProviderInfo.cs
- BinaryEditor.cs
- XsdBuildProvider.cs
- UserControlDesigner.cs
- NamespaceMapping.cs
- LayoutInformation.cs
- ExportException.cs
- PermissionSet.cs
- ElementProxy.cs
- FileDialogCustomPlacesCollection.cs
- PackageDigitalSignature.cs
- WebEvents.cs
- XmlText.cs
- SiteMapDataSource.cs
- ComUdtElement.cs
- NativeObjectSecurity.cs
- NamedPipeHostedTransportConfiguration.cs
- MailHeaderInfo.cs
- VScrollBar.cs
- UnsafeNativeMethods.cs
- StatusBarAutomationPeer.cs
- HttpRawResponse.cs
- DataRowCollection.cs