Wenn die automatische Gebietsschemaerkennung nicht Ihren Anforderungen entspricht (und wahrscheinlich auch die firstDayOfTheWeek
in com.google.gwt.i18n.client.constants.DateTimeConstantsImpl_xy.properties
nicht bearbeiten wird), wäre die einzige Option, die Implementierung von DatePicker zu ändern:
Erweitern Sie DatePicker, schreiben Sie einen neuen Konstruktor, der den geschützten DatePicker(MonthSelector monthSelector, CalendarView view, CalendarModel model)
-Konstruktor mit Ihrer eigenen Ansicht und Ihrem eigenen Modell aufruft.
Das CalendarModel kann erweitert werden, sodass Sie getCurrentFirstDayOfFirstWeek
überschreiben müssen.
Das DefaultCalendarView
ist endgültig, also müßten Sie es in eine neue Klasse kopieren und seine setup
-Methode ändern.
Es ist ziemlich chaotisch, und das ist der kleine Nachteil von GWT - es benutzt Singletons statt Dependency Injection ...
Wenn Sie sich den Quellcode von DefaultCalendarView (kann im geschützten Konstruktor eines DatePicker ) verwendet es CalendarUtil getStartingDayOfWeek, um den Standardanfangstag festzulegen. CalendarUtil
erhält das Startdatum von DateTimeConstants
. Also, wie gesagt, es wird von Ihrem Standort bestimmt.
Die Frage ist, wie überschreiben Sie den Standardgebietsschemawert. Um ehrlich zu sein, ich weiß nicht wie ich das machen soll oder ob es überhaupt möglich ist. Das wäre offensichtlich die einfachste Lösung.
Wenn das jedoch nicht möglich ist, können Sie eine Klasse erstellen, die DatePicker
erweitert. Erstellen Sie dann eine andere Klasse, die DefaultCalendarView
erweitert und die Methode setup
überschreibt. Kopieren Sie die gleiche Methodenquelle, aber ändern Sie das Startdatum auf Montag, anstatt das Startdatum von CalendarUtil
zu verwenden. Erstellen Sie dann Ihre benutzerdefinierte DatePicker
mit Ihrer benutzerdefinierten DefaultCalendarView
. Es ist ein Hack, aber es sollte funktionieren.
Tags und Links gwt date datepicker