Newer
Older
PureATN_M / src / main / java / cit / PureATN / SquiggleEventHandler.java
package cit.PureATN;

import java.awt.geom.Point2D;

import org.piccolo2d.PCamera;
import org.piccolo2d.PNode;
import org.piccolo2d.event.PDragSequenceEventHandler;
import org.piccolo2d.event.PInputEvent;

public class SquiggleEventHandler extends PDragSequenceEventHandler {
    protected PNode pressPN;
    protected PInputEvent startEv;
    protected PInputEvent lastEv;
    Note note;

    public SquiggleEventHandler(Note note) {
        this.note = note;
    }

    public String getPenIDStr() {
        String mousePenIDStr = "pen0" + note.getMousePenID();
        return mousePenIDStr;
    }

    public void startDrag(final PInputEvent e) {
        super.startDrag(e);
        startEv = lastEv = e;
        pressPN = e.getPickedNode();
        // System.out.println(pressPN.getClass().getName());

        if (pressPN instanceof PCamera) {

            String mousePenIDStr = getPenIDStr();
            PenUser.press(mousePenIDStr, 1, false);

            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);
        if (pressPN instanceof PCamera)
            updateSquiggle(e);
    }

    public void endDrag(final PInputEvent e) {
        super.endDrag(e);
        if (pressPN instanceof PCamera) {
            updateSquiggle(e);

            String mousePenIDStr = getPenIDStr();
            PenUser.press(mousePenIDStr, 0, false);
        }
        startEv = null;
    }

    public void updateSquiggle(final PInputEvent aEvent) {
        lastEv = aEvent;
        String mousePenIDStr = getPenIDStr();
        final Point2D p = aEvent.getPosition();
        PenUser.add(mousePenIDStr, (int) p.getX(), (int) p.getY());

    }

}