if( path==null ){
path=factory.create(1,1);
handler.getBehaviours().add(new Creator());
handler.lock(this);
}
MouseTracker tracker=handler.getMouseTracker();
int translationX;
int translationY;
if (factory.useMiddleAsOrigin())
{
translationX=tracker.getDragStarted().getX();
translationY=tracker.getDragStarted().getY();
}
else
{
translationX=Math.min(tracker.getDragStarted().getX(), e.x);
translationY=Math.min(tracker.getDragStarted().getY(), e.y);
}
int scaleX=Math.abs(tracker.getDragStarted().getX()-e.x);
int scaleY=Math.abs(tracker.getDragStarted().getY()-e.y);
//force square/circle if shift is activated
if (e.isShiftDown())
{
if (scaleX > scaleY)
{