package Ġat . cp ick l . g ads u . view . datepicker . view Ċ Ċ import Ġat . cp ick l . g ads u . view . datepicker . Component Color Defaults Ċ import Ġat . cp ick l . g ads u . view . datepicker . Component Icon Defaults Ċ import Ġat . cp ick l . g ads u . view . datepicker . Date Model Ċ import Ġat . cp ick l . g ads u . view . datepicker . Date Selection Constraint Ċ import Ġat . cp ick l . g ads u . view . datepicker . Util Calendar Model Ċ import Ġjava . awt . AW T Event Ċ import Ġjava . awt . Component Ċ import Ġjava . awt . Container Ċ import Ġjava . awt . Dimension Ċ import Ġjava . awt . Toolkit Ċ import Ġjava . awt . event . AW T EventListener Ċ import Ġjava . awt . event . ActionEvent Ċ import Ġjava . awt . event . ActionListener Ċ import Ġjava . awt . event . Hierarchy Bounds Listener Ċ import Ġjava . awt . event . Hierarchy Event Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjava . beans . Property ChangeEvent Ċ import Ġjava . beans . Property ChangeListener Ċ import Ġjava . util . Calendar Ċ import Ġjava . util . HashSet Ċ import Ġjavax . swing . Border Factory Ċ import Ġjavax . swing . JButton Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . J Formatted TextField Ċ import Ġjavax . swing . Popup Ċ import Ġjavax . swing . Popup Factory Ċ import Ġjavax . swing . Spring Layout Ċ import Ġjavax . swing . event . ChangeEvent Ċ import Ġjavax . swing . event . ChangeListener ĊĊ Ċ /** Ċ Ġ* ĠYou Ġare Ġable Ġto Ġset Ġthe Ġformat Ġof Ġthe Ġdate Ġbeing Ġdisplayed Ġon Ġthe Ġlabel . Ċ Ġ*/ Ċ open Ġclass ĠJ DatePicker Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprotected Ġval Ġdate Panel : ĠJ Date Panel , ĊĠĠĠĠĠĠĠ Ġformatter : ĠJ Formatted TextField . Abstract Formatter Ġ= ĠDate Picker Formatter ()) Ġ: ĠJ Component (), ĠDate Picker Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpopup : ĠPopup ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġval Ġformatted TextField : ĠJ Formatted TextField ĊĠĠĠ Ġprotected Ġval Ġbutton : ĠJButton ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa ĠJ DatePicker Ġwith Ġa Ġdefault Ġcalendar Ġmodel . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor () Ġ: Ġthis ( J Date Panel (), ĠDate Picker Formatter ()) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa ĠJ DatePicker Ġwith Ġan Ġinitial Ġvalue , Ġwith Ġa ĠUtil Calendar Model . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( value : ĠCalendar ) Ġ: Ġthis ( J Date Panel ( value )) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa ĠJ DatePicker Ġwith Ġan Ġinitial Ġvalue , Ġwith Ġa ĠUtil Date Model . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( value : Ġjava . util . Date ) Ġ: Ġthis ( J Date Panel ( value )) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa ĠJ DatePicker Ġwith Ġan Ġinitial Ġvalue , Ġwith Ġa ĠSql Date Model . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( value : Ġjava . sql . Date ) Ġ: Ġthis ( J Date Panel ( value )) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa ĠJ DatePicker Ġwith Ġa Ġcustom Ġdate Ġmodel . ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Ġa Ġcustom Ġdate Ġmodel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( model : ĠDate Model <* >) Ġ: Ġthis ( J Date Panel ( model )) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Initial ise ĠVariables ĊĠĠĠĠĠĠĠ Ġpopup Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġdate Panel . border Ġ= ĠBorder Factory . create Line Border ( colors . getColor ( Component Color Defaults . Key . POP UP _ BORDER )) ĊĠĠĠĠĠĠĠ Ġval Ġinternal EventHandler Ġ= ĠInternal EventHandler () ĊĊĠĠĠĠĠĠĠ Ġ// Create ĠLayout ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠSpring Layout () ĊĠĠĠĠĠĠĠ Ġset Layout ( layout ) ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġand ĠAdd ĠComponents ĊĠĠĠĠĠĠĠ Ġ// Add Ġand ĠConfigure ĠTextField Ċ // ĠĠĠĠĠĠĠ Ġformatted TextField Ġ= ĠJ Formatted TextField ( Date Component Formatter ()) ĊĠĠĠĠĠĠĠ Ġformatted TextField Ġ= ĠJ Formatted TextField ( formatter ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġdate Panel . model ĊĠĠĠĠĠĠĠ Ġset TextField Value ( formatted TextField , Ġmodel . year , Ġmodel . month , Ġmodel . day , Ġmodel . isSelected ) ĊĠĠĠĠĠĠĠ Ġformatted TextField . is Editable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadd ( formatted TextField ) ĊĠĠĠĠĠĠĠ Ġlayout . put Constraint ( Spring Layout . WEST , Ġformatted TextField , Ġ 0 , ĠSpring Layout . WEST , Ġthis ) ĊĠĠĠĠĠĠĠ Ġlayout . put Constraint ( Spring Layout . SO UTH , Ġthis , Ġ 0 , ĠSpring Layout . SO UTH , Ġformatted TextField ) ĊĊĠĠĠĠĠĠĠ Ġ// Add Ġand ĠConfigure ĠButton ĊĠĠĠĠĠĠĠ Ġbutton Ġ= ĠJButton () ĊĠĠĠĠĠĠĠ Ġbutton . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠComponent Icon Defaults . popup Button Icon ĊĠĠĠĠĠĠĠ Ġbutton . icon Ġ= Ġicon ĊĠĠĠĠĠĠĠ Ġif Ġ( icon Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġreset Ġto Ġcaption ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġ" ..." ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġremove Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd ( button ) ĊĠĠĠĠĠĠĠ Ġlayout . put Constraint ( Spring Layout . WEST , Ġbutton , Ġ 1 , ĠSpring Layout . EAST , Ġformatted TextField ) ĊĠĠĠĠĠĠĠ Ġlayout . put Constraint ( Spring Layout . EAST , Ġthis , Ġ 0 , ĠSpring Layout . EAST , Ġbutton ) ĊĠĠĠĠĠĠĠ Ġlayout . put Constraint ( Spring Layout . SO UTH , Ġthis , Ġ 0 , ĠSpring Layout . SO UTH , Ġbutton ) ĊĊĠĠĠĠĠĠĠ Ġ// Do Ġlayout Ġformatting ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġbutton . preferred Size . getHeight (). toInt () ĊĠĠĠĠĠĠĠ Ġbutton . preferred Size Ġ= ĠDimension ( h , Ġh ) ĊĠĠĠĠĠĠĠ Ġformatted TextField . preferred Size Ġ= ĠDimension ( date Panel . preferred Size . width Ġ- Ġh Ġ- Ġ 1 , Ġh ) ĊĊĠĠĠĠĠĠĠ Ġ// Add Ġevent Ġlisteners ĊĠĠĠĠĠĠĠ Ġadd Hierarchy Bounds Listener ( internal EventHandler ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd Ancestor Listener ( listener ) ĊĠĠĠĠĠĠĠ Ġbutton . addActionListener ( internal EventHandler ) ĊĠĠĠĠĠĠĠ Ġformatted TextField . addProperty ChangeListener (" value ", Ġinternal EventHandler ) ĊĠĠĠĠĠĠĠ Ġdate Panel . addActionListener ( internal EventHandler ) ĊĠĠĠĠĠĠĠ Ġdate Panel . model . add ChangeListener ( internal EventHandler ) ĊĠĠĠĠĠĠĠ Ġval Ġevent Mask Ġ= ĠMouseEvent . MOUSE _ PRES SED . to Long () ĊĠĠĠĠĠĠĠ ĠToolkit . getDefault Toolkit (). add AW T EventListener ( internal EventHandler , Ġevent Mask ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd ActionListener ( action Listener : ĠActionListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Panel . addActionListener ( action Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove ActionListener ( action Listener : ĠActionListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Panel . remove ActionListener ( action Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġmodel : ĠDate Model < *> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdate Panel . model ĊĊĠĠĠ Ġoverride Ġvar Ġis Text Editable : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformatted TextField . is Editable ĊĠĠĠĠĠĠĠ Ġset ( editable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformatted TextField . is Editable Ġ= Ġeditable ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġbutton Focus able : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbutton . is Focus able ĊĠĠĠĠĠĠĠ Ġset ( focus able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . is Focus able Ġ= Ġfocus able ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġj Date Instant Panel : ĠDate Panel ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdate Panel ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġinternally Ġto Ġpopup Ġthe Ġdates . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Popup () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( popup Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfac Ġ= ĠPopup Factory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġxy Ġ= Ġlocation On Screen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Panel . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Ġ= Ġfac . get Popup ( this , Ġdate Panel , Ġxy . getX (). toInt (), Ġ( xy . getY () Ġ+ Ġthis . height ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup !!. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Popup () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( popup Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup !!. hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetAll Components ( component : ĠComponent ): ĠSet < Component > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchildren Ġ= ĠHashSet < Component >() ĊĠĠĠĠĠĠĠ Ġchildren . add ( component ) ĊĠĠĠĠĠĠĠ Ġif Ġ( component Ġis ĠContainer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= Ġcomponent . components ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġcomponents . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren . addAll ( getAll Components ( components [ i ])) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġchildren ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis DoubleClick Action : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdate Panel . is DoubleClick Action ĊĠĠĠĠĠĠĠ Ġset ( double Click Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Panel . is DoubleClick Action Ġ= Ġdouble Click Action ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Show Year Buttons : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdate Panel . is Show Year Buttons ĊĠĠĠĠĠĠĠ Ġset ( show Year Buttons ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Panel . is Show Year Buttons Ġ= Ġshow Year Buttons ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset TextField Value ( textField : ĠJ Formatted TextField , Ġyear : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt , Ġis Selected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . value Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . set ( year , Ġmonth , Ġday , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . MILLI SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field . value Ġ= Ġcalendar ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Date Selection Constraint ( constraint : ĠDate Selection Constraint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Panel . add Date Selection Constraint ( constraint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Date Selection Constraint ( constraint : ĠDate Selection Constraint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Panel . remove Date Selection Constraint ( constraint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove All Date Selection Constraints () Ġ{ ĊĠĠĠĠĠĠĠ Ġdate Panel . removeAll Date Selection Constraints () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġdate Selection Constraints : ĠSet < Date Selection Constraint > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdate Panel . date Selection Constraints ĊĊĠĠĠ Ġoverride Ġvar Ġtext field Columns : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġformatted TextField . columns ĊĠĠĠĠĠĠĠ Ġset ( columns ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformatted TextField . columns Ġ= Ġcolumns ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Visible ( a Flag : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! a Flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Popup () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . setVisible ( a Flag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Enabled ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . isEnabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġdate Panel . isEnabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġformatted TextField . isEnabled Ġ= Ġenabled ĊĊĠĠĠĠĠĠĠ Ġsuper . setEnabled ( enabled ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġinternal Ġclass Ġhide s Ġthe Ġpublic Ġevent Ġmethods Ġfrom Ġthe Ġoutside ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġinner Ġclass ĠInternal EventHandler Ġ: ĠActionListener , ĠH ierarchy Bounds Listener , ĠChange Listener , ĠProperty ChangeListener , ĠA WT EventListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġancestor Moved ( arg 0 : ĠH ierarchy Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Popup () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġancestor Res ized ( arg 0 : ĠH ierarchy Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Popup () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠactionPerformed ( arg 0 : ĠAction Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arg 0 . source Ġ=== Ġbutton ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( popup Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Popup () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Popup () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( arg 0 . source Ġ=== Ġdate Panel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Popup () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstate Changed ( arg 0 : ĠChange Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arg 0 . source Ġ=== Ġdate Panel . model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġdate Panel . model ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextField Value ( formatted TextField , Ġmodel . year , Ġmodel . month , Ġmodel . day , Ġmodel . isSelected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġproperty Change ( evt : ĠProperty ChangeEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠShort Ġcircuit Ġif Ġthe Ġfollowing Ġcases Ġare Ġfound ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evt . oldValue Ġ== Ġnull Ġ&& Ġevt . newValue Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evt . oldValue Ġ!= Ġnull Ġ&& Ġevt . oldValue Ġ== Ġevt . newValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! formatted TextField . is Editable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġfield Ġis Ġeditable Ġand Ġwe Ġneed Ġto Ġparse Ġthe Ġdate Ġentered ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evt . newValue Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġevt . newValue Ġas ĠCalendar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠUtil Calendar Model ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcheck Ġconstraints ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! date Panel . check Constraints ( model )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġrollback ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatted TextField . value Ġ= Ġevt . oldValue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Panel . model . setDate ( value . get ( Calendar . YEAR ), Ġvalue . get ( Calendar . MONTH ), Ġvalue . get ( Calendar . DATE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Panel . model . isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClear ing Ġtext field Ġwill Ġalso Ġfire Ġchange Ġevent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evt . newValue Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġmodel Ġvalue Ġun selected , Ġthis Ġwill Ġfire Ġan Ġevent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . isSelected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġevent Dis patched ( event : ĠA WT Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MouseEvent . MOUSE _ CLICK ED Ġ== Ġevent . id Ġ&& Ġevent . source Ġ!== Ġbutton ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= ĠgetAll Components ( date Panel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclick In Popup Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( component Ġin Ġcomponents ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . source Ġ=== Ġcomponent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick In Popup Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! click In Popup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Popup () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcolors Ġ= ĠComponent Color Defaults ĊĠĠĠ Ġ} Ċ } Ċ