/// <summary>
        /// Sets the value at the specified position to the specified value. </summary>
        /// <param name="value"> the value to set the cell to. </param>
        /// <param name="row"> the row of the cell for which to set the value. </param>
        /// <param name="col"> the col of the cell for which to set the value. </param>
        public virtual void setValueAt(object value, int row, int col)
        {
            if (_sortOrder != null)
            {
                row = _sortOrder[row];
            }
            double dval;

            switch (col)
            {
            case COL_STREAM_NAME:
                dval = ((double?)value).Value;
                __coeff.setCoefn(row, dval);
                break;

            case COL_UPSTREAM_GAGE:
                __coeff.setUpper(row, (string)value);
                break;

            case COL_GAIN_TERM_WT:
                dval = ((double?)value).Value;
                __coeff.setCoefm(row, dval);
                break;

            case COL_GAIN_TERM_GAGE_ID:
                __coeff.setFlowm(row, (string)value);
                break;

            default:
                break;
            }

            base.setValueAt(value, row, col);
        }