diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java index 4fbc5bbe0a4a7bcdd3eb2d3b544beef2ae19f492..f30c50d1ae7f0534fce2885affa53236f3c29d57 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 d5b5cd0ee9bb746561cc8ea71038769a64393dfc..dfe03323bc7da5b5fc3bffc3f7d19caa759cfd77 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 f407ecd68061d80721f80d2fc8110ec93267484b..efb1e398a724395237d7e143bf8de75e15cf7651 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 54bbfdaad68bb33c25ce0d97f585abca1552208a..f932493e8b942982ead1227eec4e61c17c5a17af 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;