Beispiel #1
0
        /// <summary>
        /// Adds a new Protected range to the list.
        /// </summary>
        /// <param name="range">Range to add.</param>
        public void Add(TProtectedRange range)
        {
            TProtectedRange range2 = Validate(range, -1);

            FList.Add(range2);
            FDict.Add(range2.Name, range2);
        }
Beispiel #2
0
        private TProtectedRange Validate(TProtectedRange range, int index)
        {
            if (range == null)
            {
                FlxMessages.ThrowException(FlxErr.ErrNullParameter, "range");
            }
            if (string.IsNullOrEmpty(range.Name))
            {
                FlxMessages.ThrowException(FlxErr.ErrNullParameter, "range.Name");
            }
            if (!ValidateName(range.Name))
            {
                FlxMessages.ThrowException(FlxErr.ErrInvalidName, range.Name);
            }
            if (index < 0)
            {
                if (FDict.ContainsKey(range.Name))
                {
                    FlxMessages.ThrowException(FlxErr.ErrRangeNameAlreadyExists, range.Name);
                }
            }
            else
            {
                if (FDict[range.Name] != FList[index] && FDict.ContainsKey(range.Name))
                {
                    FlxMessages.ThrowException(FlxErr.ErrRangeNameAlreadyExists, range.Name);
                }
            }

            return(range.Clone());
        }
Beispiel #3
0
        /// <summary>
        /// Returns a deep copy of the object.
        /// </summary>
        /// <returns></returns>
        public TProtectedRange Clone()
        {
            TProtectedRange Result = (TProtectedRange)MemberwiseClone();

            if (Ranges != null)
            {
                Result.Ranges = Ranges;                //will clone
            }
            return(Result);
        }
Beispiel #4
0
 /// <summary>
 /// The range at position "index" (0 based). This method returns a copy of the range.
 /// </summary>
 /// <param name="index"></param>
 /// <returns></returns>
 public TProtectedRange this[int index]
 {
     get
     {
         return(FList[index].Clone());
     }
     set
     {
         TProtectedRange range2 = Validate(value, index);
         FDict.Remove(FList[index].Name);
         FList[index] = range2;
         FDict.Add(range2.Name, range2);
     }
 }