package jetbrains.mps.ide.java.platform.refactorings;
/*Generated by MPS */
import javax.swing.table.AbstractTableModel;
import java.util.List;
import jetbrains.mps.baseLanguage.util.plugin.refactorings.MethodParameter;
import jetbrains.mps.internal.collections.runtime.ListSequence;
/*package*/ class ParametersTableModel extends AbstractTableModel {
private static final int IS_SELECTED_COLUMN_INDEX = 0;
private static final int TYPE_COLUMN_INDEX = 1;
private static final int NAME_COLUMN_INDEX = 2;
private List<MethodParameter> myParameters;
/*package*/ ParametersTableModel(List<MethodParameter> parameters) {
this.myParameters = parameters;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case IS_SELECTED_COLUMN_INDEX:
return Boolean.class;
case TYPE_COLUMN_INDEX:
return String.class;
case NAME_COLUMN_INDEX:
return String.class;
default:
return null;
}
}
@Override
public int getRowCount() {
return ListSequence.fromList(this.myParameters).count();
}
@Override
public int getColumnCount() {
return 3;
}
public void swapRows(int a, int b) {
MethodParameter param = ListSequence.fromList(this.myParameters).getElement(a);
ListSequence.fromList(this.myParameters).setElement(a, ListSequence.fromList(this.myParameters).getElement(b));
ListSequence.fromList(this.myParameters).setElement(b, param);
fireTableRowsUpdated(a, b);
}
@Override
public Object getValueAt(int row, int column) {
switch (column) {
case IS_SELECTED_COLUMN_INDEX:
return ListSequence.fromList(this.myParameters).getElement(row).isSelected();
case TYPE_COLUMN_INDEX:
return ListSequence.fromList(this.myParameters).getElement(row).getTypeName();
case NAME_COLUMN_INDEX:
return ListSequence.fromList(this.myParameters).getElement(row).getName();
default:
return null;
}
}
@Override
public void setValueAt(Object value, int row, int column) {
switch (column) {
case IS_SELECTED_COLUMN_INDEX:
ListSequence.fromList(this.myParameters).getElement(row).setSelected((Boolean) value);
break;
case TYPE_COLUMN_INDEX:
ListSequence.fromList(this.myParameters).getElement(row).setTypeByName((String) value);
break;
case NAME_COLUMN_INDEX:
ListSequence.fromList(this.myParameters).getElement(row).setName((String) value);
break;
default:
}
this.fireTableCellUpdated(row, column);
}
@Override
public boolean isCellEditable(int row, int column) {
return true;
}
}