package edu.ualberta.med.biobank.widgets.infotables.entry;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.widgets.Composite;
import edu.ualberta.med.biobank.common.action.specimen.SpecimenInfo;
import edu.ualberta.med.biobank.widgets.infotables.BiobankTableSorter;
import edu.ualberta.med.biobank.widgets.infotables.NewSpecimenInfoTable;
import gov.nih.nci.system.applicationservice.ApplicationException;
public class NewSpecimenEntryInfoTable extends NewSpecimenInfoTable {
// list of what is displayed into the table
protected List<SpecimenInfo> currentSpecimens;
public NewSpecimenEntryInfoTable(Composite parent,
List<SpecimenInfo> specInfos, ColumnsShown columnsShowns) {
super(parent, specInfos, columnsShowns, 10);
setCurrentSpecimens(specInfos);
}
@Override
protected boolean isEditMode() {
return true;
}
@SuppressWarnings("serial")
@Override
protected BiobankTableSorter getComparator() {
return new BiobankTableSorter() {
@Override
public int compare(Object e1, Object e2) {
try {
SpecimenInfo i1 =
(SpecimenInfo) getCollectionModelObject(e1);
SpecimenInfo i2 =
(SpecimenInfo) getCollectionModelObject(e2);
return super.compare(i1.specimen.getInventoryId(),
i2.specimen.getInventoryId());
} catch (Exception e) {
return 0;
}
}
};
}
public void reload(List<SpecimenInfo> specimens) {
setCurrentSpecimens(specimens);
reloadCollection(currentSpecimens);
}
private void setCurrentSpecimens(List<SpecimenInfo> specInfos) {
currentSpecimens = new ArrayList<SpecimenInfo>();
if (specInfos != null) {
currentSpecimens.addAll(specInfos);
}
}
@Override
public Boolean canEdit(SpecimenInfo target) throws ApplicationException {
return true;
}
@Override
public Boolean canDelete(SpecimenInfo target) throws ApplicationException {
return true;
}
}