@Override
 public boolean processMouseDown(MouseDownEvent event) {
   JavaScriptObject target = event.getNativeEvent().getEventTarget();
   m = g.getScreenCTM().inverse();
   delta = getCoordinates(event, m);
   float x = posHandle.getX().getBaseVal().getValue();
   float y = posHandle.getY().getBaseVal().getValue();
   float width = posHandle.getWidth().getBaseVal().getValue();
   float height = posHandle.getHeight().getBaseVal().getValue();
   OMSVGPoint p = svg.createSVGPoint();
   if (target == posHandle.getElement()) {
     mode = Mode.POS;
     p.setX(x);
     p.setY(y);
   } else if (target == topLeftHandle.getElement()) {
     p.setX(x);
     p.setY(y);
     mode = Mode.TOP_LEFT;
   } else if (target == bottomRightHandle.getElement()) {
     p.setX(x + width);
     p.setY(y + height);
     mode = Mode.BOTTOM_RIGHT;
   }
   if (mode.consumeEvent()) {
     delta.substract(p);
     event.preventDefault();
     event.stopPropagation();
   }
   return true;
 }