protected void installDefaults() {
    super.installDefaults();

    scrollBarWidth = UIManager.getInt("ScrollBar.width");
    incrGap = UIManager.getInt("ScrollBar.incrementButtonGap");
    decrGap = UIManager.getInt("ScrollBar.decrementButtonGap");

    // TODO this can be removed when incrGap/decrGap become protected
    // handle scaling for sizeVarients for special case components. The
    // key "JComponent.sizeVariant" scales for large/small/mini
    // components are based on Apples LAF
    String scaleKey = (String) scrollbar.getClientProperty("JComponent.sizeVariant");
    if (scaleKey != null) {
      if ("large".equals(scaleKey)) {
        scrollBarWidth *= 1.15;
        incrGap *= 1.15;
        decrGap *= 1.15;
      } else if ("small".equals(scaleKey)) {
        scrollBarWidth *= 0.857;
        incrGap *= 0.857;
        decrGap *= 0.857;
      } else if ("mini".equals(scaleKey)) {
        scrollBarWidth *= 0.714;
        incrGap *= 0.714;
        decrGap *= 0.714;
      }
    }
  }
 /** Installs the defaults. */
 protected void installDefaults() {
   // need to initialise isFreeStanding before calling the super class,
   // so that the value is set when createIncreaseButton() and
   // createDecreaseButton() are called (unless there is somewhere earlier
   // that we can do this).
   Boolean prop = (Boolean) scrollbar.getClientProperty(FREE_STANDING_PROP);
   isFreeStanding = prop == null ? true : prop.booleanValue();
   scrollBarShadowColor = UIManager.getColor("ScrollBar.shadow");
   super.installDefaults();
 }