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; } }