Wie kann GWT DatePicker Montag als ersten Tag der Woche verwenden?

8

So ziemlich, was der Titel sagt. Ich muss die GWT DatePicker-Komponente Montag als den ersten Tag der Woche verwenden. Momentan sind die Tag-Labels S M T W T F S , ich möchte, dass es M T W T F S S ist. Irgendeine Möglichkeit, es zu erreichen?

    
Strelok 18.08.2010, 01:09
quelle

3 Antworten

5

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 ...

    
Chris Lercher 18.08.2010, 15:34
quelle
3

Keine Unterklasse für den DatePicker. Bitte lesen Sie die Google Gwt-Dokumentation, indem Sie auf die URL klicken. Ссылка

    
macmurali 04.11.2011 16:44
quelle
2

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.

    
Arthur Maltson 18.08.2010 16:58
quelle

Tags und Links