code: function(layer, options) {
          OpenLayers.Control.prototype.initialize.apply(this, [options]);
          this.layer = layer;
          this.handlers = {
              drag: new OpenLayers.Handler.Drag(
                  this, OpenLayers.Util.extend({
                      down: this.downFeature,
                      move: this.moveFeature,
                      up: this.upFeature,
                      out: this.cancel,
                      done: this.doneDragging
                  }, this.dragCallbacks), {
                      documentDrag: this.documentDrag
                  }
              ),
              feature: new OpenLayers.Handler.Feature(
                  this, this.layer, OpenLayers.Util.extend({
                      // 'click' and 'clickout' callback are for the mobile
                      // support: no 'over' or 'out' in touch based browsers.
                      click: this.clickFeature,
                      clickout: this.clickoutFeature,
                      over: this.overFeature,
                      out: this.outFeature
                  }, this.featureCallbacks),
                  {geometryTypes: this.geometryTypes}
              )
          };
      }
docs: Constructor: OpenLayers.Control.DragFeature
  Create a new control to drag features.
  
  Parameters:
  layer - {<OpenLayers.Layer.Vector>} The layer containing features to be
  dragged.
  options - {Object} Optional object whose properties will be set on the
  control.