nodes property

List<Node> get nodes

Implementation

List<Node> get nodes {
  if (_nodes.isNotEmpty) {
    return _nodes;
  }
  Offset initialOffset = const Offset(0, 0);
  Size size = Size(slotWidth, slotHeight);
  final unselectedPaint = Paint()
    ..style = PaintingStyle.fill
    ..color = selectedColor;
  final selectedPaint = Paint()
    ..style = PaintingStyle.fill
    ..color = unselectedColor;
  int numberOfBoxes = (24 * 60 / intervalInMinutes).round();
  double currentGap = 0;
  for (int i = 0; i < numberOfBoxes; i++) {
    String startTime =
        '${(i / (60 / intervalInMinutes)).floor()}:${(i == 0 || i * intervalInMinutes == 60) ? '00' : intervalInMinutes}';
    String endTime =
        '${((i + 1) / (60 / intervalInMinutes)).floor()}:${((i + 1) * intervalInMinutes == 60) ? '00' : intervalInMinutes}';
    TimeRange slotTime = TimeRange(
        startSeconds + (i * intervalInMinutes * 60),
        startSeconds + ((i + 1) * intervalInMinutes * 60));
    _nodes.add(Node(
        Rect.fromLTWH(initialOffset.dx + (i * size.width) + currentGap,
            initialOffset.dy, size.width, size.height),
        slotTime,
        startTime,
        endTime,
        isSelected(slotTime),
        unselectedPaint,
        selectedPaint));

    if (displayVerticalDividers &&
        (i + 1) % numberOfSlotsBeforeADivider == 0 &&
        i != 0 &&
        i < numberOfBoxes - 1) {
      currentGap += gapToLeaveForDivider;
    } else {
      currentGap += gapX;
    }
  }
  return _nodes;
}