/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.analysis;
import clips.delegate.doctor.checkup.CheckupLocal;
import clips.delegate.service.SerRenLocal;
import java.util.HashSet;
import framework.utils.Converter;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.ErrorValue;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.table.AbstractTableModel;
/**
*
* @author vip
*/
class TableModelAnalyseList extends AbstractTableModel { //модель таблицы списка анализов для забора БМ.
public static final int COLCOUNT = 7;
public static final int COL_FIO = 0;
public static final int COL_SERVICE = 1;
public static final int COL_DATE = 2;
public static final int COL_PAYED = 3;
public static final int COL_PROBE_DATE = 4;
public static final int COL_RENDERED_DATE = 5;
public static final int COL_PROBE = 6;
private ArrayList<CheckupLocal> checkUpList;
public TableModelAnalyseList(ArrayList<CheckupLocal> checkUpList) {
this.checkUpList = checkUpList;
}
@Override
public boolean isCellEditable(int r, int c) {
return false;
}
@Override
public Object getValueAt(int r, int c) {
try {
SerRenLocal serRenLocal = checkUpList.get(r).getSerrenLocal();
switch (c) {
case COL_FIO: {
return serRenLocal.getPolisData().getClient().getFIO();
}
case COL_SERVICE: {
return serRenLocal.getService();
}
case COL_DATE: {
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
return formatter.format(serRenLocal.getSerDate());
}
case COL_PAYED: {
return (serRenLocal.isSerPayed());
}
case COL_PROBE_DATE: {
return Converter.dateToString(checkUpList.get(r).getDate());
}
case COL_RENDERED_DATE: {
return Converter.dateToString(serRenLocal.getSerRenderDate());
}
case COL_PROBE: {
HashSet<String> probeNumberSet = checkUpList.get(r).getCheckupXMLData().getProbeNumberSet();
StringBuffer s = new StringBuffer("");
for (Iterator<String> it = probeNumberSet.iterator(); it.hasNext();) {
String string = it.next();
s.append(string + ",");
}
if (s.length() != 0) {
s.deleteCharAt(s.length()-1);
}
return s.toString();
}
}
return null;
} catch (ClipsException ex) {
return new ErrorValue(ex);
}
}
@Override
public Class<?> getColumnClass(int col) {
if (col == COL_PAYED) {
return Boolean.class;
}
return super.getColumnClass(col);
}
@Override
public int getColumnCount() {
return COLCOUNT;
}
@Override
public int getRowCount() {
if (checkUpList != null) {
return checkUpList.size();
} else {
return 0;
}
}
@Override
public String getColumnName(int c) {
switch (c) {
case COL_FIO: return "ФИО";
case COL_SERVICE: return "Тип услуги";
case COL_DATE: return "Назначен";
case COL_PAYED: return "Оплата";
case COL_PROBE_DATE: return "Дата пробы";
case COL_RENDERED_DATE: return "Выполнен";
case COL_PROBE: return "Номер пробы";
default: return "Не сработал swith-case";
}
}
}