package edu.ualberta.med.biobank.widgets.infotables; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import org.apache.commons.lang.StringUtils; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import edu.ualberta.med.biobank.common.wrappers.LogWrapper; import edu.ualberta.med.biobank.gui.common.widgets.BgcLabelProvider; public class LoggingInfoTable extends ReportTableWidget<LogWrapper> { private static final String[] HEADINGS = new String[] { Messages.LoggingInfoTable_site_label, Messages.LoggingInfoTable_user_label, Messages.LoggingInfoTable_date_label, Messages.LoggingInfoTable_action_label, Messages.LoggingInfoTable_type_label, Messages.LoggingInfoTable_pnumber_label, Messages.LoggingInfoTable_inventoryid_label, Messages.LoggingInfoTable_location_label, Messages.LoggingInfoTable_details_label }; private static final int PAGE_SIZE_ROWS = 20; public LoggingInfoTable(Composite parent, List<LogWrapper> collection) { super(parent, collection, HEADINGS, PAGE_SIZE_ROWS); } private static class TableRowData { String center; String user; String date; String action; String type; String patientNumber; String inventoryId; String positionLabel; String details; @Override public String toString() { return StringUtils.join(new String[] { center, user, date, action, type, patientNumber, inventoryId, positionLabel, details }, "\t"); //$NON-NLS-1$ } } @Override public BgcLabelProvider getLabelProvider() { return new BgcLabelProvider() { @Override public String getColumnText(Object element, int columnIndex) { TableRowData item = getCollectionModelObject((LogWrapper) element); if (item == null) { if (columnIndex == 0) { return Messages.infotable_loading_msg; } return ""; //$NON-NLS-1$ } switch (columnIndex) { case 0: return item.center; case 1: return item.user; case 2: return item.date; case 3: return item.action; case 4: return item.type; case 5: return item.patientNumber; case 6: return item.inventoryId; case 7: return item.positionLabel; case 8: return item.details; default: return ""; //$NON-NLS-1$ } } }; } public TableRowData getCollectionModelObject(LogWrapper logQuery) { TableRowData info = new TableRowData(); info.center = logQuery.getCenter(); info.user = logQuery.getUsername(); info.action = logQuery.getAction(); info.type = logQuery.getType(); info.positionLabel = logQuery.getLocationLabel(); info.patientNumber = logQuery.getPatientNumber(); info.inventoryId = logQuery.getInventoryId(); info.details = logQuery.getDetails(); Date logQueryDate = logQuery.getCreatedAt(); if (logQueryDate != null) { SimpleDateFormat dateTimeSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //$NON-NLS-1$ info.date = dateTimeSecond.format(logQueryDate); } else { info.date = null; } return info; } public Table getTable() { return tableViewer.getTable(); } }