EN · DE · RU · FR · ES

#2777: ButtonText.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/ButtonText.java Java DTO (метки кнопок FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/ButtonText.java 115 строк · 61 код · 33 комментария · 21 пустая
Простой объект передачи данных, моделирующий конфигурацию меток кнопок для JavaScript-виджета FullCalendar. Содержит строковые свойства для каждой кнопки навигации календаря: предыдущий месяц, следующий месяц, предыдущий год, следующий год, сегодня, месячный вид, недельный вид и дневной вид. Реализует шаблон «текучий строитель» — каждый сеттер возвращает this — что позволяет компоновать конфигурацию календаря в одной строке. Сериализуется в JSON с помощью Jackson и встраивается в JavaScript-код инициализации FullCalendar.

Архитектура

Шаблон проектирования: текучий DTO

Все сеттеры возвращают ButtonText (не void), что позволяет использовать цепочки вызовов: new ButtonText().setPrev("Назад").setNext("Вперёд").setToday("Сегодня"). Это стандартный шаблон для всех классов модели FullCalendar (Config, Event, EventSource, Header) — все используют текучие сеттеры для компактной конфигурации в Java-коде.

Сериализация

Jackson сериализует этот объект в JSON-объект вида {"prev":"Prev","next":"Next","prevYear":"Prev Year",...}. Включаются только не-null поля (поведение Jackson по умолчанию), поэтому если текст кнопки не настроен, JavaScript-клиент FullCalendar использует встроенные значения по умолчанию для этой кнопки.

Восемь позиций кнопок

Заголовок FullCalendar может отображать кнопки в трёх секциях (левая, центр, правая) с любой комбинацией команд навигации. Каждая команда может иметь собственный текст: prev/next для навигации по месяцам, prevYear/nextYear для навигации по годам, today для кнопки «перейти к сегодняшнему дню» и month/week/day для кнопок переключения видов.

История Git

КоммитЧто изменилось
868d6abb7ceb63e8a1Шесть ежегодных обновлений заголовков авторских прав. Список полей DTO и текучий API остались без изменений — модель меток кнопок FullCalendar точно отражает все позиции кнопок, поддерживаемые JavaScript-библиотекой, и дополнительные кнопки не потребовались.