//overridden methods

        public void InputFormFields(int index)
        {
            IPFilteringRow row = (IPFilteringRow)Grid.GetRowFromList(index);

            row.SetName(Data.Name);
            row.SetAddress(Data.Address);
        }
        /// <summary>
        /// Sets the Rows List
        /// </summary>
        public override void SetRowLists()
        {
            base.SetRowLists();
            int rowIndex = 0;

            foreach (var webElement in WebElementRows)
            {
                Report.Write("GridRow by index: " + rowIndex);
                GridRowType rowType = GetGridRowType(rowIndex);
                Report.Write("GridRowType: " + rowType);
                var lineItem = new IPFilteringRow(gridCssSelector, webElement, rowIndex, rowType, ColumnList, ControlPrefix);
                RowList.Add(lineItem);
                rowIndex++;
            }
        }
        /// <summary>
        /// gets a list of rows containing the text to find from the row list
        /// </summary>
        /// <param name="columnName">the column name</param>
        /// <param name="textToFind">the text to find</param>
        /// <returns>list of ConfigRow</returns>
        public new List <IPFilteringRow> GetsRowsContainingTextToFindFromList(string columnName, string textToFind)
        {
            if (RowList.Count == 0)
            {
                Assert.Fail("No items were found in the grid column list.");
                return(null);
            }
            else
            {
                List <IPFilteringRow> rowList = new List <IPFilteringRow>();
                string text  = null;
                int    index = 0;
                foreach (var row in RowList)
                {
                    IPFilteringRow ipFilteringRow = (IPFilteringRow)row;
                    if (ipFilteringRow.Type != GridRowType.Header && ipFilteringRow.Type != GridRowType.Pagination)
                    {
                        //get the text by column name
                        if (columnName.Equals(IPFilteringColumnNames.Name))
                        {
                            text = ipFilteringRow.GetNameAttributeValue();
                        }
                        if (columnName.Equals(IPFilteringColumnNames.Address))
                        {
                            text = ipFilteringRow.GetAddressAttributeValue();
                        }

                        //if the text is not null
                        if (text != null)
                        {
                            //if the text contains the text to find
                            if (text.Contains(textToFind))
                            {
                                rowList.Add(ipFilteringRow);
                            }
                        }
                    }
                }
                //may return empty row list if text is not found
                return(rowList);
            }
        }
        /// <summary>
        /// remove IP by address
        /// </summary>
        public void RemoveIPByAddress()
        {
            IPFilteringRow ipFilteringRow = FindRowByIPAddress();

            ipFilteringRow.SelectRemove();
        }
        /// <summary>
        /// remove IP by name
        /// </summary>
        public void RemoveIPByName()
        {
            IPFilteringRow ipFilteringRow = FindRowByIPName();

            ipFilteringRow.SelectRemove();
        }
        /// <summary>
        /// enable IP by address
        /// </summary>
        public void EnableIPByAddress()
        {
            IPFilteringRow ipFilteringRow = FindRowByIPAddress();

            ipFilteringRow.SelectEnable();
        }
        /// <summary>
        /// enable IP by name
        /// </summary>
        public void EnableIPByName()
        {
            IPFilteringRow ipFilteringRow = FindRowByIPName();

            ipFilteringRow.SelectEnable();
        }