@Override
    public void exchangeRows(int row, int targetRow) {
      if (row < 0 || row >= getVariableData().length) return;
      if (targetRow < 0 || targetRow >= getVariableData().length) return;

      final P currentItem = getVariableData()[row];
      AbstractParameterTablePanel.this.exchangeRows(row, targetRow, currentItem);

      myTableModel.fireTableRowsUpdated(Math.min(targetRow, row), Math.max(targetRow, row));
      myTable.getSelectionModel().setSelectionInterval(targetRow, targetRow);
      updateSignature();
    }
@Override
    public void exchangeRows(int row, int targetRow)