code: public void onGeometryEditStart(GeometryEditStartEvent event) {
  		isBusyEditing = true;
  
  		// Initialize controllers and painters:
  		previousController = mapWidget.getController();
  		mapWidget.setController(baseController);
  
  		if (zoomOnStart) {
  			// TODO Zoom darnit...
  		}
  		if (isBusyEditing && isSnapOnDrag()) {
  			Bbox bounds = mapWidget.getMapModel().getMapView().getBounds();
  			snappingService.update(new org.geomajas.geometry.Bbox(bounds.getX(), bounds.getY(), bounds.getWidth(),
  					bounds.getHeight()));
  		}
  	}
docs: GeometryEditWorkflowHandler implementation: