diff --git a/src/main/java/cit/PureATN/MultiNote/MouseEvent_onMN.java b/src/main/java/cit/PureATN/MultiNote/MouseEvent_onMN.java index 9fc1075..6679a72 100644 --- a/src/main/java/cit/PureATN/MultiNote/MouseEvent_onMN.java +++ b/src/main/java/cit/PureATN/MultiNote/MouseEvent_onMN.java @@ -8,15 +8,16 @@ import org.piccolo2d.event.PBasicInputEventHandler; import org.piccolo2d.event.PInputEvent; import org.piccolo2d.nodes.PText; +import org.piccolo2d.util.PDimension; import cit.PureATN.Note; - public class MouseEvent_onMN extends PBasicInputEventHandler { Note frame; PInputEvent pressEv = null; PNode pressPN; + PNode moveTarget; Point2D pressP = null; int dragCount = 0; @@ -28,23 +29,48 @@ pressEv = aEvent; pressPN = aEvent.getPickedNode(); dragCount = 0; + if (pressEv != null && pressEv.getButton() == MouseEvent.BUTTON1) { + if (pressPN.getAttribute("moveTarget") != null) { + if (pressPN instanceof PNode) { + moveTarget = (PNode) pressPN.getAttribute("moveTarget"); + // System.out.println("moveTarget: " + moveTarget.getClass().getName()); + } + } + } } + public void mouseDragged(final PInputEvent aEvent) { dragCount++; - } - public void mouseReleased(final PInputEvent aEvent) { - if (pressEv == null) return; - if (pressPN.getAttribute("nozoom") != null) return;//nozoomタグがついていたら,ズームインしない(色付けボタン:FRPaletteのPPathなので) - if (dragCount < 3){ - if (pressEv.getButton()==MouseEvent.BUTTON3){ - //ポップアップメニュー - if (pressPN instanceof PCamera || pressPN instanceof PText) //Sheetのときは表示しない. - new PopupMenu_forMN(frame, pressEv, frame.getCanvas()); - } else if (pressEv.getButton()==MouseEvent.BUTTON1){ -// if (SimpleATN.theapp.zrh.selection == null){ -// frame.focus(); -// } + if (pressEv.getButton() == MouseEvent.BUTTON1) { + if (moveTarget != null) { + PDimension d = aEvent.getDeltaRelativeTo(frame.getCanvas().getLayer()); + moveTarget.translate(d.getWidth(), d.getHeight()); // 履歴に関係ない動作 + + // 確認表示 + System.out.println("target offset: " + moveTarget.getOffset().toString()); + System.out.println("target bounds: " + moveTarget.getBounds().toString()); + System.out.println("target bounds->origin: " + moveTarget.getBounds().getOrigin().toString()); } - } + } + } + + public void mouseReleased(final PInputEvent aEvent) { + if (pressEv == null) + return; + if (pressPN.getAttribute("nozoom") != null) + return;// nozoomタグがついていたら,ズームインしない(色付けボタン:FRPaletteのPPathなので) + if (dragCount < 3) { + if (pressEv.getButton() == MouseEvent.BUTTON3) { + // ポップアップメニュー + if (pressPN instanceof PCamera || pressPN instanceof PText) // Sheetのときは表示しない. + new PopupMenu_forMN(frame, pressEv, frame.getCanvas()); + } else if (pressEv.getButton() == MouseEvent.BUTTON1) { + // if (SimpleATN.theapp.zrh.selection == null){ + // frame.focus(); + // } + } + } + moveTarget = null; + pressPN = null; } } \ No newline at end of file diff --git a/src/main/java/cit/PureATN/MultiNote/MultiNote.java b/src/main/java/cit/PureATN/MultiNote/MultiNote.java index 923f1e9..34e2cad 100644 --- a/src/main/java/cit/PureATN/MultiNote/MultiNote.java +++ b/src/main/java/cit/PureATN/MultiNote/MultiNote.java @@ -1,6 +1,7 @@ package cit.PureATN.MultiNote; import java.awt.Color; +import java.awt.BasicStroke; import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; @@ -14,6 +15,7 @@ import org.josql.QueryParseException; import org.josql.QueryResults; import org.piccolo2d.PCanvas; +import org.piccolo2d.PLayer; import org.piccolo2d.PNode; import org.piccolo2d.nodes.PPath; @@ -55,12 +57,16 @@ setMousePenID(1); // 基準となる紙の輪郭線 - for(int i=1;i<10;i++){ + for (int i = 1; i < 10; i++) { PPath stjk = shitajikiNodes[i] = PPath.createRectangle(0, 0, 700, 990); // stjk.setPaint(Color.getHSBColor((float) (i / 11.0f), 0.1f, 1.0f)); stjk.setPaint(null); - stjk.setStrokePaint(Color.getHSBColor((float) (i / 11.0f), 0.8f, 0.8f)); - stjk.addAttribute("selectable", this); + stjk.setStrokePaint(Color.getHSBColor((float) (i / 11.0f), 0.2f, 1.0f)); + stjk.setStroke(new BasicStroke(10)); + // if (target.getAttribute("moveTarget")!=null){ + // moveTarget = (PNode) target.getAttribute("moveTarget"); + // } + stjk.addAttribute("moveTarget", stjk); getCanvas().getLayer().addChild(stjk); } @@ -84,7 +90,10 @@ ArrayList sss = PenUser.find(penidStr).strokes; for (ShortStroke s : sss) { s.setStrokePaint(c); - System.out.println(s.time); + System.out.println("ss.time "+s.time); + if (s.getParent() instanceof PLayer){ + shitajikiNodes[penid].addChild(s); // 親レイヤーから、下敷きに移動 + } } } repaint(); @@ -118,13 +127,13 @@ qr5 = q5.execute(ass); Map grpBys = qr5.getGroupByResults(); Iterator iter = grpBys.keySet().iterator(); - while(iter.hasNext()){ - List key = (List)iter.next(); + while (iter.hasNext()) { + List key = (List) iter.next(); List res = (List) grpBys.get(key); - System.out.println(key.toString()+" "+res.size()); + System.out.println(key.toString() + " " + res.size()); } // for (ShortStroke ss : (List) qr5.getResults()) { - // System.out.println(ss.penid); + // System.out.println(ss.penid); // } } catch (QueryExecutionException e) { e.printStackTrace(); diff --git a/src/main/java/cit/PureATN/Note.java b/src/main/java/cit/PureATN/Note.java index 08ce38c..a5bf9ba 100644 --- a/src/main/java/cit/PureATN/Note.java +++ b/src/main/java/cit/PureATN/Note.java @@ -5,8 +5,10 @@ import javax.swing.WindowConstants; +import org.piccolo2d.PCamera; import org.piccolo2d.PCanvas; import org.piccolo2d.PLayer; +import org.piccolo2d.PNode; import org.piccolo2d.event.PBasicInputEventHandler; import org.piccolo2d.event.PDragSequenceEventHandler; import org.piccolo2d.event.PInputEvent; @@ -88,39 +90,44 @@ public PBasicInputEventHandler createSquiggleEventHandler() { return new PDragSequenceEventHandler() { - protected ShortStroke squiggle; + PNode pressPN; public void startDrag(final PInputEvent e) { super.startDrag(e); + pressPN = e.getPickedNode(); + // System.out.println(pressPN.getClass().getName()); - String mousePenIDStr = "pen0" + mousePenID; - PenUser.press(mousePenIDStr, 1); + if (pressPN instanceof PCamera) { - final Point2D p = e.getPosition(); - // squiggle = new ShortStroke(); - // layer.addChild(squiggle); - // squiggle.startDrag_on_draw(p.getX(), p.getY()); - PenUser.add(mousePenIDStr, (int) p.getX(), (int) p.getY()); - // // squiggle.setStroke(new BasicStroke((float) (3 / - // // e.getCamera().getViewScale()))); - // layer.repaint(); + String mousePenIDStr = "pen0" + mousePenID; + PenUser.press(mousePenIDStr, 1); + + final Point2D p = e.getPosition(); + // squiggle = new ShortStroke(); + // layer.addChild(squiggle); + // squiggle.startDrag_on_draw(p.getX(), p.getY()); + PenUser.add(mousePenIDStr, (int) p.getX(), (int) p.getY()); + // // squiggle.setStroke(new BasicStroke((float) (3 / + // // e.getCamera().getViewScale()))); + // layer.repaint(); + } else { + } } public void drag(final PInputEvent e) { super.drag(e); - updateSquiggle(e); + if (pressPN instanceof PCamera) + updateSquiggle(e); } public void endDrag(final PInputEvent e) { super.endDrag(e); - updateSquiggle(e); - String mousePenIDStr = "pen0" + mousePenID; - PenUser.press(mousePenIDStr, 0); + if (pressPN instanceof PCamera) { + updateSquiggle(e); - // squiggle.endDrag_on_draw(); - // squiggle.ink = layer; - // squiggle.play(10); - // squiggle = null; + String mousePenIDStr = "pen0" + mousePenID; + PenUser.press(mousePenIDStr, 0); + } } public void updateSquiggle(final PInputEvent aEvent) {