2010-08-18 7 views
8

꽤 많이, 제목이 말하는 것. GWT DatePicker 구성 요소를 월요일의 첫 번째 요일로 사용하도록 지정해야합니다. 현재 하루 레이블은 S M T W T F S입니다. M T W T F S S이 되길 원합니다. 그것을 달성하는 어떤 방법? 자동 로케일 감지가 귀하의 요구에 맞지 않는 경우월요일을 첫 번째 요일로 사용하는 GWT DatePicker를 만드는 방법은 무엇입니까?

+1

이 DatePicker가 로캘을 사용하여 DatePicker를 자동으로 사용자 정의한다고 생각합니다. http://code.google.com/p/gwt-datepicker/wiki/HowToUse –

답변

5

, 유일한 옵션은 DatePicker에서의 구현을 수정하는 것 (및 아마 com.google.gwt.i18n.client.constants.DateTimeConstantsImpl_xy.propertiesfirstDayOfTheWeek 중 하나되지 않습니다 편집) :

  • 하는 확장을 DatePicker에서 자신 만의 뷰와 모델로 보호 된 DatePicker(MonthSelector monthSelector, CalendarView view, CalendarModel model) 생성자를 호출하는 새 생성자를 작성하십시오.

  • CalendarModel을 확장 할 수 있으므로 getCurrentFirstDayOfFirstWeek을 무시해야합니다.

  • DefaultCalendarView은 최종 버전이므로 새로운 클래스로 복사하고 setup 메서드를 수정해야합니다.

그것은 매우 혼란, 그리고 그 GWT의 작은 단점이다 - 대신 의존성 삽입 (Dependency Injection)의 싱글 톤을 많이 사용하게 ...

+0

음 ... 나는 똑같은 생각 때문에 대답으로 받아 들일 것입니다. 나는 그것을 시도 할 것이다. – Strelok

2

당신이 제공 할 수 DefaultCalendarView의 소스 코드 (보면 DatePicker의 보호 된 생성자에서) CalendarUtil의 getStartingDayOfWeek를 사용하여 기본 시작일을 설정합니다. CalendarUtilDateTimeConstants에서 시작 날짜를 가져옵니다. 따라서 주 (ju)가 말했듯이, 그것은 귀하의 지역에 따라 결정됩니다.

질문은 어떻게 기본 로캘 값을 재정의합니까? 솔직히 말해서, 나는 이것을하는 법이나 그것이 가능할 지 모른다. 분명히 가장 쉬운 해결책 일 것입니다.

그러나 그럴 수 없다면 DatePicker 확장 클래스를 만드는 것이 좋습니다. DefaultCalendarView을 확장하고 setup 메서드를 재정의하는 다른 클래스를 만듭니다. 동일한 방법 소스를 복사하지만 시작일을 CalendarUtil 대신 월요일으로 변경하십시오. 그런 다음 사용자 정의 DefaultCalendarView을 사용하여 사용자 정의 DatePicker을 작성하십시오. 해킹이지만 작동해야합니다.

+0

다른 로케일을 지정하는 것은 쉽습니다 ([GWT docs] (http://code.google.com/webtoolkit/doc/latest/DevGuideI18nLocale.html#LocaleSpecifying)에 있음) -하지만 모든 GWT 위젯에 적용됩니다 페이지 ... BTW : 당신은 정말로 내 대답을 복사 했습니까?! –

+0

하하하, 나는 대답이 없을 때 광산을 쓰기 시작했으나 지금 당장 끝내지 못했습니다. 내가 끝내고 그것을 제출할 때까지, 당신의 것이 거기에 있었다 ... 어떤 이유로 Stackoverflow는 그것이 전에했던 것처럼 나에게 경고하지 않았다. 죄송합니다 : P –

+0

걱정하지 마십시오. - 비슷하게 생각하는 누군가를 찾아 내면 행복합니다. : –

관련 문제