code: @Override
      public ThaiSolarCalendar move(
          CalendarControl<ThaiSolarCalendar> control,
          int direction
      ) {
          ThaiSolarCalendar date = control.pageDateProperty().getValue();
          ThaiSolarCalendar result;
  
          switch (control.viewIndexProperty().get()) {
              case NavigationBar.MONTH_VIEW:
                  result = date.plus(direction, CalendarUnit.MONTHS);
                  break;
              case NavigationBar.YEAR_VIEW:
                  // don't miss 2483 BE under certain circumstances
                  if (date.getMonth().getValue() <= 3) {
                      if (date.getYear() == 2482 && direction > 0) {
                          date = date.with(DAY_OF_YEAR, 1);
                      } else if (date.getYear() == 2484 && direction < 0) {
                          date = date.with(DAY_OF_YEAR.maximized());
                      }
                  }
                  result = date.plus(direction, CalendarUnit.YEARS);
                  break;
              case NavigationBar.BIRD_VIEW:
                  result = date.plus(Math.multiplyExact(direction, 10), CalendarUnit.YEARS);
                  break;
              default:
                  throw new IllegalStateException("Invalid view: " + control.viewIndexProperty().getValue());
          }
  
          return result;
      }
docs: ~ Methoden ----------------------------------------------------------