package edu.ualberta.med.biobank.handlers; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import edu.ualberta.med.biobank.SessionManager; import edu.ualberta.med.biobank.common.permission.shipment.OriginInfoUpdatePermission; import edu.ualberta.med.biobank.common.wrappers.OriginInfoWrapper; import edu.ualberta.med.biobank.common.wrappers.ShipmentInfoWrapper; import edu.ualberta.med.biobank.gui.common.BgcPlugin; import edu.ualberta.med.biobank.gui.common.handlers.LogoutSensitiveHandler; import edu.ualberta.med.biobank.treeview.shipment.ShipmentAdapter; import edu.ualberta.med.biobank.views.SpecimenTransitView; import gov.nih.nci.system.applicationservice.ApplicationException; public class ShipmentAddHandler extends LogoutSensitiveHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { OriginInfoWrapper shipment = new OriginInfoWrapper( SessionManager.getAppService()); ShipmentInfoWrapper shipmentInfo = new ShipmentInfoWrapper( SessionManager.getAppService()); shipment.setShipmentInfo(shipmentInfo); ShipmentAdapter shipNode = new ShipmentAdapter(SpecimenTransitView .getCurrent().getSearchedNode(), shipment); shipNode.openEntryForm(); return null; } @Override public boolean isEnabled() { try { if (allowed == null) allowed = SessionManager.getAppService().isAllowed( new OriginInfoUpdatePermission(SessionManager.getUser() .getCurrentWorkingCenter().getId())); } catch (ApplicationException e) { BgcPlugin.openAsyncError("Error", "Unable to retrieve permissions"); return false; } return allowed; } }