docs: public final void bind(DateControl otherControl, boolean bindDate) {
          requireNonNull(otherControl);
  
          boundDateControls.add(otherControl);
  
          // bind maps
          Bindings.bindContentBidirectional(otherControl.getCalendarVisibilityMap(), getCalendarVisibilityMap());
  
          // bind lists
          Bindings.bindContentBidirectional(otherControl.getCalendarSources(), getCalendarSources());
          Bindings.bindContentBidirectional(otherControl.getSelections(), getSelections());
          Bindings.bindContentBidirectional(otherControl.getWeekendDays(), getWeekendDays());
  
          // bind properties
          Bindings.bindBidirectional(otherControl.suspendUpdatesProperty(), suspendUpdatesProperty());
          Bindings.bindBidirectional(otherControl.entryFactoryProperty(), entryFactoryProperty());
          Bindings.bindBidirectional(otherControl.defaultCalendarProviderProperty(), defaultCalendarProviderProperty());
          Bindings.bindBidirectional(otherControl.virtualGridProperty(), virtualGridProperty());
          Bindings.bindBidirectional(otherControl.draggedEntryProperty(), draggedEntryProperty());
          Bindings.bindBidirectional(otherControl.requestedTimeProperty(), requestedTimeProperty());
  
          Bindings.bindBidirectional(otherControl.selectionModeProperty(), selectionModeProperty());
          Bindings.bindBidirectional(otherControl.selectionModeProperty(), selectionModeProperty());
          Bindings.bindBidirectional(otherControl.weekFieldsProperty(), weekFieldsProperty());
          Bindings.bindBidirectional(otherControl.layoutProperty(), layoutProperty());
  
          Bindings.bindBidirectional(otherControl.startTimeProperty(), startTimeProperty());
          Bindings.bindBidirectional(otherControl.endTimeProperty(), endTimeProperty());
          Bindings.bindBidirectional(otherControl.timeProperty(), timeProperty());
          Bindings.bindBidirectional(otherControl.usagePolicyProperty(), usagePolicyProperty());
  
          if (bindDate) {
              Bindings.bindBidirectional(otherControl.dateProperty(), dateProperty());
          }
  
          Bindings.bindBidirectional(otherControl.todayProperty(), todayProperty());
          Bindings.bindBidirectional(otherControl.zoneIdProperty(), zoneIdProperty());
  
          // edit callbacks
          Bindings.bindBidirectional(otherControl.entryDetailsCallbackProperty(), entryDetailsCallbackProperty());
          Bindings.bindBidirectional(otherControl.dateDetailsCallbackProperty(), dateDetailsCallbackProperty());
          Bindings.bindBidirectional(otherControl.contextMenuCallbackProperty(), contextMenuCallbackProperty());
          Bindings.bindBidirectional(otherControl.entryContextMenuCallbackProperty(), entryContextMenuCallbackProperty());
          Bindings.bindBidirectional(otherControl.calendarSourceFactoryProperty(), calendarSourceFactoryProperty());
          Bindings.bindBidirectional(otherControl.entryDetailsPopOverContentCallbackProperty(), entryDetailsPopOverContentCallbackProperty());
          Bindings.bindBidirectional(otherControl.entryEditPolicyProperty(), entryEditPolicyProperty());
      }