attach method

void attach(
  1. Object provider
)

Attaches a provider to this controller.

Automatically listens to provider changes so registered listeners on this controller receive notifications when the user picks dates or changes months.

Internal use only.

Implementation

void attach(Object provider) {
  if (provider is MonthlyCalendarTableProvider) {
    if (_monthlyProvider == provider) return;
    _monthlyProvider?.removeListener(_onProviderNotify);
    _monthlyProvider = provider;
    _monthlyProvider?.addListener(_onProviderNotify);
    if (_displayedMonth != null) {
      _monthlyProvider?.setMonth(_displayedMonth!);
    }
  } else if (provider is WeeklyCalendarTableProvider) {
    if (_weeklyProvider == provider) return;
    _weeklyProvider?.removeListener(_onProviderNotify);
    _weeklyProvider = provider;
    _weeklyProvider?.addListener(_onProviderNotify);
    if (_displayedMonth != null) {
      _weeklyProvider?.setSelectedMonth(_displayedMonth!);
    }
  } else if (provider is HorizontalCalendarProvider) {
    if (_horizontalProvider == provider) return;
    _horizontalProvider?.removeListener(_onProviderNotify);
    _horizontalProvider = provider;
    _horizontalProvider?.addListener(_onProviderNotify);
    if (_displayedMonth != null) {
      _horizontalProvider?.setSelectedMonth(_displayedMonth!);
    }
  }
}