コード例 #1
0
        /// <summary>
        /// It handles the event fired when a field formatter is added to
        /// the collection of field formatters.
        /// </summary>
        /// <param name="sender">
        /// The object sending the event.
        /// </param>
        /// <param name="e">
        /// The event parameters.
        /// </param>
        private void OnFieldsFormatterAdded(object sender, FieldFormatterEventArgs e)
        {
            if (e.FieldFormatter is BitMapFieldFormatter)
            {
                // Check if is in our bitmap table.
                for (int i = _bitmaps.Length - 1; i >= 0; i--)
                {
                    if (_bitmaps[i] == e.FieldFormatter.FieldNumber)
                    {
                        // It's in, don't add.
                        return;
                    }
                }

                if (_bitmaps[0] != int.MinValue)
                {
                    // It's full, expand it.
                    int[] bitmaps = new int[_bitmaps.Length * 2];

                    InitializeBitmapTable(bitmaps);

                    // Copy previous data.
                    for (int i = _bitmaps.Length - 1; i >= 0; i--)
                    {
                        bitmaps[_bitmaps.Length + i] = _bitmaps[i];
                    }
                    _bitmaps = bitmaps;
                }

                _bitmaps[0] = e.FieldFormatter.FieldNumber;
                Array.Sort(_bitmaps);
            }
        }
コード例 #2
0
 /// <summary>
 /// It handles the event fired when a field formatter is removed from
 /// the collection of field formatters.
 /// </summary>
 /// <param name="sender">
 /// The object sending the event.
 /// </param>
 /// <param name="e">
 /// The event parameters.
 /// </param>
 private void OnFieldsFormatterRemoved(object sender, FieldFormatterEventArgs e)
 {
     if (e.FieldFormatter is BitMapFieldFormatter)
     {
         // Check if is in our bitmap table.
         for (int i = _bitmaps.Length - 1; i >= 0; i--)
         {
             if (_bitmaps[i] == e.FieldFormatter.FieldNumber)
             {
                 // Located, erase it.
                 _bitmaps[i] = int.MinValue;
                 Array.Sort(_bitmaps);
                 break;
             }
         }
     }
 }