package cit.PureATN.MultiNote; import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import org.piccolo2d.PCamera; import org.piccolo2d.PNode; 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; public MouseEvent_onMN(Note _ff) { frame = _ff; } public void mousePressed(final PInputEvent aEvent) { 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++; 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; } }