From ae11bae2305d0af5dae26addc20b7dc40a88df24 Mon Sep 17 00:00:00 2001 From: Eirik Steira <eirsteir@stud.ntnu.no> Date: Mon, 30 Mar 2020 11:09:32 +0200 Subject: [PATCH] Move methods for creating pdf to a location to ImageAlbumService --- .../NTNU/IDATT1002/controllers/ViewAlbum.java | 19 +++---------------- .../IDATT1002/service/ImageAlbumService.java | 19 +++++++++++++++++++ .../{utils => service}/PdfDocument.java | 2 +- .../NTNU/IDATT1002/utils/PdfDocumentTest.java | 1 + 4 files changed, 24 insertions(+), 17 deletions(-) rename src/main/java/NTNU/IDATT1002/{utils => service}/PdfDocument.java (99%) diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java index 4fbc5bbe..f30c50d1 100644 --- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java +++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java @@ -4,7 +4,7 @@ import NTNU.IDATT1002.App; import NTNU.IDATT1002.models.ImageAlbum; import NTNU.IDATT1002.service.ImageAlbumService; import NTNU.IDATT1002.service.TagService; -import NTNU.IDATT1002.utils.PdfDocument; +import NTNU.IDATT1002.service.PdfDocument; import javafx.application.HostServices; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -18,8 +18,6 @@ import javafx.scene.layout.Pane; import javafx.scene.shape.StrokeType; import javafx.scene.text.Font; import javafx.scene.text.Text; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.EntityManager; import java.io.File; @@ -70,13 +68,11 @@ public class ViewAlbum implements Initializable { private ImageAlbumService imageAlbumService; private Long currentAlbumId; - private Logger logger; - + public ViewAlbum() { EntityManager entityManager = App.ex.getEntityManager(); this.imageAlbumService = new ImageAlbumService(entityManager); currentAlbumId = App.ex.getChosenAlbumId(); - logger = LoggerFactory.getLogger("ImageApplicationLogger"); } /** @@ -378,16 +374,7 @@ public class ViewAlbum implements Initializable { */ public void createPdf(ActionEvent actionEvent) { Long currentAlbumId = App.ex.getChosenAlbumId(); - ImageAlbum imageAlbum = imageAlbumService.getImageAlbumById(currentAlbumId) - .orElseThrow(IllegalArgumentException::new); - - String destinationFile = String.format("%s/downloads/%s.pdf", - System.getProperty("user.home"), - imageAlbum.getTitle()); - - PdfDocument document = new PdfDocument(imageAlbum, destinationFile); - document.createPdfDocument(); - logger.info("[x] Saved PDF document to " + destinationFile); + PdfDocument document = imageAlbumService.getPdfDocument(currentAlbumId); displayPdfLink(document.getPdfDocument()); } diff --git a/src/main/java/NTNU/IDATT1002/service/ImageAlbumService.java b/src/main/java/NTNU/IDATT1002/service/ImageAlbumService.java index d5b5cd0e..dfe03323 100644 --- a/src/main/java/NTNU/IDATT1002/service/ImageAlbumService.java +++ b/src/main/java/NTNU/IDATT1002/service/ImageAlbumService.java @@ -7,6 +7,8 @@ import NTNU.IDATT1002.models.Tag; import NTNU.IDATT1002.models.User; import NTNU.IDATT1002.repository.ImageAlbumRepository; import NTNU.IDATT1002.repository.TagRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.persistence.EntityManager; import java.util.ArrayList; @@ -30,6 +32,7 @@ public class ImageAlbumService { private TagRepository tagRepository; + private Logger logger; /** * Inject entity manager instance to the repositories. @@ -37,6 +40,7 @@ public class ImageAlbumService { public ImageAlbumService(EntityManager entityManager) { this.imageAlbumRepository = new ImageAlbumRepository(entityManager); this.tagRepository = new TagRepository(entityManager); + logger = LoggerFactory.getLogger("ImageApplicationLogger"); } public Optional<ImageAlbum> getImageAlbumById(Long imageAlbumId) { @@ -103,6 +107,21 @@ public class ImageAlbumService { } + public PdfDocument getPdfDocument(Long currentAlbumId) { + ImageAlbum imageAlbum = getImageAlbumById(currentAlbumId) + .orElseThrow(IllegalArgumentException::new); + + String destinationFile = String.format("%s/downloads/%s.pdf", + System.getProperty("user.home"), + imageAlbum.getTitle()); + + PdfDocument document = new PdfDocument(imageAlbum, destinationFile); + document.createPdfDocument(); + logger.info("[x] Saved PDF document to " + destinationFile); + + return document; + } + /** * Retrieves all image albums created by the given user by username. * diff --git a/src/main/java/NTNU/IDATT1002/utils/PdfDocument.java b/src/main/java/NTNU/IDATT1002/service/PdfDocument.java similarity index 99% rename from src/main/java/NTNU/IDATT1002/utils/PdfDocument.java rename to src/main/java/NTNU/IDATT1002/service/PdfDocument.java index f407ecd6..efb1e398 100644 --- a/src/main/java/NTNU/IDATT1002/utils/PdfDocument.java +++ b/src/main/java/NTNU/IDATT1002/service/PdfDocument.java @@ -1,4 +1,4 @@ -package NTNU.IDATT1002.utils; +package NTNU.IDATT1002.service; import NTNU.IDATT1002.models.Image; import NTNU.IDATT1002.models.ImageAlbum; diff --git a/src/test/java/NTNU/IDATT1002/utils/PdfDocumentTest.java b/src/test/java/NTNU/IDATT1002/utils/PdfDocumentTest.java index 54bbfdaa..f932493e 100644 --- a/src/test/java/NTNU/IDATT1002/utils/PdfDocumentTest.java +++ b/src/test/java/NTNU/IDATT1002/utils/PdfDocumentTest.java @@ -3,6 +3,7 @@ package NTNU.IDATT1002.utils; import NTNU.IDATT1002.models.Image; import NTNU.IDATT1002.models.ImageAlbum; import NTNU.IDATT1002.models.User; +import NTNU.IDATT1002.service.PdfDocument; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -- GitLab