function addRow(this)

selectedRow = this.TsTable.Table.getTable.getSelectedRows;
if ~isempty(selectedRow)
    selectedRow = selectedRow(1);
    tableData = cell(this.TsTable.Table.Data);
    s = size(tableData);

    %% If a Data Status row exists, the combo box must be populated with a
    %% non empty default or the Status may not correspond to a
    %% QualityInfo.Description
    if ~isempty(this.Timeseries.Quality)
        tableData = [tableData(1:selectedRow+1,:); ...
                                   repmat({[]},[1 s(2)-1]), {this.Timeseries.QualityInfo.Description{1}};...
                                   tableData(selectedRow+2:end,:)];
    else
        tableData = [tableData(1:selectedRow+1,:); 
                                   repmat({[]},[1 s(2)]); ...
                                   tableData(selectedRow+2:end,:)];
    end
    this.Tstable.Table.setData(tableData);
    this.Tstable.EventRow = [this.Tstable.EventRow(1:selectedRow+1); ...
                             false;
                             this.Tstable.EventRow(selectedRow+2:end)];
    
    % Update the no-edit rows in the custom table model to accomodate the
    % additional blank row
    thistablemodel = this.Tstable.table.getTable.getModel;
    noeditrows = thistablemodel.fnoneditrows;
    ind = noeditrows>selectedRow;
    noeditrows(ind) = noeditrows(ind)+1;
    thistablemodel.fnoneditrows = noeditrows;
end

