code: @Override
    public void setupValueChangedListeners() {
      super.setupValueChangedListeners();
  
      field.itemsProperty().addListener((observable, oldValue, newValue) -> {
        createCheckboxes();
        setupCheckboxBindings();
        setupCheckboxEventHandlers();
      });
  
      field.selectionProperty().addListener((observable, oldValue, newValue) -> {
        for (int i = 0; i < checkboxes.size(); i++) {
          checkboxes.get(i).setSelected(field.getSelection().contains(field.getItems().get(i)));
        }
      });
  
      field.errorMessagesProperty().addListener((observable, oldValue, newValue) ->
          toggleTooltip(node, checkboxes.get(checkboxes.size() - 1))
      );
      field.tooltipProperty().addListener((observable, oldValue, newValue) ->
          toggleTooltip(node, checkboxes.get(checkboxes.size() - 1))
      );
  
      for (int i = 0; i < checkboxes.size(); i++) {
        checkboxes.get(i).focusedProperty().addListener((observable, oldValue, newValue) ->
            toggleTooltip(node, checkboxes.get(checkboxes.size() - 1))
        );
      }
    }
docs: {@inheritDoc}