From 5ef965d5d962c999a0ce1891f779a03fdef0793f Mon Sep 17 00:00:00 2001 From: Piotr Gawron <p.gawron@atcomp.pl> Date: Thu, 19 Dec 2024 12:41:15 +0100 Subject: [PATCH] enable edition of layer object with all children --- .../project/map/layer/NewLayerController.java | 10 ++---- .../api/project/map/layer/NewLayerDTO.java | 8 ++--- .../map/layer/image/NewImageController.java | 10 ++---- .../project/map/layer/image/NewImageDTO.java | 2 +- .../layer/line/NewLayerLineController.java | 10 ++---- .../map/layer/oval/NewOvalController.java | 10 ++---- .../project/map/layer/oval/NewOvalDTO.java | 23 ++++--------- .../map/layer/rect/NewRectController.java | 10 ++---- .../project/map/layer/rect/NewRectDTO.java | 26 +++++--------- .../map/layer/text/NewTextController.java | 10 ++---- .../project/map/layer/text/NewTextDTO.java | 34 +++++++------------ 11 files changed, 47 insertions(+), 106 deletions(-) diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerController.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerController.java index d409cdbd1c..67c161b8f1 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerController.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerController.java @@ -7,7 +7,6 @@ import lcsb.mapviewer.persist.dao.graphics.LayerProperty; import lcsb.mapviewer.services.ObjectNotFoundException; import lcsb.mapviewer.services.interfaces.ILayerService; import lcsb.mapviewer.services.interfaces.IModelService; -import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.web.api.NewApiResponseSerializer; import org.hibernate.validator.constraints.NotBlank; import org.springframework.beans.factory.annotation.Autowired; @@ -44,7 +43,6 @@ import java.util.Map; public class NewLayerController { private final IModelService modelService; - private final IProjectService projectService; private final ILayerService layerService; private final NewApiResponseSerializer serializer; @@ -52,12 +50,10 @@ public class NewLayerController { public NewLayerController( final IModelService modelService, final NewApiResponseSerializer serializer, - final ILayerService layerService, - final IProjectService projectService) { + final ILayerService layerService) { this.modelService = modelService; this.serializer = serializer; this.layerService = layerService; - this.projectService = projectService; } @PreAuthorize("hasAnyAuthority('IS_ADMIN', 'READ_PROJECT:' + #projectId)") @@ -95,7 +91,7 @@ public class NewLayerController { final Layer layer = new Layer(); - data.saveToLayer(layer, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToLayer(layer); layer.setModel(model); layerService.add(layer); @@ -113,7 +109,7 @@ public class NewLayerController { throws QueryException, ObjectNotFoundException { final Layer layer = getLayerFromService(projectId, mapId, layerId); serializer.checkETag(oldETag, layer); - data.saveToLayer(layer, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToLayer(layer); layerService.update(layer); return serializer.prepareResponse(getLayerFromService(projectId, mapId, layerId)); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerDTO.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerDTO.java index 20e397d62c..358857e7fe 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerDTO.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/NewLayerDTO.java @@ -18,16 +18,12 @@ public class NewLayerDTO extends AbstractDTO { private boolean locked; - public void saveToLayer(final Layer layer, final boolean allowLayoutChanges) throws QueryException { + public void saveToLayer(final Layer layer) throws QueryException { if (layer.getLayerId() == null) { layer.setLayerId(UUID.randomUUID().toString()); } - if (!allowLayoutChanges) { - checkEquality("visible", visible, layer.isVisible()); - } else { - layer.setVisible(visible); - } + layer.setVisible(visible); layer.setName(name); layer.setLocked(locked); } diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageController.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageController.java index d7b4c0cfb5..dee38d149b 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageController.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageController.java @@ -11,7 +11,6 @@ import lcsb.mapviewer.services.ObjectNotFoundException; import lcsb.mapviewer.services.interfaces.IGlyphService; import lcsb.mapviewer.services.interfaces.ILayerImageService; import lcsb.mapviewer.services.interfaces.ILayerService; -import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.web.api.NewApiResponseSerializer; import org.hibernate.validator.constraints.NotBlank; import org.springframework.beans.factory.annotation.Autowired; @@ -47,7 +46,6 @@ import java.util.Map; produces = MediaType.APPLICATION_JSON_VALUE) public class NewImageController { - private final IProjectService projectService; private final ILayerService layerService; private final NewApiResponseSerializer serializer; private final ILayerImageService layerImageService; @@ -58,11 +56,9 @@ public class NewImageController { final NewApiResponseSerializer serializer, final ILayerService layerService, final ILayerImageService layerImageService, - final IProjectService projectService, final IGlyphService glyphService) { this.serializer = serializer; this.layerService = layerService; - this.projectService = projectService; this.layerImageService = layerImageService; this.glyphService = glyphService; } @@ -111,8 +107,7 @@ public class NewImageController { final LayerImage image = new LayerImage(); - data.saveToLayer(image, projectService.getBackgrounds(projectId, false).isEmpty(), - (glyphId) -> getGlyphFromService(projectId, glyphId)); + data.saveToLayer(image, (glyphId) -> getGlyphFromService(projectId, glyphId)); image.setLayer(layer); layerImageService.add(image); @@ -145,8 +140,7 @@ public class NewImageController { throws QueryException, ObjectNotFoundException { final LayerImage image = getImageFromService(projectId, mapId, layerId, imageId); serializer.checkETag(oldETag, image); - data.saveToLayer(image, projectService.getBackgrounds(projectId, false).isEmpty(), - (glyphId) -> getGlyphFromService(projectId, glyphId)); + data.saveToLayer(image, (glyphId) -> getGlyphFromService(projectId, glyphId)); layerImageService.update(image); return serializer.prepareResponse(getImageFromService(projectId, mapId, layerId, imageId)); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageDTO.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageDTO.java index cd4fe9dc6b..e60c994c48 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageDTO.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/image/NewImageDTO.java @@ -27,7 +27,7 @@ public class NewImageDTO extends AbstractDTO { private Integer glyph; - public void saveToLayer(final LayerImage image, final boolean allowLayoutChanges, final CheckedFunction<Integer, Glyph> getGlyphById) + public void saveToLayer(final LayerImage image, final CheckedFunction<Integer, Glyph> getGlyphById) throws QueryException { image.setX(x); image.setY(y); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/line/NewLayerLineController.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/line/NewLayerLineController.java index 4bbefe2814..8fea65d7a6 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/line/NewLayerLineController.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/line/NewLayerLineController.java @@ -8,7 +8,6 @@ import lcsb.mapviewer.persist.dao.graphics.PolylineDataProperty; import lcsb.mapviewer.services.ObjectNotFoundException; import lcsb.mapviewer.services.interfaces.ILayerLineService; import lcsb.mapviewer.services.interfaces.ILayerService; -import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.web.api.NewApiResponseSerializer; import lcsb.mapviewer.web.api.project.map.bioentity.reaction.NewLineDTO; import org.hibernate.validator.constraints.NotBlank; @@ -45,7 +44,6 @@ import java.util.Map; produces = MediaType.APPLICATION_JSON_VALUE) public class NewLayerLineController { - private final IProjectService projectService; private final ILayerLineService layerLineService; private final ILayerService layerService; private final NewApiResponseSerializer serializer; @@ -54,10 +52,8 @@ public class NewLayerLineController { public NewLayerLineController( final NewApiResponseSerializer serializer, final ILayerLineService layerLineService, - final ILayerService layerService, - final IProjectService projectService) { + final ILayerService layerService) { this.serializer = serializer; - this.projectService = projectService; this.layerLineService = layerLineService; this.layerService = layerService; } @@ -103,7 +99,7 @@ public class NewLayerLineController { throws QueryException, ObjectNotFoundException { final PolylineData line = getLineFromService(projectId, mapId, layerId, lineId); serializer.checkETag(oldETag, line); - data.saveToLine(line, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToLine(line, true); layerLineService.update(line); return serializer.prepareResponse(getLineFromService(projectId, mapId, layerId, lineId)); @@ -154,7 +150,7 @@ public class NewLayerLineController { final PolylineData line = new PolylineData(); - data.saveToLine(line, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToLine(line, true); line.setLayer(layer); layerLineService.add(line); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalController.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalController.java index 1532719bb8..e326741c78 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalController.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalController.java @@ -8,7 +8,6 @@ import lcsb.mapviewer.persist.dao.graphics.LayerProperty; import lcsb.mapviewer.services.ObjectNotFoundException; import lcsb.mapviewer.services.interfaces.ILayerOvalService; import lcsb.mapviewer.services.interfaces.ILayerService; -import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.web.api.NewApiResponseSerializer; import org.hibernate.validator.constraints.NotBlank; import org.springframework.beans.factory.annotation.Autowired; @@ -44,7 +43,6 @@ import java.util.Map; produces = MediaType.APPLICATION_JSON_VALUE) public class NewOvalController { - private final IProjectService projectService; private final ILayerService layerService; private final NewApiResponseSerializer serializer; private final ILayerOvalService layerOvalService; @@ -53,11 +51,9 @@ public class NewOvalController { public NewOvalController( final NewApiResponseSerializer serializer, final ILayerService layerService, - final ILayerOvalService layerOvalService, - final IProjectService projectService) { + final ILayerOvalService layerOvalService) { this.serializer = serializer; this.layerService = layerService; - this.projectService = projectService; this.layerOvalService = layerOvalService; } @@ -105,7 +101,7 @@ public class NewOvalController { final LayerOval oval = new LayerOval(); - data.saveToLayer(oval, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToOval(oval); oval.setLayer(layer); layerOvalService.add(oval); @@ -138,7 +134,7 @@ public class NewOvalController { throws QueryException, ObjectNotFoundException { final LayerOval oval = getOvalFromService(projectId, mapId, layerId, ovalId); serializer.checkETag(oldETag, oval); - data.saveToLayer(oval, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToOval(oval); layerOvalService.update(oval); return serializer.prepareResponse(getOvalFromService(projectId, mapId, layerId, ovalId)); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalDTO.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalDTO.java index ad8d2a69b8..ba7f99e31c 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalDTO.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/oval/NewOvalDTO.java @@ -27,22 +27,13 @@ public class NewOvalDTO extends AbstractDTO { @NotNull private Integer z; - public void saveToLayer(final LayerOval oval, final boolean allowLayoutChanges) throws QueryException { - if (!allowLayoutChanges) { - checkEquality("color", color, oval.getColor()); - checkEquality("x", x, oval.getX()); - checkEquality("y", y, oval.getY()); - checkEquality("z", z, oval.getZ()); - checkEquality("width", width, oval.getWidth()); - checkEquality("height", height, oval.getHeight()); - } else { - oval.setColor(color); - oval.setX(x); - oval.setY(y); - oval.setZ(z); - oval.setWidth(width); - oval.setHeight(height); - } + public void saveToOval(final LayerOval oval) throws QueryException { + oval.setColor(color); + oval.setX(x); + oval.setY(y); + oval.setZ(z); + oval.setWidth(width); + oval.setHeight(height); } public Color getColor() { diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectController.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectController.java index 9aea6dc472..2ac282b110 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectController.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectController.java @@ -8,7 +8,6 @@ import lcsb.mapviewer.persist.dao.graphics.LayerRectProperty; import lcsb.mapviewer.services.ObjectNotFoundException; import lcsb.mapviewer.services.interfaces.ILayerRectService; import lcsb.mapviewer.services.interfaces.ILayerService; -import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.web.api.NewApiResponseSerializer; import org.hibernate.validator.constraints.NotBlank; import org.springframework.beans.factory.annotation.Autowired; @@ -44,7 +43,6 @@ import java.util.Map; produces = MediaType.APPLICATION_JSON_VALUE) public class NewRectController { - private final IProjectService projectService; private final ILayerService layerService; private final NewApiResponseSerializer serializer; private final ILayerRectService layerRectService; @@ -53,11 +51,9 @@ public class NewRectController { public NewRectController( final NewApiResponseSerializer serializer, final ILayerService layerService, - final ILayerRectService layerRectService, - final IProjectService projectService) { + final ILayerRectService layerRectService) { this.serializer = serializer; this.layerService = layerService; - this.projectService = projectService; this.layerRectService = layerRectService; } @@ -105,7 +101,7 @@ public class NewRectController { final LayerRect rect = new LayerRect(); - data.saveToLayer(rect, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToRectangle(rect); rect.setLayer(layer); layerRectService.add(rect); @@ -138,7 +134,7 @@ public class NewRectController { throws QueryException, ObjectNotFoundException { final LayerRect rect = getRectFromService(projectId, mapId, layerId, rectId); serializer.checkETag(oldETag, rect); - data.saveToLayer(rect, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToRectangle(rect); layerRectService.update(rect); return serializer.prepareResponse(getRectFromService(projectId, mapId, layerId, rectId)); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectDTO.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectDTO.java index 98d8253d47..5e59bf855e 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectDTO.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/rect/NewRectDTO.java @@ -30,24 +30,14 @@ public class NewRectDTO extends AbstractDTO { @NotNull private Integer z; - public void saveToLayer(final LayerRect rect, final boolean allowLayoutChanges) throws QueryException { - if (!allowLayoutChanges) { - checkEquality("fillColor", fillColor, rect.getFillColor()); - checkEquality("borderColor", borderColor, rect.getBorderColor()); - checkEquality("x", x, rect.getX()); - checkEquality("y", y, rect.getY()); - checkEquality("z", z, rect.getZ()); - checkEquality("width", width, rect.getWidth()); - checkEquality("height", height, rect.getHeight()); - } else { - rect.setFillColor(fillColor); - rect.setBorderColor(borderColor); - rect.setX(x); - rect.setY(y); - rect.setZ(z); - rect.setWidth(width); - rect.setHeight(height); - } + public void saveToRectangle(final LayerRect rect) throws QueryException { + rect.setFillColor(fillColor); + rect.setBorderColor(borderColor); + rect.setX(x); + rect.setY(y); + rect.setZ(z); + rect.setWidth(width); + rect.setHeight(height); } public Double getX() { diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextController.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextController.java index 831cdb48a4..77f2a92aea 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextController.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextController.java @@ -8,7 +8,6 @@ import lcsb.mapviewer.persist.dao.graphics.LayerTextProperty; import lcsb.mapviewer.services.ObjectNotFoundException; import lcsb.mapviewer.services.interfaces.ILayerService; import lcsb.mapviewer.services.interfaces.ILayerTextService; -import lcsb.mapviewer.services.interfaces.IProjectService; import lcsb.mapviewer.web.api.NewApiResponseSerializer; import org.hibernate.validator.constraints.NotBlank; import org.springframework.beans.factory.annotation.Autowired; @@ -44,7 +43,6 @@ import java.util.Map; produces = MediaType.APPLICATION_JSON_VALUE) public class NewTextController { - private final IProjectService projectService; private final ILayerService layerService; private final NewApiResponseSerializer serializer; private final ILayerTextService layerTextService; @@ -53,11 +51,9 @@ public class NewTextController { public NewTextController( final NewApiResponseSerializer serializer, final ILayerService layerService, - final ILayerTextService layerTextService, - final IProjectService projectService) { + final ILayerTextService layerTextService) { this.serializer = serializer; this.layerService = layerService; - this.projectService = projectService; this.layerTextService = layerTextService; } @@ -105,7 +101,7 @@ public class NewTextController { final LayerText text = new LayerText(); - data.saveToLayer(text, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToText(text); text.setLayer(layer); layerTextService.add(text); @@ -138,7 +134,7 @@ public class NewTextController { throws QueryException, ObjectNotFoundException { final LayerText text = getTextFromService(projectId, mapId, layerId, textId); serializer.checkETag(oldETag, text); - data.saveToLayer(text, projectService.getBackgrounds(projectId, false).isEmpty()); + data.saveToText(text); layerTextService.update(text); return serializer.prepareResponse(getTextFromService(projectId, mapId, layerId, textId)); diff --git a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextDTO.java b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextDTO.java index 8f3729e535..6a92fceeef 100644 --- a/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextDTO.java +++ b/web/src/main/java/lcsb/mapviewer/web/api/project/map/layer/text/NewTextDTO.java @@ -45,28 +45,18 @@ public class NewTextDTO extends AbstractDTO { private HorizontalAlign horizontalAlign; - public void saveToLayer(final LayerText text, final boolean allowLayoutChanges) throws QueryException { - if (!allowLayoutChanges) { - checkEquality("color", color, text.getColor()); - checkEquality("borderColor", borderColor, text.getBorderColor()); - checkEquality("x", x, text.getX()); - checkEquality("y", y, text.getY()); - checkEquality("z", z, text.getZ()); - checkEquality("width", width, text.getWidth()); - checkEquality("height", height, text.getHeight()); - } else { - text.setColor(color); - text.setBorderColor(borderColor); - text.setNotes(notes); - text.setFontSize(fontSize); - text.setX(x); - text.setY(y); - text.setZ(z); - text.setWidth(width); - text.setHeight(height); - text.setVerticalAlign(verticalAlign); - text.setHorizontalAlign(horizontalAlign); - } + public void saveToText(final LayerText text) throws QueryException { + text.setColor(color); + text.setBorderColor(borderColor); + text.setNotes(notes); + text.setFontSize(fontSize); + text.setX(x); + text.setY(y); + text.setZ(z); + text.setWidth(width); + text.setHeight(height); + text.setVerticalAlign(verticalAlign); + text.setHorizontalAlign(horizontalAlign); } public Double getX() { -- GitLab