package edu.ualberta.med.biobank.widgets.grids.cell; import java.util.Arrays; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import edu.ualberta.med.biobank.BiobankPlugin; public enum UICellStatus { NOT_INITIALIZED(SWT.COLOR_WHITE, Messages.UICellStatus_notInitialized), INITIALIZED(SWT.COLOR_DARK_GRAY, Messages.UICellStatus_initialized), FULL(SWT.COLOR_DARK_GRAY, Messages.UICellStatus_full), FREE_LOCATIONS(SWT.COLOR_WHITE, Messages.UICellStatus_free), EMPTY(SWT.COLOR_WHITE, Messages.UICellStatus_empty), FILLED(SWT.COLOR_DARK_GRAY, Messages.UICellStatus_filled), NEW(SWT.COLOR_DARK_GREEN, Messages.UICellStatus_new), MOVED(217, 161, 65, Messages.UICellStatus_moved), MISSING(SWT.COLOR_CYAN, Messages.UICellStatus_missing), ERROR(SWT.COLOR_RED, Messages.UICellStatus_error), NO_TYPE(SWT.COLOR_DARK_GREEN, Messages.UICellStatus_notype), TYPE(SWT.COLOR_DARK_GRAY, Messages.UICellStatus_type), IN_SHIPMENT_EXPECTED(SWT.COLOR_DARK_GREEN, Messages.UICellStatus_expected), IN_SHIPMENT_ADDED(SWT.COLOR_DARK_GREEN, Messages.UICellStatus_added), DUPLICATE_SCAN(SWT.COLOR_DARK_GRAY, Messages.UICellStatus_scanned), IN_SHIPMENT_RECEIVED(SWT.COLOR_DARK_GRAY, Messages.UICellStatus_received), EXTRA(SWT.COLOR_YELLOW, Messages.UICellStatus_extra), SCAN_PROFILE(185, 211, 238, Messages.UICellStatus_profiled); private Color color; private String legend; public static List<UICellStatus> DEFAULT_CONTAINER_STATUS_LIST = Arrays .asList(NOT_INITIALIZED, INITIALIZED); public static List<UICellStatus> DEFAULT_PALLET_SCAN_ASSIGN_STATUS_LIST = Arrays .asList(EMPTY, NEW, MOVED, FILLED, MISSING, ERROR); public static List<UICellStatus> DEFAULT_PALLET_SCAN_LINK_STATUS_LIST = Arrays .asList(EMPTY, NO_TYPE, TYPE, ERROR); public static List<UICellStatus> DEFAULT_PALLET_DISPATCH_RECEIVE_STATUS_LIST = Arrays .asList(EMPTY, IN_SHIPMENT_RECEIVED, IN_SHIPMENT_EXPECTED, EXTRA, ERROR); public static List<UICellStatus> DEFAULT_PALLET_DISPATCH_CREATE_STATUS_LIST = Arrays .asList(EMPTY, FILLED, IN_SHIPMENT_ADDED, MISSING, ERROR); public static List<UICellStatus> REQUEST_PALLET_STATUS_LIST = Arrays .asList(EMPTY, DUPLICATE_SCAN, IN_SHIPMENT_EXPECTED, EXTRA, ERROR); private UICellStatus(int color, String legend) { this.color = BiobankPlugin.getDefault().getWorkbench().getDisplay() .getSystemColor(color); this.legend = legend; } private UICellStatus(int red, int green, int blue, String legend) { this.color = new Color(BiobankPlugin.getDefault().getWorkbench() .getDisplay(), red, green, blue); this.legend = legend; } public Color getColor() { return color; } public String getLegend() { return legend; } public UICellStatus mergeWith(UICellStatus newStatus) { if (this == EMPTY || this == MISSING) return newStatus; if (this == ERROR || newStatus == ERROR) return ERROR; if (this == FILLED || this == MOVED) { if (newStatus == MISSING || newStatus == ERROR) { return newStatus; } return this; } return EMPTY; } }