В значительной степени, как говорится в названии. Мне нужно, чтобы компонент GWT DatePicker использовал понедельник в качестве первого дня недели. В настоящее время метками дня являются SMTWTFS
, я хочу, чтобы они были MTWTFSS
. Есть ли способ сделать это?
Если автоматическое определение языкового стандарта не соответствует вашим потребностям (и, вероятно, редактирование firstDayOfTheWeek
в com.google.gwt.i18n.client.constants.DateTimeConstantsImpl_xy.properties
выиграет ») t быть либо), единственный вариант - изменить реализацию DatePicker:
Extend DatePicker, написать новый конструктор, который вызывает защищенный DatePicker (MonthSelector monthSelector, представление CalendarView, модель CalendarModel)
с ваш собственный взгляд и модель.
CalendarModel может быть расширен, поэтому вам придется переопределить getCurrentFirstDayOfFirstWeek
.
DefaultCalendarView
является окончательным, поэтому вам придется скопировать его в новый класс и изменить его метод setup
.
Это довольно беспорядочно, и это небольшой недостаток GWT - он интенсивно использует синглтоны вместо внедрения зависимостей ...
Если вы посмотрите на исходный код DefaultCalendarView (который может быть предоставлен в защищенном конструкторе DatePicker ), он использует CalendarUtil GetStartingDayOfWeek , чтобы установить начальный день по умолчанию. CalendarUtil
получает дату начала из DateTimeConstants
. Итак, как сказал Джу, это зависит от вашего региона.
Вопрос в том, как изменить значение локали по умолчанию. Если честно, я не знаю, как это сделать и возможно ли это вообще. Очевидно, это было бы самым простым решением.
Однако, если это невозможно, вы можете создать класс, расширяющий DatePicker
. Затем создайте другой класс, который расширяет DefaultCalendarView
и переопределяет метод setup
. Скопируйте тот же источник метода, но измените дату начала на понедельник вместо использования даты начала из CalendarUtil
. Затем создайте свой собственный DatePicker
, используя свой собственный DefaultCalendarView
. Это взлом, но он должен работать.