_bindEventOnShape(shapeObj) {
    const self = this;
    const canvas = this.getCanvas();

    shapeObj.on({
      added() {
        self._shapeObj = this;
        resizeHelper.setOrigins(self._shapeObj);
      },
      selected() {
        self._isSelected = true;
        self._shapeObj = this;
        canvas.uniformScaling = true;
        canvas.defaultCursor = 'default';
        resizeHelper.setOrigins(self._shapeObj);
      },
      deselected() {
        self._isSelected = false;
        self._shapeObj = null;
        canvas.defaultCursor = 'crosshair';
        canvas.uniformScaling = false;
      },
      modified() {
        const currentObj = self._shapeObj;

        resizeHelper.adjustOriginToCenter(currentObj);
        resizeHelper.setOrigins(currentObj);
      },
      modifiedInGroup(activeSelection) {
        self._fillFilterRePositionInGroupSelection(shapeObj, activeSelection);
      },
      moving() {
        self._resetPositionFillFilter(this);
      },
      rotating() {
        self._resetPositionFillFilter(this);
      },
      scaling(fEvent) {
        const pointer = canvas.getPointer(fEvent.e);
        const currentObj = self._shapeObj;

        canvas.setCursor('crosshair');
        resizeHelper.resize(currentObj, pointer, true);

        self._resetPositionFillFilter(this);
      },
    });
  }
Bind fabric events on the creating shape object
@param {fabric.Object} shapeObj - Shape object
@private