/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.doctor.sicklist.sicklist;
import clips.delegate.doctor.sicklist.SicklistLocal;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.ErrorValue;
import java.util.Calendar;
import javax.swing.table.AbstractTableModel;
/**
* Модель таблицы продлений больничного
* @author petr
*/
public class TableModelSicklistContinued extends AbstractTableModel {
public static final int CL_COUNT = 3;
public static final int CL_DATE_FROM = 0;
public static final int CL_DATE_TO = 1;
public static final int CL_COLLAB = 2;
private SicklistLocal sicklist;
public TableModelSicklistContinued(SicklistLocal sicklist) {
this.sicklist = sicklist;
}
@Override
public int getRowCount() {
try {
return sicklist.getProlongationCount();
} catch (ClipsException ex) {
return 0;
}
}
@Override
public int getColumnCount() {
return CL_COUNT;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
try {
switch (columnIndex) {
case CL_DATE_FROM: {
Calendar dateFrom;
if (rowIndex == 0) {
dateFrom = sicklist.getDateOpen();
} else {
dateFrom = sicklist.getTill(rowIndex - 1);
dateFrom.add(Calendar.DAY_OF_YEAR, 1);
}
return framework.utils.Converter.dateToString(dateFrom.getTime());
}
case CL_DATE_TO: return framework.utils.Converter.dateToString(sicklist.getTill(rowIndex).getTime());
case CL_COLLAB: return sicklist.getCollaborator(rowIndex);
default: throw new IllegalArgumentException("Некорректный номер столбца");
}
} catch (ClipsException ex) {
return new ErrorValue(ex);
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case CL_DATE_FROM: return "С какого числа";
case CL_DATE_TO: return "По какое число";
case CL_COLLAB: return "Врач";
default: throw new IllegalArgumentException("Некорректный номер столбца");
}
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
}