diff --git a/backend/src/main/java/fr/cgi/magneto/core/constants/Field.java b/backend/src/main/java/fr/cgi/magneto/core/constants/Field.java index fe270945..f7180ab3 100644 --- a/backend/src/main/java/fr/cgi/magneto/core/constants/Field.java +++ b/backend/src/main/java/fr/cgi/magneto/core/constants/Field.java @@ -238,4 +238,6 @@ public class Field { //EXPORT SLIDE public static final String SLIDE_OBJECTS = "slideObjects"; + public static final String BUFFER = "buffer"; + public static final String FILE = "file"; } diff --git a/backend/src/main/java/fr/cgi/magneto/core/constants/MagnetoConstants.java b/backend/src/main/java/fr/cgi/magneto/core/constants/Slideshow.java similarity index 94% rename from backend/src/main/java/fr/cgi/magneto/core/constants/MagnetoConstants.java rename to backend/src/main/java/fr/cgi/magneto/core/constants/Slideshow.java index 091285f8..2cab3df8 100644 --- a/backend/src/main/java/fr/cgi/magneto/core/constants/MagnetoConstants.java +++ b/backend/src/main/java/fr/cgi/magneto/core/constants/Slideshow.java @@ -1,31 +1,31 @@ -package fr.cgi.magneto.core.constants; - -public class MagnetoConstants { - // Constantes de mise en page générales - public static final int MARGIN_LEFT = 140; - public static final int MARGIN_TOP_TITLE = 40; - public static final int WIDTH = 1000; - - // Constantes pour les titres - public static final int TITLE_HEIGHT = 70; - public static final Double TITLE_FONT_SIZE = 44.0; - public static final int MAIN_TITLE_HEIGHT = 100; - public static final Double MAIN_TITLE_FONT_SIZE = 100.0; - - // Constantes pour les légendes - public static final int LEGEND_HEIGHT = 70; - public static final int LEGEND_MARGIN_BOTTOM = 20; - public static final Double LEGEND_FONT_SIZE = 16.0; - public static final String LEGEND_FONT_FAMILY = "Roboto"; - - // Constantes pour le contenu - public static final int CONTENT_HEIGHT = 520; - public static final int CONTENT_MARGIN_TOP = 140; - public static final int MAIN_CONTENT_MARGIN_TOP = 300; - public static final Double CONTENT_FONT_SIZE = 36.0; - - // Constantes pour les images - public static final int MAIN_IMAGE_CONTENT_HEIGHT = 400; - public static final int IMAGE_CONTENT_HEIGHT = 480; - -} +package fr.cgi.magneto.core.constants; + +public class Slideshow { + // Constantes de mise en page générales + public static final int MARGIN_LEFT = 140; + public static final int MARGIN_TOP_TITLE = 40; + public static final int WIDTH = 1000; + + // Constantes pour les titres + public static final int TITLE_HEIGHT = 70; + public static final Double TITLE_FONT_SIZE = 44.0; + public static final int MAIN_TITLE_HEIGHT = 100; + public static final Double MAIN_TITLE_FONT_SIZE = 100.0; + + // Constantes pour les légendes + public static final int LEGEND_HEIGHT = 70; + public static final int LEGEND_MARGIN_BOTTOM = 20; + public static final Double LEGEND_FONT_SIZE = 16.0; + public static final String LEGEND_FONT_FAMILY = "Roboto"; + + // Constantes pour le contenu + public static final int CONTENT_HEIGHT = 520; + public static final int CONTENT_MARGIN_TOP = 140; + public static final int MAIN_CONTENT_MARGIN_TOP = 300; + public static final Double CONTENT_FONT_SIZE = 36.0; + + // Constantes pour les images + public static final int MAIN_IMAGE_CONTENT_HEIGHT = 400; + public static final int IMAGE_CONTENT_HEIGHT = 480; + +} diff --git a/backend/src/main/java/fr/cgi/magneto/helper/SlideHelper.java b/backend/src/main/java/fr/cgi/magneto/helper/SlideHelper.java index 7c06ab8e..76d6ebed 100644 --- a/backend/src/main/java/fr/cgi/magneto/helper/SlideHelper.java +++ b/backend/src/main/java/fr/cgi/magneto/helper/SlideHelper.java @@ -1,6 +1,6 @@ package fr.cgi.magneto.helper; -import fr.cgi.magneto.core.constants.MagnetoConstants; +import fr.cgi.magneto.core.constants.Slideshow; import org.apache.poi.sl.usermodel.PictureData.PictureType; import org.apache.poi.sl.usermodel.Placeholder; import org.apache.poi.sl.usermodel.PlaceholderDetails; @@ -14,7 +14,7 @@ public class SlideHelper { public static XSLFTextBox createTitle(XSLFSlide slide, String title, int titleHeight, Double titleFontSize, TextAlign titleTextAlign) { XSLFTextShape titleShape = slide.createTextBox(); - titleShape.setAnchor(new Rectangle(MagnetoConstants.MARGIN_LEFT, MagnetoConstants.MARGIN_TOP_TITLE, MagnetoConstants.WIDTH, titleHeight)); + titleShape.setAnchor(new Rectangle(Slideshow.MARGIN_LEFT, Slideshow.MARGIN_TOP_TITLE, Slideshow.WIDTH, titleHeight)); PlaceholderDetails phDetails = titleShape.getPlaceholderDetails(); if (phDetails != null) { @@ -37,9 +37,9 @@ public static XSLFTextBox createLegend(XSLFSlide slide, String legendText) { XSLFTextBox legendShape = slide.createTextBox(); int slideHeight = slide.getSlideShow().getPageSize().height; - int legendY = slideHeight - MagnetoConstants.LEGEND_HEIGHT - MagnetoConstants.LEGEND_MARGIN_BOTTOM; + int legendY = slideHeight - Slideshow.LEGEND_HEIGHT - Slideshow.LEGEND_MARGIN_BOTTOM; - legendShape.setAnchor(new Rectangle(MagnetoConstants.MARGIN_LEFT, legendY, MagnetoConstants.WIDTH, MagnetoConstants.LEGEND_HEIGHT)); + legendShape.setAnchor(new Rectangle(Slideshow.MARGIN_LEFT, legendY, Slideshow.WIDTH, Slideshow.LEGEND_HEIGHT)); legendShape.clearText(); legendShape.setText(legendText); @@ -48,15 +48,15 @@ public static XSLFTextBox createLegend(XSLFSlide slide, String legendText) { para.setTextAlign(TextAlign.LEFT); XSLFTextRun run = para.getTextRuns().get(0); - run.setFontSize(MagnetoConstants.LEGEND_FONT_SIZE); - run.setFontFamily(MagnetoConstants.LEGEND_FONT_FAMILY); + run.setFontSize(Slideshow.LEGEND_FONT_SIZE); + run.setFontFamily(Slideshow.LEGEND_FONT_FAMILY); return legendShape; } public static XSLFTextBox createContent(XSLFSlide slide) { XSLFTextBox contentBox = slide.createTextBox(); - contentBox.setAnchor(new Rectangle(MagnetoConstants.MARGIN_LEFT, MagnetoConstants.CONTENT_MARGIN_TOP, MagnetoConstants.WIDTH, MagnetoConstants.CONTENT_HEIGHT)); + contentBox.setAnchor(new Rectangle(Slideshow.MARGIN_LEFT, Slideshow.CONTENT_MARGIN_TOP, Slideshow.WIDTH, Slideshow.CONTENT_HEIGHT)); return contentBox; } @@ -69,15 +69,15 @@ public static XSLFPictureShape createImage(XSLFSlide slide, byte[] pictureData, double imgRatio = (double) imgSize.width / imgSize.height; int newWidth, newHeight; - if (imgRatio > (double) MagnetoConstants.WIDTH / imageContentHeight) { - newWidth = MagnetoConstants.WIDTH; - newHeight = (int) (MagnetoConstants.WIDTH / imgRatio); + if (imgRatio > (double) Slideshow.WIDTH / imageContentHeight) { + newWidth = Slideshow.WIDTH; + newHeight = (int) (Slideshow.WIDTH / imgRatio); } else { newHeight = imageContentHeight; newWidth = (int) (imageContentHeight * imgRatio); } - int x = MagnetoConstants.MARGIN_LEFT + (MagnetoConstants.WIDTH - newWidth) / 2; + int x = Slideshow.MARGIN_LEFT + (Slideshow.WIDTH - newWidth) / 2; int y = contentMarginTop + (imageContentHeight - newHeight) / 2; XSLFPictureShape shape = slide.createPicture(pic); diff --git a/backend/src/main/java/fr/cgi/magneto/model/slides/SlideMedia.java b/backend/src/main/java/fr/cgi/magneto/model/slides/SlideMedia.java index 0e749dc0..68cae763 100644 --- a/backend/src/main/java/fr/cgi/magneto/model/slides/SlideMedia.java +++ b/backend/src/main/java/fr/cgi/magneto/model/slides/SlideMedia.java @@ -1,6 +1,6 @@ package fr.cgi.magneto.model.slides; -import fr.cgi.magneto.core.constants.MagnetoConstants; +import fr.cgi.magneto.core.constants.Slideshow; import fr.cgi.magneto.helper.SlideHelper; import org.apache.poi.sl.usermodel.TextParagraph; import org.apache.poi.xslf.usermodel.XMLSlideShow; @@ -26,8 +26,8 @@ public Object createApacheSlide() { XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide = ppt.createSlide(); - SlideHelper.createTitle(slide, title, MagnetoConstants.TITLE_HEIGHT, MagnetoConstants.TITLE_FONT_SIZE, TextParagraph.TextAlign.LEFT); - SlideHelper.createImage(slide, resourceData, fileExtension, MagnetoConstants.CONTENT_MARGIN_TOP, MagnetoConstants.IMAGE_CONTENT_HEIGHT); + SlideHelper.createTitle(slide, title, Slideshow.TITLE_HEIGHT, Slideshow.TITLE_FONT_SIZE, TextParagraph.TextAlign.LEFT); + SlideHelper.createImage(slide, resourceData, fileExtension, Slideshow.CONTENT_MARGIN_TOP, Slideshow.IMAGE_CONTENT_HEIGHT); SlideHelper.createLegend(slide, caption); return slide; diff --git a/backend/src/main/java/fr/cgi/magneto/model/slides/SlideText.java b/backend/src/main/java/fr/cgi/magneto/model/slides/SlideText.java index 86ee35e1..e35c6251 100644 --- a/backend/src/main/java/fr/cgi/magneto/model/slides/SlideText.java +++ b/backend/src/main/java/fr/cgi/magneto/model/slides/SlideText.java @@ -1,6 +1,6 @@ package fr.cgi.magneto.model.slides; -import fr.cgi.magneto.core.constants.MagnetoConstants; +import fr.cgi.magneto.core.constants.Slideshow; import fr.cgi.magneto.helper.SlideHelper; import org.apache.poi.sl.usermodel.AutoNumberingScheme; import org.apache.poi.sl.usermodel.TextParagraph; @@ -24,7 +24,7 @@ public Object createApacheSlide() { XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide = ppt.createSlide(); - SlideHelper.createTitle(slide, title, MagnetoConstants.TITLE_HEIGHT, MagnetoConstants.TITLE_FONT_SIZE, TextParagraph.TextAlign.LEFT); + SlideHelper.createTitle(slide, title, Slideshow.TITLE_HEIGHT, Slideshow.TITLE_FONT_SIZE, TextParagraph.TextAlign.LEFT); XSLFTextBox contentBox = SlideHelper.createContent(slide); Document doc = Jsoup.parse(description); diff --git a/backend/src/main/java/fr/cgi/magneto/service/impl/DefaultExportService.java b/backend/src/main/java/fr/cgi/magneto/service/impl/DefaultExportService.java index cb47a64f..4fd98143 100644 --- a/backend/src/main/java/fr/cgi/magneto/service/impl/DefaultExportService.java +++ b/backend/src/main/java/fr/cgi/magneto/service/impl/DefaultExportService.java @@ -1,7 +1,7 @@ package fr.cgi.magneto.service.impl; import fr.cgi.magneto.core.constants.Field; -import fr.cgi.magneto.core.constants.MagnetoConstants; +import fr.cgi.magneto.core.constants.Slideshow; import fr.cgi.magneto.core.enums.SlideResourceType; import fr.cgi.magneto.factory.SlideFactory; import fr.cgi.magneto.helper.I18nHelper; @@ -106,14 +106,14 @@ private Future>> getBoardDocuments(List documen private Future fetchDocumentFile(String documentId, List> documents) { return serviceFactory.workSpaceService().getDocument(documentId) .compose(document -> { - String fileId = document.getString("file"); + String fileId = document.getString(Field.FILE); if (fileId == null) { log.warn("File ID is null for document: " + documentId); return Future.succeededFuture(); } - String filename = document.getJsonObject("metadata", new JsonObject()) - .getString("filename", ""); + String filename = document.getJsonObject(Field.METADATA, new JsonObject()) + .getString(Field.FILENAME, ""); String fileExtension = filename.contains(".") ? filename.substring(filename.lastIndexOf(".") + 1) : ""; @@ -122,9 +122,9 @@ private Future fetchDocumentFile(String documentId, List { if (buffer != null) { Map docInfo = new HashMap<>(); - docInfo.put("documentId", documentId); - docInfo.put("buffer", buffer); - docInfo.put("extension", fileExtension); + docInfo.put(Field.DOCUMENTID, documentId); + docInfo.put(Field.BUFFER, buffer); + docInfo.put(Field.EXTENSION, fileExtension); documents.add(docInfo); promise.complete(); } else { @@ -190,7 +190,7 @@ private XSLFSlide createTitleSlide(Board board, List> docume XMLSlideShow ppt = new XMLSlideShow(); XSLFSlide slide = ppt.createSlide(); - SlideHelper.createTitle(slide, board.getTitle(), MagnetoConstants.MAIN_TITLE_HEIGHT, MagnetoConstants.MAIN_TITLE_FONT_SIZE, TextParagraph.TextAlign.CENTER); + SlideHelper.createTitle(slide, board.getTitle(), Slideshow.MAIN_TITLE_HEIGHT, Slideshow.MAIN_TITLE_FONT_SIZE, TextParagraph.TextAlign.CENTER); XSLFTextBox textBox = SlideHelper.createContent(slide); @@ -198,25 +198,25 @@ private XSLFSlide createTitleSlide(Board board, List> docume paragraph.setTextAlign(TextParagraph.TextAlign.CENTER); XSLFTextRun textRun = paragraph.addNewTextRun(); textRun.setText(i18nHelper.translate("magneto.slideshow.created.by") + board.getOwnerName() + ","); - textRun.setFontSize(MagnetoConstants.CONTENT_FONT_SIZE); + textRun.setFontSize(Slideshow.CONTENT_FONT_SIZE); XSLFTextParagraph paragraph2 = textBox.addNewTextParagraph(); paragraph2.setTextAlign(TextParagraph.TextAlign.CENTER); XSLFTextRun textRun2 = paragraph2.addNewTextRun(); textRun2.setText(i18nHelper.translate("magneto.slideshow.updated.the") + board.getModificationDate()); - textRun2.setFontSize(MagnetoConstants.CONTENT_FONT_SIZE); + textRun2.setFontSize(Slideshow.CONTENT_FONT_SIZE); String imageUrl = board.getImageUrl(); String imageId = imageUrl.substring(imageUrl.lastIndexOf('/') + 1); Map documentData = documents.stream() - .filter(doc -> imageId.equals(doc.get("documentId"))) + .filter(doc -> imageId.equals(doc.get(Field.DOCUMENTID))) .findFirst() .orElse(null); if (documentData != null) { - Buffer documentBuffer = (Buffer) documentData.get("buffer"); - String fileExtension = (String) documentData.get("extension"); + Buffer documentBuffer = (Buffer) documentData.get(Field.BUFFER); + String fileExtension = (String) documentData.get(Field.EXTENSION); if (documentBuffer != null) { - SlideHelper.createImage(slide, documentBuffer.getBytes(), fileExtension, MagnetoConstants.MAIN_CONTENT_MARGIN_TOP, MagnetoConstants.MAIN_IMAGE_CONTENT_HEIGHT); + SlideHelper.createImage(slide, documentBuffer.getBytes(), fileExtension, Slideshow.MAIN_CONTENT_MARGIN_TOP, Slideshow.MAIN_IMAGE_CONTENT_HEIGHT); } } return slide;