package no.dusken.aranea.admin.control; import no.dusken.aranea.model.Image; import no.dusken.aranea.model.PageImage; import no.dusken.aranea.model.Person; import no.dusken.aranea.service.PersonService; import no.dusken.aranea.service.StoreImageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * @author Marvin B. Lillehaug <lillehau@underdusken.no> */ public class PageImageOnSubmit { private PersonService personService; private StoreImageService storeImageService; public PageImage handlePageImageSubmit(PageImage pageImage, HttpServletRequest request) throws IOException { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = multipartRequest.getFile("file"); if (file != null && file.getSize() > 0) { Image image = storeImageService.createImage(file); // is illustration? Boolean illustration = ServletRequestUtils.getBooleanParameter( multipartRequest, "illustration", false); image.setIllustration(illustration); image.setDescription(ServletRequestUtils.getStringParameter(request, "description", "")); // set the author Long authorID = ServletRequestUtils.getLongParameter(multipartRequest, "photographer", 0L); Person person = personService.getEntity(authorID); image.setPhotographer(person); if (person == null) { image.setExternalSource(ServletRequestUtils .getStringParameter(multipartRequest, "external_source", "missing external source")); } //so that, if the person forget to set paragraph all images doesnt have paragraph 1. pageImage.setParagraph(pageImage.getPage().getPageImages().size() + 1); pageImage.setImage(image); } return pageImage; } @Autowired public void setPersonService(PersonService personService) { this.personService = personService; } @Autowired public void setStoreImageService(StoreImageService storeImageService) { this.storeImageService = storeImageService; } }