diff --git a/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java b/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java index 88b550c..0b601a6 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/gallery/LayersRest.java @@ -1,7 +1,9 @@ package org.ntlab.acanthus_server.resources.gallery; import org.ntlab.acanthus_server.entities.Layer; +import org.ntlab.acanthus_server.entities.Page; import org.ntlab.acanthus_server.entities.Position; +import org.ntlab.acanthus_server.entities.Stroke; import org.ntlab.acanthus_server.models.Gallery; import org.springframework.stereotype.Component; @@ -26,7 +28,7 @@ @GET @Produces(MediaType.APPLICATION_JSON) public Integer getLayers(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid) { - var pages = gallery.getAnimationByAid(aid).getPages(); + var pages = gallery.getAnimationByAid(aid).getPageMap(); return pages.get(pid).getLayers().size(); } @@ -40,13 +42,15 @@ @POST @Produces(MediaType.APPLICATION_JSON) public Integer addLayer(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid) { - var pages = gallery.getAnimationByAid(aid).getPages(); + var pages = gallery.getAnimationByAid(aid).getPageMap(); - if (pages.get(pid).getLayers().size() < 4) { - pages.get(pid).getLayers().add(new Layer()); + for (var p : pages) { + if (!p.getPid().equals(pid)) continue; + page = p; + if (p.getLayers().size() < layerSize) p.getLayers().add(new Layer()); } - return pages.get(pid).getLayers().size(); + return page.getLayers().size(); } @@ -60,7 +64,7 @@ @GET @Produces(MediaType.APPLICATION_JSON) public Integer getStrokeNo(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, @PathParam("layerNo") Integer layerNo) { - var pages = gallery.getAnimationByAid(aid).getPages(); + var pages = gallery.getAnimationByAid(aid).getPageMap(); var strokes = pages.get(pid).getLayers().get(layerNo).getStrokes(); if (strokes == null) return null; diff --git a/src/main/java/org/ntlab/acanthus_server/resources/gallery/StrokesRest.java b/src/main/java/org/ntlab/acanthus_server/resources/gallery/StrokesRest.java index a196653..52a8e4d 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/gallery/StrokesRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/gallery/StrokesRest.java @@ -30,7 +30,12 @@ @Produces(MediaType.APPLICATION_JSON) public ArrayList getStrokes(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, @PathParam("layerNo") Integer layerNo) { var pages = gallery.getAnimationByAid(aid).getPages(); - return pages.get(pid).getLayers().get(layerNo).getStrokes(); + + for (var p : pages) { + if (pid.equals(p.getPid())) return p.getLayers().get(layerNo).getStrokes(); + } + + throw new WebApplicationException(404); } // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ @@ -53,9 +58,13 @@ @FormParam("uid") Integer uid, @FormParam("strokeNo") Integer strokeNo, @FormParam("uidToken") String uidToken, @FormParam("pen") Integer pen, @FormParam("color") Integer color, @FormParam("thick") Integer thick) { var pages = gallery.getAnimationByAid(aid).getPages(); - var strokes = pages.get(pid).getLayers().get(layerNo).getStrokes(); + var strokes = new ArrayList(); - Stroke stroke = new Stroke(); + for (var p : pages) { + if (pid.equals(p.getPid())) strokes = p.getLayers().get(layerNo).getStrokes(); + } + + var stroke = new Stroke(); stroke.addStrokes(pen, color, thick); // 線の情報を追加 strokes.add(stroke); stroke.setStrokeNo(strokeNo); // strokeNoに現在のstrokesのsizeを入れる @@ -87,7 +96,10 @@ @Produces(MediaType.APPLICATION_JSON) public String deleteStrokes(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, @PathParam("layerNo") Integer layerNo, @QueryParam("uid") Integer uid) { var pages = gallery.getAnimationByAid(aid).getPages(); - var strokes = pages.get(pid).getLayers().get(layerNo).getStrokes(); + var strokes = new ArrayList(); + for (var page : pages) { + if (pid.equals(page.getPid())) strokes = page.getLayers().get(layerNo).getStrokes(); + } strokes.clear(); return "LGTM?"; @@ -110,9 +122,13 @@ @DELETE @Produces(MediaType.APPLICATION_JSON) public String deleteStrokeByStrokeNo(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, - @PathParam("layerNo") Integer layerNo, @PathParam("strokeNo") Integer strokeNo) { + @PathParam("layerNo") Integer layerNo, @PathParam("strokeNo") Integer strokeNo) { var pages = gallery.getAnimationByAid(aid).getPages(); - var strokes = pages.get(pid).getLayers().get(layerNo).getStrokes(); + var strokes = new ArrayList(); + for (var page : pages) { + if (pid.equals(page.getPid())) strokes = page.getLayers().get(layerNo).getStrokes(); + } + strokes.remove((int) strokeNo); return "やかんの麦茶"; @@ -136,7 +152,11 @@ public SortedSet getPositions(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, @PathParam("layerNo") Integer layerNo, @PathParam("strokeNo") Integer strokeNo) { var pages = gallery.getAnimationByAid(aid).getPages(); - var strokes = pages.get(pid).getLayers().get(layerNo).getStrokes(); + var strokes = new ArrayList(); + for (var p : pages) { + if (pid.equals(p.getPid())) strokes = p.getLayers().get(layerNo).getStrokes(); + } + /* Collections.sort(strokes.get(strokeNo).getPositions(), new Comparator() { @@ -167,12 +187,16 @@ @POST @Produces(MediaType.APPLICATION_JSON) public String addPosition(@FormParam("positionNo") Integer positionNo, @PathParam("aid") Integer aid, @PathParam("pid") Integer pid, @PathParam("strokeNo") Integer strokeNo, - @PathParam("layerNo") Integer layerNo, @FormParam("x") Float x, @FormParam("y") Float y) { + @PathParam("layerNo") Integer layerNo, @FormParam("x") Float x, @FormParam("y") Float y) { var pages = gallery.getAnimationByAid(aid).getPages(); - var strokes = pages.get(pid).getLayers().get(layerNo).getStrokes(); + var strokes = new ArrayList(); + for (var p : pages) { + if (pid.equals(p.getPid())) + strokes = p.getLayers().get(layerNo).getStrokes(); + } - Position position = new Position(); + var position = new Position(); position.setXY(positionNo, x, y); if(srstrokeNo==strokeNo){ strokes.get(srstrokeSize).addPosition(position);