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
- DesignerDataStoredProcedure.cs
- DataGridViewBindingCompleteEventArgs.cs
- PrintingPermissionAttribute.cs
- ParameterRetriever.cs
- Operator.cs
- XmlSchemaAttributeGroup.cs
- EventDescriptor.cs
- Geometry3D.cs
- ImagingCache.cs
- CalendarDateRange.cs
- NonNullItemCollection.cs
- MetadataArtifactLoaderCompositeFile.cs
- NamespaceDecl.cs
- Timer.cs
- DataServiceProviderWrapper.cs
- EntityModelBuildProvider.cs
- EdmItemCollection.cs
- TextViewBase.cs
- Application.cs
- SecurityDocument.cs
- TransactionState.cs
- TdsValueSetter.cs
- IOThreadTimer.cs
- ITextView.cs
- PeerNameRegistration.cs
- UrlMappingsSection.cs
- ClusterUtils.cs
- HoistedLocals.cs
- CodeGeneratorOptions.cs
- TimeSpanStorage.cs
- SystemIPGlobalStatistics.cs
- StrokeNodeOperations2.cs
- FlowDocumentScrollViewer.cs
- Tokenizer.cs
- DateTimeParse.cs
- FixedLineResult.cs
- WindowsPen.cs
- DataGridViewSelectedColumnCollection.cs
- DrawingAttributeSerializer.cs
- querybuilder.cs
- PublishLicense.cs
- StylusButtonCollection.cs
- Tablet.cs
- ClientSettingsStore.cs
- QilTypeChecker.cs
- DataSet.cs
- ConstraintCollection.cs
- LinkClickEvent.cs
- TransportSecurityHelpers.cs
- Decimal.cs
- TranslateTransform3D.cs
- MetadataItemCollectionFactory.cs
- COM2FontConverter.cs
- ItemTypeToolStripMenuItem.cs
- SourceSwitch.cs
- ContentControl.cs
- System.Data_BID.cs
- SchemaComplexType.cs
- WinEventQueueItem.cs
- HtmlPhoneCallAdapter.cs
- GreenMethods.cs
- GridViewDeletedEventArgs.cs
- MatrixKeyFrameCollection.cs
- ClientConfigurationHost.cs
- PropertyFilterAttribute.cs
- TextInfo.cs
- KeyPullup.cs
- ViewManager.cs
- MemberInitExpression.cs
- RoutedEventValueSerializer.cs
- DecimalConstantAttribute.cs
- TransformerInfo.cs
- GenericUriParser.cs
- ErrorWrapper.cs
- ManipulationVelocities.cs
- PerformanceCounterNameAttribute.cs
- FileSecurity.cs
- ResXBuildProvider.cs
- FileCodeGroup.cs
- _LazyAsyncResult.cs
- Rect3DConverter.cs
- Fault.cs
- IsolatedStorageFilePermission.cs
- PeerIPHelper.cs
- XamlReader.cs
- MsmqInputMessage.cs
- WindowsSecurityToken.cs
- Int32Storage.cs
- Matrix3DValueSerializer.cs
- XmlSequenceWriter.cs
- ProjectionNode.cs
- Brush.cs
- TextElementCollection.cs
- InkCanvasInnerCanvas.cs
- ComplexPropertyEntry.cs
- ApplicationGesture.cs
- CustomPopupPlacement.cs
- ScriptRegistrationManager.cs
- FamilyMapCollection.cs
- StateDesigner.LayoutSelectionGlyph.cs