@Override
  public void setValue(Object value) {
    Number newVal = (Number) value;
    Number oldVal = (Number) getValue();
    if (oldVal.longValue() != newVal.longValue()) {

      int diff = newVal.intValue() - oldVal.intValue();
      int sign = diff > 0 ? 1 : -1;
      if (diff < 0)
        diff = -diff;
      Date oldDate = calendar.getTime();

      for (int i = 0; i < diff; i++)
        calendar.add(Calendar.YEAR, sign);

      changeSupport.firePropertyChange(PROPERTY_NAME_DATE, oldDate,
          getDate());
      fireStateChanged();
    }
  }
@Override
  public void setValue(Object value)