docs: @Override
      public ObservableList<Item> getPropertySheetItems() {
          ObservableList<Item> items = super.getPropertySheetItems();
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(dateProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setDate((LocalDate) value);
              }
  
              @Override
              public Object getValue() {
                  return getDate();
              }
  
              @Override
              public Class<?> getType() {
                  return LocalDate.class;
              }
  
              @Override
              public String getName() {
                  return "Date"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Date"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(layoutProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setLayout((Layout) value);
              }
  
              @Override
              public Object getValue() {
                  return getLayout();
              }
  
              @Override
              public Class<?> getType() {
                  return Layout.class;
              }
  
              @Override
              public String getName() {
                  return "Layout"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Layout"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(selectionModeProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setSelectionMode((SelectionMode) value);
              }
  
              @Override
              public Object getValue() {
                  return getSelectionMode();
              }
  
              @Override
              public Class<?> getType() {
                  return SelectionMode.class;
              }
  
              @Override
              public String getName() {
                  return "Selection Mode"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Selection Mode"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(todayProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setToday((LocalDate) value);
              }
  
              @Override
              public Object getValue() {
                  return getToday();
              }
  
              @Override
              public Class<?> getType() {
                  return LocalDate.class;
              }
  
              @Override
              public String getName() {
                  return "Today"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Today"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(showTodayProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setShowToday((boolean) value);
              }
  
              @Override
              public Object getValue() {
                  return isShowToday();
              }
  
              @Override
              public Class<?> getType() {
                  return Boolean.class;
              }
  
              @Override
              public String getName() {
                  return "Show Today"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Highlight today"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(zoneIdProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setZoneId((ZoneId) value);
              }
  
              @Override
              public Object getValue() {
                  return getZoneId();
              }
  
              @Override
              public Class<?> getType() {
                  return ZoneId.class;
              }
  
              @Override
              public String getName() {
                  return "Timezone"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Timezone"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(weekFieldsProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setWeekFields((WeekFields) value);
              }
  
              @Override
              public Object getValue() {
                  return getWeekFields();
              }
  
              @Override
              public Class<?> getType() {
                  return WeekFields.class;
              }
  
              @Override
              public String getName() {
                  return "Week Fields"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Week Fields (calendar standard)"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(timeProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setTime((LocalTime) value);
              }
  
              @Override
              public Object getValue() {
                  return getTime();
              }
  
              @Override
              public Class<?> getType() {
                  return LocalTime.class;
              }
  
              @Override
              public String getName() {
                  return "Time"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Time"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(startTimeProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setStartTime((LocalTime) value);
              }
  
              @Override
              public Object getValue() {
                  return getStartTime();
              }
  
              @Override
              public Class<?> getType() {
                  return LocalTime.class;
              }
  
              @Override
              public String getName() {
                  return "Start Time"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "The first visible time at the top."; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(endTimeProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setEndTime((LocalTime) value);
              }
  
              @Override
              public Object getValue() {
                  return getEndTime();
              }
  
              @Override
              public Class<?> getType() {
                  return LocalTime.class;
              }
  
              @Override
              public String getName() {
                  return "End Time"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "The last visible time at the bottom."; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
          items.add(new Item() {
  
              @Override
              public Optional<ObservableValue<?>> getObservableValue() {
                  return Optional.of(enableHyperlinksProperty());
              }
  
              @Override
              public void setValue(Object value) {
                  setEnableHyperlinks((boolean) value);
              }
  
              @Override
              public Object getValue() {
                  return isEnableHyperlinks();
              }
  
              @Override
              public Class<?> getType() {
                  return Boolean.class;
              }
  
              @Override
              public String getName() {
                  return "Hyperlinks"; //$NON-NLS-1$
              }
  
              @Override
              public String getDescription() {
                  return "Hyperlinks enabled / disabled"; //$NON-NLS-1$
              }
  
              @Override
              public String getCategory() {
                  return DATE_CONTROL_CATEGORY;
              }
          });
  
  
          return items;
      }