docs: function (cfg, context, lineNumber) {
          this.$BaseWidget.constructor.apply(this, arguments);
  
          this._cfgOk = ariaCoreJsonValidator.validateCfg("aria.touch.widgets.SliderCfgBeans.SliderCfg", cfg);
          if (!this._cfgOk) {
              return;
          }
  
          /**
           * Value of the widget (must be between 0 and 1)
           * @type Number
           * @protected
           */
          this._value = 0;
  
          this._readValue();
          /**
           * Id generated for the button DOM element of the slider.
           * @type String
           * @protected
           */
          this._domId = cfg.id ? context.$getId(cfg.id) : this._createDynamicId();
          /**
           * Id generated for the highlight element.
           * @type String
           * @protected
           */
          this._highlightDomId = this._domId + "_highlight";
          /**
           * Id generated for the slider container element.
           * @type String
           * @protected
           */
          this._parentDomId = this._domId + "_parent";
          /**
           * Id generated for the slider switch on container element.
           * @type String
           * @protected
           */
          this._onSwitchId = this._domId + "_on";
          /**
           * Id generated for the slider switch off container element.
           * @type String
           * @protected
           */
          this._offSwitchId = this._domId + "_off";
          /**
           * Flag used for switching between switch and slider.
           * @type Boolean
           * @protected
           */
          this._isSwitch = cfg.toggleSwitch;
  
          /**
           * When using the widget as switch, this is the value above which all value are converted to 1
           * @type {Float}
           * @protected
           */
          this._switchThreshold = cfg.switchThreshold != null ? Math.min(1, Math.max(0, cfg.switchThreshold)) : 0.5;
  
          /**
           * Label for the on side of the switch.
           * @type String
           * @protected
           */
          this._onLabel = cfg.onLabel || "ON";
  
          /**
           * Label for the off side of the switch.
           * @type String
           * @protected
           */
          this._offLabel = cfg.offLabel || "OFF";
  
          /**
           * Reference to the on state DOM element of the slider.
           * @type HTMLElement
           * @protected
           */
          this._onContainer = null;
          /**
           * Reference to the off state DOM element of the slider.
           * @type HTMLElement
           * @protected
           */
          this._offContainer = null;
  
          /**
           * Reference to the button DOM element of the slider.
           * @type HTMLElement
           * @protected
           */
          this._slider = null;
          /**
           * Reference to the highlight DOM element of the slider.
           * @type HTMLElement
           * @protected
           */
          this._highlight = null;
          /**
           * Reference to the Container DOM element of the slider.
           * @type HTMLElement
           * @protected
           */
          this._sliderContainer = null;
          /**
           * Reference to the Width of the Thumb.
           * @type Number
           * @protected
           */
          this._sliderWidth = null;
          /**
           * Reference to the Dimension of the Slider.
           * @type {aria.utils.DomBeans:Geometry}
           * @protected
           */
          this._sliderDimension = null;
  
          /**
           * Width of the rail in which thumb travels.
           * @type {Number
           * @protected
           */
          this._railWidth = null;
  
          /**
           * Value of the page/clientX property of the touch event when the user started moving the slider. It is then
           * updated so that it is always the position of the touch for which there is no change of the position of the
           * slider.
           * @type Number
           * @protected
           */
          this._savedX = null;
  
          /**
           * Initial position of the element being dragged
           * @type {Number}
           * @protected
           */
          this._initialDrag = null;
  
          /**
           * ID used for delegating events
           * @type {String}
           */
          this._delegateId = null;
  
          var binding = this._cfg.bind ? this._cfg.bind.value : null;
          this._binding = binding;
          if (binding) {
              this._bindingCallback = {
                  fn : this._notifyDataChange,
                  scope : this,
                  args : true
              };
              ariaUtilsJson.addListener(binding.inside, binding.to, this._bindingCallback, false);
          }
          /**
           * Drag instances associated to the thumb
           * @type {String} of aria.utils.dragdrop.Drag
           */
          this._draggable = null;
      }