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
- CapabilitiesSection.cs
- ContentElement.cs
- PathFigure.cs
- _CookieModule.cs
- LinkedDataMemberFieldEditor.cs
- InternalsVisibleToAttribute.cs
- ObjectDataProvider.cs
- ToolboxDataAttribute.cs
- _ShellExpression.cs
- EventListener.cs
- DeclarativeConditionsCollection.cs
- Exceptions.cs
- DocumentViewerBaseAutomationPeer.cs
- AspNetSynchronizationContext.cs
- filewebrequest.cs
- ArrayConverter.cs
- CalendarAutoFormat.cs
- RestClientProxyHandler.cs
- EntryIndex.cs
- CompilationPass2TaskInternal.cs
- RandomNumberGenerator.cs
- ConnectionManagementElementCollection.cs
- UnsafeNativeMethodsPenimc.cs
- XomlDesignerLoader.cs
- XComponentModel.cs
- DataSourceHelper.cs
- SamlAdvice.cs
- ProcessDesigner.cs
- TaskExceptionHolder.cs
- HttpServerVarsCollection.cs
- CodeBlockBuilder.cs
- CommandHelper.cs
- SendMailErrorEventArgs.cs
- DelegateSerializationHolder.cs
- DataSourceHelper.cs
- SlipBehavior.cs
- ProfileSettingsCollection.cs
- SubstitutionList.cs
- TaskSchedulerException.cs
- ListGeneralPage.cs
- CachedFontFamily.cs
- DomainUpDown.cs
- ParentControlDesigner.cs
- HtmlForm.cs
- CanonicalFontFamilyReference.cs
- OutputCacheSection.cs
- DEREncoding.cs
- TrayIconDesigner.cs
- MenuItemCollection.cs
- CodeMemberMethod.cs
- MembershipUser.cs
- MemberAccessException.cs
- CommonDialog.cs
- ObjectContextServiceProvider.cs
- TypeName.cs
- EntitySqlQueryCacheEntry.cs
- PageHandlerFactory.cs
- XPathNavigatorReader.cs
- ScriptingRoleServiceSection.cs
- CheckBoxFlatAdapter.cs
- Matrix3D.cs
- MetadataException.cs
- DrawingImage.cs
- XmlAttributeOverrides.cs
- SignatureDescription.cs
- odbcmetadatacolumnnames.cs
- XpsFilter.cs
- InternalPermissions.cs
- TextMetrics.cs
- XPathChildIterator.cs
- DataListCommandEventArgs.cs
- exports.cs
- AttachedPropertyBrowsableAttribute.cs
- DateTimeFormat.cs
- VSWCFServiceContractGenerator.cs
- ViewKeyConstraint.cs
- SystemUnicastIPAddressInformation.cs
- HtmlTitle.cs
- AdRotator.cs
- DecimalAnimationBase.cs
- VirtualDirectoryMapping.cs
- formatter.cs
- Quaternion.cs
- RadialGradientBrush.cs
- XmlKeywords.cs
- Binding.cs
- DataGridColumnHeaderCollection.cs
- Queue.cs
- ListMarkerSourceInfo.cs
- PropertyMetadata.cs
- TableItemStyle.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- DataComponentGenerator.cs
- HtmlGenericControl.cs
- Encoder.cs
- DebuggerAttributes.cs
- DecoderFallback.cs
- Types.cs
- PropertyValueChangedEvent.cs
- RandomNumberGenerator.cs