code: function Line(options) {
  
      var self = this;
      this.manager = options.manager;
      this.paper = options.paper;
  
      if (options.id) {
          this._id = options.id;
      } else {
          this._id = this.manager.getRandomId();
      }
      this._x1 = options.x1;
      this._y1 = options.y1;
      this._x2 = options.x2;
      this._y2 = options.y2;
      this._strokeColor = options.strokeColor;
      this._strokeWidth = options.strokeWidth || 2;
      this.handle_wh = 6;
      this._selected = false;
      this._zoomFraction = 1;
      if (options.zoom) {
          this._zoomFraction = options.zoom / 100;
      }
  
      this.element = this.paper.path();
      this.element.attr({'cursor': 'pointer'});
  
      // Drag handling of line
      if (this.manager.canEdit) {
          this.element.drag(
              function(dx, dy) {
                  // DRAG, update location and redraw
                  dx = dx / self._zoomFraction;
                  dy = dy / self._zoomFraction;
  
                  var offsetX = dx - this.prevX;
                  var offsetY = dy - this.prevY;
                  this.prevX = dx;
                  this.prevY = dy;
  
                  // Manager handles move and redraw
                  self.manager.moveSelectedShapes(offsetX, offsetY, true);
                  return false;
              },
              function() {
                  // START drag: note the location of all points
                  self._handleMousedown();
                  this.prevX = 0;
                  this.prevY = 0;
                  return false;
              },
              function() {
                  // STOP
                  // notify manager if line has moved
                  if (this.prevX !== 0 || this.prevY !== 0) {
                      self.manager.notifySelectedShapesChanged();
                  }
                  return false;
              }
          );
      }
  
      this.createHandles();
  
      this.drawShape();
  }
docs: /* globals Raphael: false /* globals console: false