FormEntityCollection.cs
上传用户:husern
上传日期:2022-03-24
资源大小:534k
文件大小:5k
源码类别:

编辑器/阅读器

开发平台:

C#

  1. // -- FILE ------------------------------------------------------------------
  2. // name       : FormEntityCollection.cs
  3. // project    : Itenso Web User Forms
  4. // created    : Jani Giannoudis - 2008.10.30
  5. // language   : c#
  6. // environment: .NET 2.0
  7. // copyright  : (c) 2008 by Itenso GmbH, Switzerland
  8. // --------------------------------------------------------------------------
  9. using System;
  10. using System.Collections;
  11. using System.Collections.Generic;
  12. namespace Itenso.WebUserForms.Data.Form
  13. {
  14. // ------------------------------------------------------------------------
  15. public sealed class FormEntityCollection : IFormEntityCollection
  16. {
  17. // ----------------------------------------------------------------------
  18. /// <summary>
  19. /// Creates a new empty instance.
  20. /// </summary>
  21. public FormEntityCollection()
  22. {
  23. } // FormEntityCollection
  24. // ----------------------------------------------------------------------
  25. /// <summary>
  26. /// Creates a new instance with all the items of the given collection.
  27. /// </summary>
  28. /// <param name="items">the items to add. may not be null.</param>
  29. public FormEntityCollection( IEnumerable<IFormEntity> items )
  30. {
  31. AddAll( items );
  32. } // FormEntityCollection
  33. // ----------------------------------------------------------------------
  34. IEnumerator IEnumerable.GetEnumerator()
  35. {
  36. return this.items.GetEnumerator();
  37. } // IEnumerable.GetEnumerator
  38. // ----------------------------------------------------------------------
  39. public IEnumerator<IFormEntity> GetEnumerator()
  40. {
  41. return this.items.GetEnumerator();
  42. } // GetEnumerator
  43. // ----------------------------------------------------------------------
  44. public int Count
  45. {
  46. get { return this.items.Count; }
  47. } // Count
  48. // ----------------------------------------------------------------------
  49. public IFormEntity this[ int index ]
  50. {
  51. get { return this.items[ index ]; }
  52. } // this[]
  53. // ----------------------------------------------------------------------
  54. public int IndexOf( IFormEntity item )
  55. {
  56. return this.items.IndexOf( item );
  57. } // IndexOf
  58. // ----------------------------------------------------------------------
  59. public int Add( IFormEntity item )
  60. {
  61. if ( item == null )
  62. {
  63. throw new ArgumentNullException( "item" );
  64. }
  65. int insertPos = items.Count;
  66. this.items.Add( item );
  67. return insertPos;
  68. } // Add
  69. // ----------------------------------------------------------------------
  70. public void Add( IFormEntity item, int pos )
  71. {
  72. if ( item == null )
  73. {
  74. throw new ArgumentNullException( "item" );
  75. }
  76. this.items.Insert( pos, item );
  77. } // Add
  78. // ----------------------------------------------------------------------
  79. public void AddAll( IEnumerable<IFormEntity> items )
  80. {
  81. if ( items == null )
  82. {
  83. throw new ArgumentNullException( "items" );
  84. }
  85. foreach ( IFormEntity item in items )
  86. {
  87. Add( item );
  88. }
  89. } // AddAll
  90. // ----------------------------------------------------------------------
  91. public void Remove( IFormEntity item )
  92. {
  93. this.items.Remove( item );
  94. } // Remove
  95. // ----------------------------------------------------------------------
  96. public void RemoveAt( int index )
  97. {
  98. this.items.RemoveAt( index );
  99. } // RemoveAt
  100. // ----------------------------------------------------------------------
  101. public void Clear()
  102. {
  103. this.items.Clear();
  104. } // Clear
  105. // ----------------------------------------------------------------------
  106. public IFormEntity[] ToArray()
  107. {
  108. IFormEntity[] entries = new IFormEntity[ Count ];
  109. if ( entries.Length > 0 )
  110. {
  111. CopyTo( entries, 0 );
  112. }
  113. return entries;
  114. } // ToArray
  115. // ----------------------------------------------------------------------
  116. public void CopyTo( IFormEntity[] array, int index )
  117. {
  118. this.items.CopyTo( array, index );
  119. } // CopyTo
  120. // ----------------------------------------------------------------------
  121. public override bool Equals( object obj )
  122. {
  123. return CollectionTool.AreEqual( this, obj );
  124. } // Equals
  125. // ----------------------------------------------------------------------
  126. public override int GetHashCode()
  127. {
  128. return CollectionTool.ComputeHashCode( this );
  129. } // GetHashCode
  130. // ----------------------------------------------------------------------
  131. public override string ToString()
  132. {
  133. return CollectionTool.ToString( this );
  134. } // ToString
  135. // ----------------------------------------------------------------------
  136. public IFormEntity FindByItemName( string itemName )
  137. {
  138. foreach ( IFormEntity item in this )
  139. {
  140. if ( item.Name.Equals( itemName ) )
  141. {
  142. return item;
  143. }
  144. }
  145. return null;
  146. } // FindByItemName
  147. // ----------------------------------------------------------------------
  148. public IFormField FindFieldByName( string fieldName )
  149. {
  150. return FindByItemName( fieldName ) as IFormField;
  151. } // FindFieldByName
  152. // ----------------------------------------------------------------------
  153. public IForm FindFormByName( string formName )
  154. {
  155. return FindByItemName( formName ) as IForm;
  156. } // FindFormByName
  157. // ----------------------------------------------------------------------
  158. // members
  159. private readonly List<IFormEntity> items = new List<IFormEntity>();
  160. } // class FormEntityCollection
  161. } // namespace Itenso.WebUserForms.Data.Form
  162. // -- EOF -------------------------------------------------------------------