/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.directory.editors.serviceGroup;
import cli_fmw.delegate.directory.complex.DirectoryLocator;
import clips.delegate.directory.filtered.DirectoryService;
import clips.delegate.directory.filtered.DirectoryServiceItem;
import clips.delegate.directory.complex.DirectoryServicesGroupItem;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.ErrorValue;
import cli_fmw.utils.MessageBox;
import cli_fmw.utils.Selector;
import clips.delegate.directory.simple.reqType.DirectoryReqTypeItem;
import clips.delegate.directory.simple.serviceClass.DirectoryServiceClassItem;
import clips.delegate.directory.simple.visitType.DirectoryVisitTypeItem;
import javax.swing.table.AbstractTableModel;
/**
*
* @author lacoste
*/
public class TableModelServicesFromGroup extends AbstractTableModel {
public static final int COLCOUNT = 7;
public static final int COL_SERVICE = 0;
public static final int COL_SERV_CLASS = 1;
public static final int COL_REQ_TYPE = 2;
public static final int COL_VISIT_TYPE = 3;
public static final int COL_DURATION = 4;
public static final int COL_DESCRIPTION = 5;
public static final int COL_CHECKUP = 6;
private Selector<DirectoryServiceItem> services;
public TableModelServicesFromGroup(DirectoryServicesGroupItem serviceGroup)
throws ClipsException {
DirectoryService svc = (DirectoryService) DirectoryLocator.getDirectory(DirectoryService.class, false);
services = svc.getFilteredItems(serviceGroup);
}
@Override
public int getRowCount() {
return services.size();
}
@Override
public int getColumnCount() {
return COLCOUNT;
}
@Override
public String getColumnName(int column) {
switch (column) {
case COL_SERVICE:
return "Название";
case COL_SERV_CLASS:
return "Класс услуги";
case COL_DURATION:
return "Длительность";
case COL_REQ_TYPE:
return "Тип приема";
case COL_VISIT_TYPE:
return "Вид обращения";
case COL_DESCRIPTION:
return "Описание";
case COL_CHECKUP:
return "Анализ";
default:
return "";
}
}
@Override
public boolean isCellEditable(int rowIndex, int col) {
if (col == COL_DURATION || col == COL_DESCRIPTION || col == COL_SERV_CLASS
|| col == COL_REQ_TYPE || col == COL_VISIT_TYPE) {
return true;
} else {
return false;
}
}
@Override
public Class<?> getColumnClass(int col) {
if (col == COL_DURATION) {
return Integer.class;
}
return super.getColumnClass(col);
}
@Override
public Object getValueAt(int row, int col) {
try {
DirectoryServiceItem service = services.get(row);
if (col == COL_SERVICE) {
return service.toString();
} else if (col == COL_SERV_CLASS) {
return service.getServiceClass();
} else if (col == COL_DURATION) {
return service.getDefaultDuration();
} else if (col == COL_DESCRIPTION) {
return service.getDescription();
} else if (col == COL_CHECKUP) {
return service.getCheckUpType() != null ? service.getCheckUpType() : "";
} else if (col == COL_REQ_TYPE) {
return service.getReqType() != null ? service.getReqType() : "";
} else if (col == COL_VISIT_TYPE) {
return service.getVisitType() != null ? service.getVisitType() : "";
} else {
return null;
}
} catch (ClipsException ex) {
return new ErrorValue(ex);
}
}
@Override
public void setValueAt(Object aValue, int row, int col) {
try {
DirectoryServiceItem service = services.get(row);
if (col == COL_SERVICE) {
service.setTitle(aValue.toString());
} else if (col == COL_DURATION) {
service.setDefaultDuration((Integer) aValue);
} else if (col == COL_DESCRIPTION) {
service.setDescription(aValue.toString());
} else if (col == COL_SERV_CLASS) {
service.setServiceClass((DirectoryServiceClassItem) aValue);
} else if (col == COL_REQ_TYPE) {
service.setReqType((DirectoryReqTypeItem) aValue);
} else if (col == COL_VISIT_TYPE) {
service.setVisitType((DirectoryVisitTypeItem) aValue);
}
} catch (ClipsException ex) {
MessageBox.showException(ex);
}
}
}