package edu.ualberta.med.biobank.widgets.infotables; import java.util.List; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.widgets.Composite; import edu.ualberta.med.biobank.SessionManager; import edu.ualberta.med.biobank.common.permission.dispatch.DispatchDeletePermission; import edu.ualberta.med.biobank.common.permission.dispatch.DispatchReadPermission; import edu.ualberta.med.biobank.common.permission.dispatch.DispatchUpdatePermission; import edu.ualberta.med.biobank.common.wrappers.DispatchWrapper; import edu.ualberta.med.biobank.gui.common.widgets.BgcLabelProvider; import gov.nih.nci.system.applicationservice.ApplicationException; public class RequestDispatchInfoTable extends InfoTableWidget<DispatchWrapper> { private static final String[] HEADINGS = new String[] { Messages.RequestDispatchInfoTable_sender_label, Messages.RequestDispatchInfoTable_receiver_label, Messages.RequestDispatchInfoTable_total_specs_label, Messages.RequestDispatchInfoTable_packed_label, Messages.RequestDispatchInfoTable_received_label, Messages.RequestDispatchInfoTable_state_label }; public RequestDispatchInfoTable(Composite parent, List<DispatchWrapper> dispatchCollection) { super(parent, dispatchCollection, HEADINGS, 10, DispatchWrapper.class); } @Override protected BgcLabelProvider getLabelProvider() { return new BgcLabelProvider() { @Override public String getColumnText(Object element, int columnIndex) { DispatchWrapper item = (DispatchWrapper) ((BiobankCollectionModel) element).o; if (item == null) { if (columnIndex == 0) { return Messages.infotable_loading_msg; } return ""; //$NON-NLS-1$ } switch (columnIndex) { case 0: return item.getSenderCenter().getNameShort(); case 1: return item.getReceiverCenter().getNameShort(); case 2: return ((Integer) item.getDispatchSpecimenCollection(false) .size()).toString(); case 3: return item.getFormattedPackedAt(); case 4: return item.getFormattedReceivedAt(); case 5: return item.getStateDescription(); default: return ""; //$NON-NLS-1$ } } }; } @Override protected String getCollectionModelObjectToString(Object o) { if (o == null) return null; return ((DispatchWrapper) o).toString(); } @Override public DispatchWrapper getSelection() { BiobankCollectionModel item = getSelectionInternal(); if (item == null) return null; DispatchWrapper d = (DispatchWrapper) item.o; Assert.isNotNull(d); return d; } @Override protected BiobankTableSorter getComparator() { return null; } public void setSelection(Object object) { getTableViewer().setSelection((ISelection) object); } @Override public boolean isEditMode() { return true; } @Override protected Boolean canEdit(DispatchWrapper target) throws ApplicationException { return SessionManager.getAppService().isAllowed( new DispatchUpdatePermission(target.getId())); } @Override protected Boolean canDelete(DispatchWrapper target) throws ApplicationException { return SessionManager.getAppService().isAllowed( new DispatchDeletePermission(target.getId())); } @Override protected Boolean canView(DispatchWrapper target) throws ApplicationException { return SessionManager.getAppService().isAllowed( new DispatchReadPermission(target.getId())); } }