package info.ozkan.vipera.views.device; import info.ozkan.vipera.business.device.DeviceFacade; import info.ozkan.vipera.business.device.DeviceManagerResult; import info.ozkan.vipera.entities.Device; import info.ozkan.vipera.entities.Patient; import info.ozkan.vipera.jsf.FacesMessage2; import info.ozkan.vipera.jsf.NotFoundException; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.inject.Inject; import javax.inject.Named; import org.springframework.context.annotation.Scope; /** * Cihaz güncelleme ekranı * * @author Ömer Özkan * */ @Named("deviceUpdate") @Scope("session") public class DeviceUpdateBean { /** * Cihaz güncellenemedi mesajı */ private static final String DEVICE_CANNOT_BE_UPDATED = "Cihaz güncellenemedi"; /** * cihaz güncellenemedi mesaj detay deseni */ private static final String DEVICE_CANNOT_BE_UPDATED_MSG_PATTERN = "Cihaz %s güncellenemedi!"; /** * cihaz güncellendi mesjaı */ private static final String DEVICE_UPDATED = "Cihaz güncellendi!"; /** * cihaz güncellendi mesaj detayı deseni */ private static final String DEVICE_UPDATED_MSG_PATTERN = "Cihaz %s güncellendi!"; /** * Id */ private Long id; /** * Cihaz */ private Device device; /** * Business */ @Inject private DeviceFacade deviceFacade; /** * seçilen hasta */ private Patient selectedPatient; /** * Cihaz tekrar yüklensin mi */ private boolean loadDevice = true; /** * Cihazın yüklenmesini sağlar * */ public void loadDevice() { if (loadDevice) { getDeviceFromSystem(); } else { loadDevice = true; } } /** * Sistemden ilgili cihazı getirir * */ private void getDeviceFromSystem() { if (id != null) { final DeviceManagerResult result = deviceFacade.getById(id); if (result.isSuccess()) { device = result.getDevice(); setSelectedPatient(device.getPatient()); } else { throw new NotFoundException(); } } else { throw new NotFoundException(); } } /** * Hasta seç * * @param patient */ public void selectPatient(final Patient patient) { selectedPatient = patient; loadDevice = false; } /** * parola üret */ public void generate() { final String password = PasswordGenerator.generate(); device.setApiPassword(password); loadDevice = false; } /** * güncelleme işlemini gerçekleştirir */ public void update() { final FacesContext context = FacesContext.getCurrentInstance(); device.setPatient(getSelectedPatient()); final DeviceManagerResult result = deviceFacade.update(device); if (result.isSuccess()) { final String detail = String.format(DEVICE_UPDATED_MSG_PATTERN, device.getApiKey()); context.addMessage(null, new FacesMessage2( FacesMessage.SEVERITY_INFO, DEVICE_UPDATED, detail)); } else { final String detail = String.format(DEVICE_CANNOT_BE_UPDATED_MSG_PATTERN); context.addMessage(null, new FacesMessage2(null, DEVICE_CANNOT_BE_UPDATED, detail)); } } /** * @return the id */ public Long getId() { return id; } /** * @param id * the id to set */ public void setId(final Long id) { this.id = id; } /** * @return the device */ public Device getDevice() { return device; } /** * @param device * the device to set */ public void setDevice(final Device device) { this.device = device; } /** * @return the selectedPatient */ public Patient getSelectedPatient() { return selectedPatient; } /** * @param selectedPatient * the selectedPatient to set */ public void setSelectedPatient(final Patient selectedPatient) { this.selectedPatient = selectedPatient; } }