/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.doctor.profcheckup.dialogs;
import clips.delegate.directory.complex.DirectoryDangerItem;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.table.AbstractTableModel;
/**
*
* @author petr
*/
public class TableModelDangers extends AbstractTableModel {
public static final int CL_SELECT = 0;
public static final int CL_DANGER = 1;
private HashMap<DirectoryDangerItem, Boolean> dangerMap;
private ArrayList<DirectoryDangerItem> dangerItems;
public TableModelDangers(HashMap<DirectoryDangerItem, Boolean> dangerMap) {
this.dangerMap = dangerMap;
dangerItems = new ArrayList<DirectoryDangerItem>(dangerMap.keySet());
}
@Override
public Class<?> getColumnClass(int columnIndex) {
if(columnIndex == CL_SELECT){
return Boolean.class;
}else {
return super.getColumnClass(columnIndex);
}
}
@Override
public String getColumnName(int column) {
return column == CL_DANGER ? "Вредный фактор" : null;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return columnIndex == CL_SELECT;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
System.out.println(rowIndex + "x" + columnIndex + ": "+ aValue);
if (columnIndex == CL_SELECT && aValue instanceof Boolean){
dangerMap.put(dangerItems.get(rowIndex), (Boolean)aValue);
fireTableCellUpdated(rowIndex, columnIndex);
}
}
@Override
public int getRowCount() {
return dangerMap.size();
}
@Override
public int getColumnCount() {
return 2;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
DirectoryDangerItem ddi = dangerItems.get(rowIndex);
switch (columnIndex){
case CL_SELECT: return dangerMap.get(ddi);
case CL_DANGER: return ddi;
default: return null;
}
}
}