package com.chrisfolger.needsmoredojo.intellij.configurable;
import com.intellij.openapi.project.Project;
import javax.swing.table.AbstractTableModel;
import java.util.LinkedHashMap;
import java.util.List;
public class ExceptionsListTableModel extends AbstractTableModel
{
private String[] columnNames = new String[] { "Dojo Module", "Parameter Name" };
private List<String> exceptionsMap;
public ExceptionsListTableModel(Project project, List<String> exceptionsMap)
{
this.exceptionsMap = exceptionsMap;
}
public String getColumnName(int col) {
return columnNames[col].toString();
}
public int getRowCount()
{
return exceptionsMap.size();
}
public int getColumnCount()
{
return columnNames.length;
}
public Object getValueAt(int row, int col)
{
if(col == 0)
{
return exceptionsMap.get(row).split("\\(")[0];
}
else
{
return exceptionsMap.get(row).split("\\(")[1];
}
}
public boolean isCellEditable(int row, int col)
{
return true;
}
public void addRow(String[] rowData)
{
exceptionsMap.add(rowData[0] + "(" + rowData[1]);
this.fireTableDataChanged();
}
public void removeRow(int row)
{
exceptionsMap.remove(row);
this.fireTableDataChanged();
}
public void setValueAt(Object value, int row, int col)
{
if(row > exceptionsMap.size())
{
exceptionsMap.add("(");
}
String[] values = exceptionsMap.get(row).split("\\(");
if(col == 1)
{
values[1] = (String) value;
}
else
{
values[0] = (String) value;
}
exceptionsMap.set(row, values[0] + "(" + values[1]);
fireTableCellUpdated(row, col);
}
}