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
- StringDictionary.cs
- InternalCache.cs
- HostTimeoutsElement.cs
- SmiXetterAccessMap.cs
- SessionPageStatePersister.cs
- ToolStrip.cs
- AttributeData.cs
- Section.cs
- Pen.cs
- Itemizer.cs
- RMEnrollmentPage1.cs
- StatusBarPanel.cs
- XmlReflectionMember.cs
- DataGridViewColumnStateChangedEventArgs.cs
- IisTraceListener.cs
- CollaborationHelperFunctions.cs
- DataGridTable.cs
- StoreAnnotationsMap.cs
- ContentDisposition.cs
- DllHostInitializer.cs
- LinearGradientBrush.cs
- ErrorHandlingReceiver.cs
- RegisteredArrayDeclaration.cs
- ProviderConnectionPoint.cs
- HostExecutionContextManager.cs
- TypeSource.cs
- FormsAuthenticationUser.cs
- TitleStyle.cs
- FixedTextSelectionProcessor.cs
- _DigestClient.cs
- PersonalizationAdministration.cs
- TdsParserSessionPool.cs
- Vector3D.cs
- SafeLocalMemHandle.cs
- DispatcherHookEventArgs.cs
- BamlResourceContent.cs
- SparseMemoryStream.cs
- NetCodeGroup.cs
- Tile.cs
- XslTransform.cs
- sqlser.cs
- ConnectionStringsSection.cs
- NeutralResourcesLanguageAttribute.cs
- SimpleWebHandlerParser.cs
- TextPatternIdentifiers.cs
- InteropAutomationProvider.cs
- serverconfig.cs
- querybuilder.cs
- AlphaSortedEnumConverter.cs
- ContractUtils.cs
- LocalFileSettingsProvider.cs
- ipaddressinformationcollection.cs
- CodeIterationStatement.cs
- DataGridViewCellMouseEventArgs.cs
- ObjectItemCachedAssemblyLoader.cs
- BamlLocalizationDictionary.cs
- Rect.cs
- TextServicesHost.cs
- JavascriptCallbackBehaviorAttribute.cs
- Helpers.cs
- TypeConverterAttribute.cs
- SelectionChangedEventArgs.cs
- ChannelAcceptor.cs
- DragDropManager.cs
- EmulateRecognizeCompletedEventArgs.cs
- RequestCachingSection.cs
- MetabaseServerConfig.cs
- StylusOverProperty.cs
- EdmEntityTypeAttribute.cs
- LocatorManager.cs
- RuntimeArgumentHandle.cs
- SecurityHeaderTokenResolver.cs
- ToolboxBitmapAttribute.cs
- XmlSchemaAttributeGroupRef.cs
- RtType.cs
- AndCondition.cs
- SequenceQuery.cs
- Switch.cs
- DataRelation.cs
- ContractNamespaceAttribute.cs
- DiscoveryDocument.cs
- DataGridViewElement.cs
- HideDisabledControlAdapter.cs
- WrapPanel.cs
- ConnectionsZone.cs
- DataGridViewElement.cs
- XPathPatternParser.cs
- StringReader.cs
- TextBox.cs
- FlowDocumentPageViewerAutomationPeer.cs
- CapabilitiesAssignment.cs
- DetailsViewPageEventArgs.cs
- ConfigUtil.cs
- Options.cs
- OleDbWrapper.cs
- XamlStackWriter.cs
- ASCIIEncoding.cs
- OdbcInfoMessageEvent.cs
- WebReference.cs
- Pen.cs