diff --git a/src/main/java/org/ntlab/acanthus_server/entities/Position.java b/src/main/java/org/ntlab/acanthus_server/entities/Position.java index 89b9b71..3097f20 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Position.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Position.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.UUID; -public class Position { +public class Position implements Comparable { private int i; private float x; private float y; @@ -27,4 +27,15 @@ this.y = y; } + @Override + public int compareTo(Object o) { + if (o instanceof Position) { + if (i < ((Position) o).i) { + return -1; + } else if (i > ((Position) o).i) { + return 1; + } + } + return 0; + } } diff --git a/src/main/java/org/ntlab/acanthus_server/entities/Stroke.java b/src/main/java/org/ntlab/acanthus_server/entities/Stroke.java index bf88d02..6e1fecf 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Stroke.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Stroke.java @@ -1,7 +1,7 @@ package org.ntlab.acanthus_server.entities; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.*; + import org.ntlab.acanthus_server.resources.gallery.StrokesRest; import org.ntlab.acanthus_server.entities.Position; @@ -10,7 +10,7 @@ private int pen; // ペンの種類 private int color; // ペンの色 private int thickness; // ペンの厚さ - private ArrayList positions = new ArrayList<>(); + private SortedSet positions = new TreeSet<>(); public int getStrokeNo() { return this.strokeNo; @@ -26,7 +26,7 @@ } //座標のリストを返す - public ArrayList getPositions() { + public SortedSet getPositions() { return this.positions; } 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 a7999a8..f27d813 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 @@ -7,6 +7,9 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.SortedSet; // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // @@ -128,11 +131,19 @@ @Path("/{aid}/pageMap/{pid}/layers/{layerNo}/strokes/{strokeNo}/positions") @GET @Produces(MediaType.APPLICATION_JSON) - public ArrayList getPositions(@PathParam("aid") Integer aid, @PathParam("pid") Integer pid, + 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(); +/* Collections.sort(strokes.get(strokeNo).getPositions(), new Comparator() { + + @Override + public int compare(Object o1, Object o2) { + return 0; + } + });*/ + return strokes.get(strokeNo).getPositions(); // 呼び出したstrokesの情報を返す // if(animation != null) { // return this.positions; @@ -163,11 +174,11 @@ position.setXY(positionNo, x, y); strokes.get(strokeNo).addPosition(position); // 呼び出したstrokesに座標を追加する // if(animation != null) { -// this.Position.setXY(x, y); -// this.positions.add(this.Position); -// }else{ -// throw new WebApplicationException(401); -// } +//// this.Position.setXY(x, y); +//// this.positions.add(this.Position); +//// }else{ +//// throw new WebApplicationException(401); +//// } return strokes.get(strokeNo).getPositions().size(); } }