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;
}
}