/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.doctor.disease.search;
import beans.service.search.DiseaseChunk;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.ErrorValue;
import clips.delegate.directory.ro.DirectoryCollaborator;
import clips.delegate.directory.ro.DirectoryCollaboratorItem;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import javax.swing.table.AbstractTableModel;
/**
*
* @author lacoste
*/
public class TableModelDiseaseList extends AbstractTableModel {
private ArrayList<DiseaseChunk> diseaseList;
private DirectoryCollaborator dirCollab;
public static final int COLCOUNT = 3;
public static final int COL_FIO = 0;
public static final int COL_CREATER = 1;
public static final int COL_DATE = 2;
public TableModelDiseaseList(ArrayList<DiseaseChunk> diseaseList) throws ClipsException {
this.diseaseList = diseaseList;
if (diseaseList != null) {
java.util.Collections.sort(diseaseList, new Comparator<DiseaseChunk>() {
@Override
public int compare(DiseaseChunk o1, DiseaseChunk o2) {
return o1.details.created.compareTo(o2.details.created);
}
});
}
dirCollab = DirectoryLocator.getDirectory(DirectoryCollaborator.class);
}
@Override
public int getColumnCount() {
return COLCOUNT;
}
@Override
public int getRowCount() {
return diseaseList == null ? 0 : diseaseList.size();
}
@Override
public String getColumnName(int c) {
String s;
switch (c) {
case COL_FIO: return "Пациент";
case COL_CREATER: return "Кем создано";
case COL_DATE: return "Дата";
default:
throw new IllegalArgumentException("Некорректный номер столбца");
}
}
@Override
public boolean isCellEditable(int r, int c) {
return false;
}
@Override
public Class<?> getColumnClass(int c) {
switch (c) {
case COL_FIO: return String.class;
case COL_CREATER: return DirectoryCollaboratorItem.class;
case COL_DATE: return Date.class;
default: throw new IllegalArgumentException("Некорректный номер столбца");
}
}
@Override
public Object getValueAt(int r, int c) {
try {
DiseaseChunk dc = diseaseList.get(r);
switch (c) {
case COL_FIO: {
return dc.fio;
}
case COL_CREATER: {
DirectoryCollaboratorItem collab = dirCollab.getItemFromID(dc.details.collaboratorID);
return collab;
}
case COL_DATE: {
return dc.details.created;
}
default:
throw new IllegalArgumentException("Некорректный номер столбца");
}
} catch (ClipsException ex) {
return new ErrorValue(ex);
}
}
}