package com.wooki.pages.book; import java.io.InputStream; import org.apache.tapestry5.EventConstants; import org.apache.tapestry5.PersistenceConstants; import org.apache.tapestry5.annotations.OnEvent; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.slf4j.Logger; import com.wooki.base.BookBase; import com.wooki.services.BookStreamResponse; import com.wooki.services.export.ExportService; /** * Simply generates the PDF in activation phase. * * @author ccordenier * */ public class Pdf extends BookBase { @Inject private Logger logger; @Inject private ExportService exportService; @Inject private Messages messages; @Property @Persist(PersistenceConstants.FLASH) private String[] errors; /** * Simply export to PDF. * * @return */ @Override @OnEvent(value = EventConstants.ACTIVATE) public Object setupBookBase(Long bookId) { try { super.setupBookBase(bookId); InputStream bookStream = exportService.exportPdf(bookId); return new BookStreamResponse(getBook().getSlugTitle(), bookStream); } catch (Exception ex) { errors = new String[] { messages.get("print-error") }; logger.error("An Error has occured during PDF generation", ex); return this; } } }