package Ġtools . a qua . bg w . examples . s udoku . view . custom components Ċ Ċ import Ġtools . a qua . bg w . components . u ic omp onent s . Label Ċ import Ġtools . a qua . bg w . examples . s udoku . entity . S udoku Ċ import Ġtools . a qua . bg w . observable . properties . Property Ċ import Ġtools . a qua . bg w . visual . Color Visual Ċ Ċ /** Ċ Ġ* ĠA Ġbox Ġof Ġthe Ġs udoku Ġcontaining Ġ 9 Ġ[ S udoku Cell ] s . Ċ Ġ* Ċ Ġ* Ġ@ param Ġbox Index ĠIndex Ġof Ġthe Ġbox . ĠMust Ġbe Ġin Ġ 0 .. 8 . Ċ Ġ* Ġ@ param ĠrowIndex ĠIndex Ġof Ġthe Ġrow . ĠMust Ġbe Ġin Ġ 0 .. 2 . Ċ Ġ* Ġ@ param Ġcol Index ĠIndex Ġof Ġthe Ġcolumn . ĠMust Ġbe Ġin Ġ 0 .. 2 . Ċ Ġ* Ġ@ param Ġsize ĠSize Ġof Ġthis Ġcell . Ċ Ġ*/ Ċ class ĠS udoku Cell ( Ċ ĉ val Ġbox Index Ġ: ĠInt , Ċ ĉ val ĠrowIndex Ġ: ĠInt , Ċ ĉ val Ġcol Index Ġ: ĠInt , Ċ ĉ size : ĠNumber Ċ ) Ġ: ĠLabel ( Ċ ĉ width Ġ= Ġsize , Ċ ĉ height Ġ= Ġsize , Ċ ĉ font Ġ= Ġblue Font , Ċ ĉ text Ġ= Ġ"", Ċ ĉ visual Ġ= ĠColor Visual . WHITE Ċ ) Ġ{ ĊĉĊ ĉ /** Ċĉ Ġ* ĠWhether Ġthis Ġis Ġa Ġfixed Ġdigit . Ċĉ Ġ*/ Ċ ĉ var Ġis Fixed : ĠBoolean Ġ= Ġfalse ĊĉĊ ĉ /** Ċĉ Ġ* Ġ[ Property ] Ġfor Ġthe Ġ[ value ] Ġof Ġthis Ġcell . Ċĉ Ġ*/ Ċ ĉ private Ġval Ġvalue Property Ġ= ĠProperty < Int ? >( null ). apply Ġ{ Ċĉ ĉ this . addListener Ġ{ Ġ_, Ġn V Ġ-> Ċĉĉ ĉ text Ġ= Ġn V ?. toString () Ġ?: Ġ"" Ċĉ ĉ } Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠValue Ġof Ġthis Ġcell . Ċĉ Ġ*/ Ċ ĉ var Ġvalue : ĠInt ? Ċĉ ĉ get () Ġ= Ġvalue Property . value Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ if ( is Fixed ) Ċĉĉĉ ĉ return ĊĉĉĉĊĉĉ ĉ value Property . value Ġ= Ġvalue Ċĉ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠEvent Ġraised Ġupon Ġselection . Ċĉ Ġ*/ Ċ ĉ var Ġselected Event : Ġ(( Cell Selected Event ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĉĊ ĉ init Ġ{ Ċĉ ĉ S udoku . check Bounds ( box Ġ= Ġbox Index , Ġrow Ġ= ĠrowIndex , Ġcol Ġ= Ġcol Index ) ĊĉĉĊĉ ĉ on Mouse Clicked Ġ= Ġ{ Ċĉĉ ĉ select () Ċĉ ĉ } Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠSets Ġvalue Ġand Ġmarks Ġit Ġas Ġfixed . Ċĉ Ġ* ĠChanges Ġto Ġblack Ġfont . Ċĉ Ġ*/ Ċ ĉ fun Ġset Fixed Value ( value : ĠInt ) Ġ{ Ċĉ ĉ text Ġ= Ġvalue . toString () Ċĉ ĉ font Ġ= Ġblack Font Ċĉ ĉ is Fixed Ġ= Ġtrue Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠClear s Ġvalue Ġand Ġmarks Ġit Ġas Ġnon - fixed . Ċĉ Ġ* ĠChanges Ġto Ġblue Ġfont . Ċĉ Ġ*/ Ċ ĉ fun Ġclear () Ġ{ Ċĉ ĉ text Ġ= Ġ"" Ċĉ ĉ font Ġ= Ġblue Font Ċĉ ĉ is Fixed Ġ= Ġfalse Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠSelect s Ġthis Ġcell . Ċĉ Ġ*/ Ċ ĉ fun Ġselect () Ġ{ Ċĉ ĉ selected Event ?. invoke ( Cell Selected Event ( this )) Ċĉ ĉ visual Ġ= ĠColor Visual ( selected Color ) Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠDe select s Ġthis Ġcell . Ċĉ Ġ*/ Ċ ĉ fun Ġde select () Ġ{ Ċĉ ĉ visual Ġ= ĠColor Visual . WHITE Ċ ĉ } Ċ }