public void deleteFile(String filename) { EmployeeDetail detail = person.getEmployeeDetails(); Set<String> files = new HashSet<>(); files.addAll(detail.getFiles()); files.remove(filename); EmployeeDetail newDetail = getEmployeeDetail(detail, files); EmployeeDetailFacade.getEmployeeDetailService().merge(newDetail); Person newPerson = getPerson(person, newDetail); PersonFacade.getPersonService().merge(newPerson); }
public PersonUploadTable( final MshenguMain main, final Person person, final VerticalLayout content) { this.main = main; this.person = person; addContainerProperty("File Name", String.class, null); addContainerProperty("Download", Button.class, null); addContainerProperty("Delete", Button.class, null); EmployeeDetail detail = person.getEmployeeDetails(); if (detail.getFiles() != null) { for (final String fileId : detail.getFiles()) { final Button download = new Button("Download"); download.setStyleName(Reindeer.BUTTON_LINK); download.setData(fileId); download.addClickListener( new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { PersonFilesgeUtil personFilesgeUtil = new PersonFilesgeUtil(fileId); StreamResource.StreamSource imageSource = personFilesgeUtil; StreamResource resource = new StreamResource(imageSource, personFilesgeUtil.getFileName()); FileDownloader fileDownloader = new FileDownloader(resource); fileDownloader.extend(download); } }); Button delete = new Button("Delete"); delete.setStyleName(Reindeer.BUTTON_LINK); delete.setData(fileId); delete.addClickListener( new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { deleteFile((String) event.getButton().getData()); removeItem((String) event.getButton().getData()); } }); addItem( new Object[] { storageService.getById(fileId).getFilename(), download, delete, }, fileId); } } setNullSelectionAllowed(false); setSelectable(true); // Send changes in selection immediately to server. setImmediate(true); }
private Set<String> updateEmpDetails(String fileId) { EmployeeDetail detail = person.getEmployeeDetails(); Set<String> files = new HashSet<>(); if (detail.getFiles() != null) { files = detail.getFiles(); } files.add(fileId); EmployeeDetail newDetail = getEmployeeDetail(detail, files); EmployeeDetailFacade.getEmployeeDetailService().merge(newDetail); Person newPerson = getPerson(person, newDetail); PersonFacade.getPersonService().merge(newPerson); return newDetail.getFiles(); }
public EmployeeDetail getEmployeeDetail(EmployeeDetail detail, Set<String> files) { EmployeeDetail newDetail = new EmployeeDetail.Builder(detail.getId()).EmployeeDetails(detail).files(files).build(); return newDetail; }