@RequestScoped
@ManagedBean
public class InputFileBackingBean {
private static final Logger logger = LoggerFactory.getLogger(InputFileBackingBean.class);
@ManagedProperty(value = "#{inputFileModelBean}")
private InputFileModelBean inputFileModelBean;
public void deleteUploadedFile(ActionEvent actionEvent) {
UICommand uiCommand = (UICommand) actionEvent.getComponent();
String fileId = (String) uiCommand.getValue();
try {
List<UploadedFile> uploadedFiles = inputFileModelBean.getUploadedFiles();
UploadedFile uploadedFileToDelete = null;
for (UploadedFile uploadedFile : uploadedFiles) {
if (uploadedFile.getId().equals(fileId)) {
uploadedFileToDelete = uploadedFile;
break;
}
}
if (uploadedFileToDelete != null) {
uploadedFileToDelete.delete();
uploadedFiles.remove(uploadedFileToDelete);
logger.debug("Deleted file=[{0}]", uploadedFileToDelete.getName());
}
}
catch (Exception e) {
logger.error(e);
}
}
public void handleFileUpload(FileUploadEvent fileUploadEvent) {
List<UploadedFile> uploadedFiles = inputFileModelBean.getUploadedFiles();
UploadedFile uploadedFile = fileUploadEvent.getUploadedFile();
if (uploadedFile.getStatus() == UploadedFile.Status.FILE_SAVED) {
FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMessage = new FacesMessage("Received fileUploadEvent for file named '" +
uploadedFile.getName() + "' in the " + fileUploadEvent.getPhaseId().toString() + " phase.");
facesContext.addMessage(null, facesMessage);
uploadedFiles.add(uploadedFile);
logger.debug("Received fileName=[{0}] absolutePath=[{1}]", uploadedFile.getName(),
uploadedFile.getAbsolutePath());
}
else {
logger.error("Failed to receive uploaded file due to error status=[{0}] message=[{1}]",
uploadedFile.getStatus(), uploadedFile.getMessage());
}
}
public void setInputFileModelBean(InputFileModelBean inputFileModelBean) {
this.inputFileModelBean = inputFileModelBean;
}
}