Example #1
0
        /// <summary>Removes a filter item from the list of this class.</summary>
        /// <param name="column">The column to be checked for removing the filter item.</param>
        /// <param name="filterItem">The filter item to be removed.</param>
        private void Remove(int column, FilterItem filterItem)
        {
            // This would remove a FilterItem from the Filter list when the filter is cleared.
            // Used Iterator for removing instead of canonical loop to prevent ConcurrentModificationException.
            int index = -1;

            for (int i = 0; i < filterItems.Count; ++i)
            {
                FilterItem item = filterItems[i];
                if (column == -1 && item.GetFilterType().Equals(filterItem.GetFilterType()))
                {
                    index = i;
                    break;
                }
                else if (item.GetColumn() == filterItem.GetColumn())
                {
                    index = i;
                    break;
                }
            }

            if (index != -1)
            {
                filterItems.RemoveAt(index);
            }


            tableView.Filter(this);
        }
Example #2
0
        /// <summary>Updates a filter item from the list of this class.</summary>
        /// <param name="column">The column in which filter item will be updated.</param>
        /// <param name="filterItem">The updated filter item.</param>
        private void Update(int column, FilterItem filterItem)
        {
            // This would update an existing FilterItem from the Filter list.
            // Used Iterator for updating instead of canonical loop to prevent ConcurrentModificationException.
            int index = -1;

            for (int i = 0; i < filterItems.Count; ++i)
            {
                FilterItem item = filterItems[i];
                if (column == -1 && item.GetFilterType().Equals(filterItem.GetFilterType()))
                {
                    index = i;
                    break;
                }
                else if (item.GetColumn() == filterItem.GetColumn())
                {
                    index = i;
                    break;
                }
            }

            if (index != -1)
            {
                filterItems[index] = filterItem;
            }
            tableView.Filter(this);
        }
Example #3
0
        /// <summary>Method to check if a filter item is already added based on the column to be filtered.
        ///     </summary>
        /// <param name="column">The column to be checked if the list is already filtering.</param>
        /// <param name="filterItem">The filter item to be checked.</param>
        /// <returns>True if a filter item for a specific column or for ALL is already in the list.
        ///     </returns>
        private bool IsAlreadyFiltering(int column, FilterItem filterItem)
        {
            // This would determine if Filter is already filtering ALL or a specified COLUMN.
            foreach (FilterItem item in filterItems)
            {
                if (column == -1 && item.GetFilterType().Equals(filterItem.GetFilterType()))
                {
                    return(true);
                }
                else
                {
                    if (item.GetColumn() == filterItem.GetColumn())
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }