package Ġat . cp ick l . g ads u . view . datepicker Ċ Ċ import Ġat . cp ick l . g ads u . global . G ads u Exception Ċ import Ġat . cp ick l . g ads u . view . Images Ċ import Ġjava . awt . Color Ċ import Ġjava . awt . System Color Ċ import Ġjava . io . IOException Ċ import Ġjava . text . DateFormat Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Calendar Ċ import Ġjava . util . Properties Ċ import Ġjavax . swing . Icon ĊĊ Ċ object ĠComponent Color Defaults Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠKey Ġ{ ĊĠĠĠĠĠĠĠ ĠF G _ MONTH _ SELECT OR , ĊĠĠĠĠĠĠĠ ĠBG _ MONTH _ SELECT OR , ĊĠĠĠĠĠĠĠ ĠF G _ GRID _ HEADER , ĊĠĠĠĠĠĠĠ ĠBG _ GRID _ HEADER , ĊĠĠĠĠĠĠĠ ĠF G _ GRID _ THIS _ MONTH , ĊĠĠĠĠĠĠĠ ĠF G _ GRID _ OTHER _ MONTH , ĊĠĠĠĠĠĠĠ ĠF G _ GRID _ TO DAY , ĊĠĠĠĠĠĠĠ ĠBG _ GRID , ĊĠĠĠĠĠĠĠ ĠBG _ GRID _ NOT _ SELECT ABLE , ĊĠĠĠĠĠĠĠ ĠF G _ GRID _ SELECTED , ĊĠĠĠĠĠĠĠ ĠBG _ GRID _ SELECTED , ĊĠĠĠĠĠĠĠ ĠF G _ GRID _ TO DAY _ SELECTED , ĊĠĠĠĠĠĠĠ ĠBG _ GRID _ TO DAY _ SELECTED , ĊĠĠĠĠĠĠĠ ĠF G _ TO DAY _ SELECT OR _ ENABLED , ĊĠĠĠĠĠĠĠ ĠF G _ TO DAY _ SELECT OR _ DISABLED , ĊĠĠĠĠĠĠĠ ĠBG _ TO DAY _ SELECT OR , ĊĠĠĠĠĠĠĠ ĠPOP UP _ BORDER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcolors Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ MONTH _ SELECT OR Ġto ĠSystem Color . active Caption Text , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ MONTH _ SELECT OR Ġto ĠSystem Color . active Caption , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ GRID _ HEADER Ġto ĠColor ( 1 0 , Ġ 3 6 , Ġ 1 0 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ GRID _ HEADER Ġto ĠColor . LIGHT _ GRAY , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ GRID _ THIS _ MONTH Ġto ĠColor . BLACK , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ GRID _ OTHER _ MONTH Ġto ĠColor . LIGHT _ GRAY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ GRID _ TO DAY Ġto ĠColor . RED , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ GRID Ġto ĠColor . WHITE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ GRID _ NOT _ SELECT ABLE Ġto ĠColor ( 2 4 0 , Ġ 2 4 0 , Ġ 2 4 0 ), ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ GRID _ SELECTED Ġto ĠColor . WHITE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ GRID _ SELECTED Ġto ĠColor ( 1 0 , Ġ 3 6 , Ġ 1 0 6 ), ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ GRID _ TO DAY _ SELECTED Ġto ĠColor . RED , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ GRID _ TO DAY _ SELECTED Ġto ĠColor ( 1 0 , Ġ 3 6 , Ġ 1 0 6 ), ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ TO DAY _ SELECT OR _ ENABLED Ġto ĠColor . BLACK , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . FG _ TO DAY _ SELECT OR _ DISABLED Ġto ĠColor . LIGHT _ GRAY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . BG _ TO DAY _ SELECT OR Ġto ĠColor . WHITE , ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . POP UP _ BORDER Ġto ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġget Color ( key : ĠKey ) Ġ= Ġcolors [ key ] !! ĊĊĠĠĠ Ġfun Ġset Color ( key : ĠKey , Ġcolor : ĠColor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcolors . put ( key , Ġcolor ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ Ċ object ĠComponent Format Defaults Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠKey Ġ{ ĊĠĠĠĠĠĠĠ ĠTO DAY _ SELECT OR , ĊĠĠĠĠĠĠĠ ĠDO W _ HEADER , ĊĠĠĠĠĠĠĠ ĠMON TH _ SELECT OR , ĊĠĠĠĠĠĠĠ ĠSELECT ED _ DATE _ FIELD ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġformats Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . TO DAY _ SELECT OR Ġto ĠSimpleDateFormat . getDate Instance ( SimpleDateFormat . MEDIUM ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . DO W _ HEADER Ġto ĠSimpleDateFormat (" EE "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . MONTH _ SELECT OR Ġto ĠSimpleDateFormat (" MMMM "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . SELECTED _ DATE _ FIELD Ġto ĠSimpleDateFormat . getDate Instance ( SimpleDateFormat . MEDIUM ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġget Format ( key : ĠKey ) Ġ= Ġformats [ key ] !! ĊĊĠĠĠ Ġfun Ġset Format ( key : ĠKey , Ġformat : ĠDate Format ) Ġ{ ĊĠĠĠĠĠĠĠ Ġformats . put ( key , Ġformat ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ Ċ object ĠComponent Icon Defaults Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠCLEAR Ġ= Ġ"/ g ads u / images / datepicker _ clear . png " ĊĊĠĠĠ Ġenum Ġclass ĠKey ĊĊĠĠĠ Ġvar Ġclear Icon : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnext Month Icon Enabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnext Year Icon Enabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġprevious Month Icon Enabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġprevious Year Icon Enabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnext Month Icon Disabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnext Year Icon Disabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġprevious Month Icon Disabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġprevious Year Icon Disabled : ĠIcon ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġpopup Button Icon : ĠIcon ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Icon Ġ= ĠImages . load From Classpath ( CLEAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Month Icon Enabled Ġ= ĠJ Next Icon ( 4 , Ġ 7 , Ġfalse , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Year Icon Enabled Ġ= ĠJ Next Icon ( 8 , Ġ 7 , Ġtrue , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Month Icon Enabled Ġ= ĠJ Previous Icon ( 4 , Ġ 7 , Ġfalse , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Year Icon Enabled Ġ= ĠJ Previous Icon ( 8 , Ġ 7 , Ġtrue , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Month Icon Disabled Ġ= ĠJ Next Icon ( 4 , Ġ 7 , Ġfalse , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Year Icon Disabled Ġ= ĠJ Next Icon ( 8 , Ġ 7 , Ġtrue , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Month Icon Disabled Ġ= ĠJ Previous Icon ( 4 , Ġ 7 , Ġfalse , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Year Icon Disabled Ġ= ĠJ Previous Icon ( 8 , Ġ 7 , Ġtrue , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Button Icon Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠG ads u Exception (" Oh Ġno es , Ġload Ġicons Ġfailed !", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠInstanti ated Ġwith Ġthe Ġvalues Ġwhich Ġis Ġdefault Ġfor Ġthe Ġcurrent Ġlocale . Ċ Ġ*/ Ċ object ĠComponent Text Defaults Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠKey Ġconstructor ( val Ġproperty : ĠString , Ġval Ġkind : ĠString , Ġval Ġindex : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGeneral Ġtexts ĊĠĠĠĠĠĠĠ ĠTO DAY (" text . today ", Ġ" general "), ĊĠĠĠĠĠĠĠ ĠMON TH (" text . month ", Ġ" general "), ĊĠĠĠĠĠĠĠ ĠYEAR (" text . year ", Ġ" general "), ĊĠĠĠĠĠĠĠ ĠCLEAR (" text . clear ", Ġ" general "), ĊĊĠĠĠĠĠĠĠ Ġ// ĠMonth s Ġof Ġthe Ġyear ĊĠĠĠĠĠĠĠ ĠJ AN U ARY (" text . jan uary ", Ġ" month ", Ġ 0 ), ĊĠĠĠĠĠĠĠ ĠFE BR U ARY (" text . fe bruary ", Ġ" month ", Ġ 1 ), ĊĠĠĠĠĠĠĠ ĠM ARCH (" text . m arch ", Ġ" month ", Ġ 2 ), ĊĠĠĠĠĠĠĠ ĠAPR IL (" text . apr il ", Ġ" month ", Ġ 3 ), ĊĠĠĠĠĠĠĠ ĠMAY (" text . may ", Ġ" month ", Ġ 4 ), ĊĠĠĠĠĠĠĠ ĠJ UNE (" text . j une ", Ġ" month ", Ġ 5 ), ĊĠĠĠĠĠĠĠ ĠJ UL Y (" text . jul y ", Ġ" month ", Ġ 6 ), ĊĠĠĠĠĠĠĠ ĠA UG UST (" text . aug ust ", Ġ" month ", Ġ 7 ), ĊĠĠĠĠĠĠĠ ĠSE P TE MBER (" text . se ptember ", Ġ" month ", Ġ 8 ), ĊĠĠĠĠĠĠĠ ĠO CT OB ER (" text . oct ober ", Ġ" month ", Ġ 9 ), ĊĠĠĠĠĠĠĠ ĠNO VE MBER (" text . nov ember ", Ġ" month ", Ġ 1 0 ), ĊĠĠĠĠĠĠĠ ĠDE CE MBER (" text . de cember ", Ġ" month ", Ġ 1 1 ), ĊĊĠĠĠĠĠĠĠ Ġ// ĠDays Ġof Ġthe Ġweek Ġabbre vi ated Ġwhere Ġnecessary ĊĠĠĠĠĠĠĠ ĠS UN (" text . sun ", Ġ" d ow ", ĠCalendar . S UND AY ), ĊĠĠĠĠĠĠĠ ĠMON (" text . mon ", Ġ" d ow ", ĠCalendar . MON DAY ), ĊĠĠĠĠĠĠĠ ĠT UE (" text . t ue ", Ġ" d ow ", ĠCalendar . T UES DAY ), ĊĠĠĠĠĠĠĠ ĠW ED (" text . wed ", Ġ" d ow ", ĠCalendar . W ED N ES DAY ), ĊĠĠĠĠĠĠĠ ĠTH U (" text . th u ", Ġ" d ow ", ĠCalendar . TH UR SD AY ), ĊĠĠĠĠĠĠĠ ĠF RI (" text . f ri ", Ġ" d ow ", ĠCalendar . FR ID AY ), ĊĠĠĠĠĠĠĠ ĠS AT (" text . sat ", Ġ" d ow ", ĠCalendar . S ATUR DAY ); ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġget Month Key ( index : ĠInt ) Ġ= Ġvalues (). first OrNull Ġ{ Ġ" month " Ġ== Ġit . kind Ġ&& Ġindex Ġ== Ġit . index Ġ} Ġ?: Ġthrow ĠIllegalArgumentException (" Invalid Ġindex : Ġ$ index ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġget D ow Key ( index : ĠInt ) Ġ= Ġvalues (). first OrNull Ġ{ Ġ" d ow " Ġ== Ġit . kind Ġ&& Ġindex Ġ== Ġit . index Ġ} Ġ?: Ġthrow ĠIllegalArgumentException (" Invalid Ġindex : Ġ$ index ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtexts Ġ= ĠProperties (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput (" text . today ", Ġ" He ute ") ĊĠĠĠĠĠĠĠ Ġput (" text . month ", Ġ" Mon at ") ĊĠĠĠĠĠĠĠ Ġput (" text . year ", Ġ" J ahr ") ĊĠĠĠĠĠĠĠ Ġput (" text . clear ", Ġ" L \ u 0 0 f 6 sch en ") ĊĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// to Properties ( ResourceBundle . get Bundle (" org . j datepicker . i 1 8 n . Text ", ĠLocale . getDefault ())) Ċ Ċ // ĠĠĠ Ġprivate Ġfun Ġto Properties ( resource : ĠResource Bundle ): ĠProperties Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠProperties () Ċ // ĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= Ġresource . keys Ċ // ĠĠĠĠĠĠĠ Ġwhile Ġ( keys . hasMore Elements ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġkeys . nextElement () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġresult . put ( key , Ġresource . getString ( key )) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġresult Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFor Ġgeneral Ġtexts Ġretrieve Ġfrom Ġthe Ġresource Ġbundles . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġmonths Ġand Ġday Ġof Ġthe Ġweek Ġuse Ġthe ĠSimpleDateFormat Ġsymbols . ĠIn Ġmost Ġcases Ġthese Ġare Ġthe Ġcorrect Ġones , Ġbut ĊĠĠĠĠ Ġ* Ġwe Ġmay Ġwant Ġto Ġoverride Ġit , Ġso Ġif Ġa Ġtext Ġis Ġspecified Ġthen Ġwe Ġwill Ġnot Ġconsider Ġthe ĠSimpleDateFormat Ġsymbols . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetText ( key : ĠKey ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext : ĠString ? Ġ= Ġtexts . getProperty ( key . property ) ĊĠĠĠĠĠĠĠ Ġif Ġ( text Ġ!= Ġnull ) Ġreturn Ġtext ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(" month " Ġ== Ġkey . kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . set ( Calendar . MONTH , Ġkey . index !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Format Ġ= ĠComponent Format Defaults . get Format ( Component Format Defaults . Key . MONTH _ SELECT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmonth Format . format ( c . time ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(" d ow " Ġ== Ġkey . kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc . set ( Calendar . DAY _ OF _ WEEK , Ġkey . index !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdow Format Ġ= ĠComponent Format Defaults . get Format ( Component Format Defaults . Key . DO W _ HEADER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdow Format . format ( c . time ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Unhandled Ġkey : Ġ$ key ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Text ( key : ĠKey , Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtexts . setProperty ( key . property , Ġvalue ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ