public static void onDrag(Component comp, final P1<Point> newLocationF, final F0<Point> currentLocationF) {
		final Point[] startP = {null};
		onDrag(comp, new P1<Point>() {public void e(Point initPoint) {
			startP[0] = currentLocationF.e();
		}}, new P2<Point, Point>() {public void e(Point p, Point initPoint) {
			newLocationF.e(new Point(
					startP[0].x + p.x - initPoint.x,
					startP[0].y + p.y - initPoint.y
					));
		}});
	}