/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.kek.inability;
import clips.delegate.kek.CommitteeLocal;
import clips.delegate.kek.CommitteeResolutionData;
import clips.delegate.kek.InabilityData;
import framework.utils.Converter;
import cli_fmw.utils.ErrorValue;
import cli_fmw.utils.Selector;
import cli_fmw.main.ClipsException;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
/**
*
* @author lacoste
*/
public class TableModelInabilityList extends DefaultTableModel{
public static final int COL_ID = 0;
public static final int COL_DATE_IN = 1;
public static final int COL_LEVEL_IN = 2;
public static final int COL_DATE_OUT = 3;
public static final int COL_LEVEL_OUT = 4;
public static final int COL_DESC = 5;
public static final int COL_RES_ID = 6;
public static final int COLCOUNT = 7;
private ArrayList<InabilityData> inabilityList;
private CommitteeLocal committee;
public TableModelInabilityList(ArrayList<InabilityData> inabilityList, CommitteeLocal committee) {
this.committee = committee;
this.inabilityList = inabilityList;
}
@Override
public int getColumnCount() {
return COLCOUNT;
}
@Override
public String getColumnName(int col) {
switch(col) {
case COL_ID: return "№";
case COL_DATE_IN: return "Направлено";
case COL_LEVEL_IN: return "Группа до";
case COL_DATE_OUT: return "Решено";
case COL_LEVEL_OUT: return "Группа после";
case COL_DESC: return "Примечание";
case COL_RES_ID: return "№ решения";
}
return "";
}
@Override
public int getRowCount() {
if (inabilityList == null) {
return 0;
}
return inabilityList.size();
}
@Override
public Object getValueAt(int row, int col) {
try {
InabilityData inability = inabilityList.get(row);
switch (col) {
case COL_ID: {
return inability.getId();
}
case COL_DATE_IN: {
return Converter.dateToString(inability.getDate());
}
case COL_LEVEL_IN: {
return (inability.getLevelIn() == 0 ? "" : inability.getLevelIn());
}
case COL_DATE_OUT: {
return Converter.dateToString(inability.getDateAnswer());
}
case COL_LEVEL_OUT: {
return (inability.getLevelOut() == 0 ? "" : inability.getLevelOut());
}
case COL_DESC: {
return inability.getDesc();
}
case COL_RES_ID: {
CommitteeResolutionData data = null;
Selector<CommitteeResolutionData> list = committee.getResolutionList(false);
for (int i = 0; i < list.size(); i++) {
data = list.get(i);
if (committee.getInabilityByResolution(data) != null
&& data.getId() == inability.getKey()) {
break;
}
}
return data != null ? data.getId() : "";
}
}
} catch (ClipsException ex) {
return new ErrorValue(ex);
}
return null;
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
}