QuarterPickerModel constructor

QuarterPickerModel({
  1. DateTime? currentTime,
  2. DateTime? maxTime,
  3. DateTime? minTime,
  4. List<String>? formats,
  5. List<bool>? labels,
  6. List<int>? weights,
  7. List<String>? dividers,
})

Implementation

QuarterPickerModel({
  DateTime? currentTime,
  DateTime? maxTime,
  DateTime? minTime,
  List<String>? formats,
  List<bool>? labels,
  List<int>? weights,
  List<String>? dividers,
})  : assert(weights == null || weights.length == 2),
      assert(dividers == null || dividers.length == 1),
      assert(formats == null || formats.length == 2),
      assert(labels == null || labels.length == 1) {
  this.weights = weights ?? [1, 1];
  this.dividers = dividers ?? [''];
  // 年label
  this.labels = labels ?? [true];
  this.formats = formats ?? [yyyy, QQQQ];

  this.maxTime = maxTime ?? DateTime(2049, 12, 31);
  this.minTime = minTime ?? DateTime(1970, 1, 1);

  _checkTime(currentTime ??= DateTime.now());

  _fillYearList();
  _fillQuarterList();

  int minQuarter = getQuarter(_minMonthOfCurrentYear());
  int curQuarter = getQuarter(this.currentTime.month);

  firstIndex = this.currentTime.year - this.minTime.year;
  secondIndex = curQuarter - minQuarter;
  thirdIndex = 0;
}