diff --git a/src/main/java/cit/PureATN/PenUser.java b/src/main/java/cit/PureATN/PenUser.java index 05ca594..2d93aba 100644 --- a/src/main/java/cit/PureATN/PenUser.java +++ b/src/main/java/cit/PureATN/PenUser.java @@ -8,10 +8,12 @@ import java.util.Hashtable; import java.util.Map; +import org.piccolo2d.PNode; + public class PenUser { public static Hashtable penusers = new Hashtable(); - public static PenUser find(String penid){ + public static PenUser find(String penid) { penid = penid.trim(); PenUser pu = penusers.get(penid); if (pu == null) { @@ -20,67 +22,88 @@ } return pu; } - public static void add(String penid, int x, int y){ + + public static void add(String penid, int x, int y) { PenUser pu = PenUser.find(penid); pu.add(x, y); } - public static void press(String penid, int phase){ + + public static void press(String penid, int phase) { PenUser pu = PenUser.find(penid); pu.press(phase); } - public static void drawAll(Graphics g){ - for(PenUser pu: penusers.values()){ + + public static void drawAll(Graphics g) { + for (PenUser pu : penusers.values()) { pu.draw(g); } } - String penid; ArrayList strokes; Stroke lastStroke = null; + ShortStroke squiggle = null; // for Note View transient Note parent; int num = 0; - public PenUser(String pid, Note _parent){ + + public PenUser(String pid, Note _parent) { parent = _parent; penid = pid; strokes = new ArrayList(); - // num = penusers.size(); + // num = penusers.size(); num = Integer.parseInt(pid.replace("pen", "")); - // System.out.println("num = "+num+" "+pid); + // System.out.println("num = "+num+" "+pid); } - public void add(int x, int y){ - System.out.println(penid+" "+x+" "+y); - if (lastStroke == null){ + + public void add(int x, int y) { + System.out.println(penid + " " + x + " " + y); + if (lastStroke == null) { lastStroke = new Stroke(this); strokes.add(lastStroke); } - lastStroke.add(x,y); + if (squiggle == null) { + squiggle = new ShortStroke(); + PNode layer = Note.theapp.getCanvas().getLayer(); + layer.addChild(squiggle); + squiggle.startDrag_on_draw(x, y); + } else { + squiggle.drag_on_draw(x, y); + PNode layer = Note.theapp.getCanvas().getLayer(); + layer.repaint(); + } + lastStroke.add(x, y); Note.theapp.repaint(); } - public void press(int ph){ - if (ph == 0){ - if (lastStroke != null){ + + public void press(int ph) { + if (ph == 0) { + if (lastStroke != null) { lastStroke.finish(); // bundlesend(lastStroke); lastStroke = null; + + squiggle = null; } } else { + // 最初のPress } } - public void draw(Graphics g){ - g.setColor(Color.getHSBColor((float)(num/10.0f), 0.8f, 0.8f)); + + public void draw(Graphics g) { + g.setColor(Color.getHSBColor((float) (num / 10.0f), 0.8f, 0.8f)); int count = strokes.size(); - for(int i=0;i arg2; + + public void send(int x, int y, int x2, int y2) { + Map arg2; arg2 = new HashMap(); arg2.put("penid", penid); - // arg2.put("phase", drawphase012); + // arg2.put("phase", drawphase012); arg2.put("rgb", getColorStringRGB()); arg2.put("date", DPenReceiver.sdfdate.format(new Date())); arg2.put("time", DPenReceiver.sdftime.format(new Date())); @@ -92,7 +115,7 @@ // parent.ddp.call("/points/insert", new Object[]{arg2}); } - public void bundlesend(Stroke st){ + public void bundlesend(Stroke st) { // Map arg2; // arg2 = new HashMap(); // arg2.put("penid", penid); @@ -104,11 +127,11 @@ // parent.ddp.call("pointsclear", new Object[]{arg2}); } + public String getColorStringRGB(){ Color c = Color.getHSBColor((float)(num/11.0f), 0.8f, 0.8f); int r = c.getRed(); int g = c.getGreen(); int b = c.getBlue(); return "rgb("+r+","+g+","+b+")"; - } -} \ No newline at end of file + } \ No newline at end of file