Skip to content

Commit

Permalink
renaming, clean magic string, ...
Browse files Browse the repository at this point in the history
  • Loading branch information
Florent Mariotti committed Feb 26, 2025
1 parent 80ed91d commit d6199a5
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
Original file line number Diff line number Diff line change
@@ -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;

}
22 changes: 11 additions & 11 deletions backend/src/main/java/fr/cgi/magneto/helper/SlideHelper.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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) {
Expand All @@ -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);
Expand All @@ -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;
}

Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -106,14 +106,14 @@ private Future<List<Map<String, Object>>> getBoardDocuments(List<String> documen
private Future<Void> fetchDocumentFile(String documentId, List<Map<String, Object>> 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)
: "";
Expand All @@ -122,9 +122,9 @@ private Future<Void> fetchDocumentFile(String documentId, List<Map<String, Objec
serviceFactory.storage().readFile(fileId, buffer -> {
if (buffer != null) {
Map<String, Object> 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 {
Expand Down Expand Up @@ -190,33 +190,33 @@ private XSLFSlide createTitleSlide(Board board, List<Map<String, Object>> 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);

XSLFTextParagraph paragraph = textBox.addNewTextParagraph();
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<String, Object> 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;
Expand Down

0 comments on commit d6199a5

Please sign in to comment.