package Ġframe . tabs Ċ Ċ import Ġcalendar . Note Ċ import Ġcalendar . Notes Ċ import Ġcalendar . Type Ċ import Ġcalendar . Types Ċ import Ġframe . styles . Global Styles Ċ import Ġframe . styles . Note Styles Ċ import Ġframe . styles . Tab Styles Ċ import Ġframe . type Combo box Ċ import Ġjavafx . beans . property .* Ċ import Ġjavafx . geometry .* Ċ import Ġjavafx . scene . control .* Ċ import Ġjavafx . scene . layout .* Ċ import Ġjavafx . scene . web .* Ċ import Ġlogic . Configs Ċ import Ġlogic . Language Ċ import Ġlogic . getConfig Ċ import Ġlogic . listen Ċ import Ġlogic . listen Updates Ċ import Ġlogic . log Ċ import Ġlogic . translate Ċ import Ġt orn ad of x .* Ċ import Ġjava . time . LocalDate ĊĊ Ċ fun Ġcreate Note Tab ( pane : ĠTab Pane , Ġtime : ĠLocalDate , Ġis Week : ĠBoolean ): ĠTab Ġ{ Ċ ĉ log (" creating Ġnote Ġtab ") Ċ ĉ return Ġpane . tab ("") Ġ{ Ċĉ ĉ text Ġ= Ġif ( is Week ) Ġ{ Ċĉĉ ĉ " Week ĠNotes Ġfor Ġ% s Ġto Ġ% s ". translate ( Ċĉĉĉ ĉ Language . Translation Types . Note , Ċĉĉĉ ĉ "${ time . day OfMonth }.${ time . month . value }. ", Ċĉĉĉ ĉ "${ time . plus Days ( 6 ). day OfMonth }.${ time . plus Days ( 6 ). month . value } ." Ċĉĉ ĉ ) Ċĉ ĉ } Ġelse Ġ{ Ċĉĉ ĉ " Notes Ġon Ġ% s ". translate ( Language . Translation Types . Note , Ġ"${ time . day OfMonth }.${ time . month . value }. ") Ċĉ ĉ } Ċĉ ĉ is C losable Ġ= Ġtrue Ċĉ ĉ addClass ( Tab Styles . tab _) ĊĊĉ ĉ v box Ġ{ Ċĉĉ ĉ addClass ( Tab Styles . content _) Ċĉĉ ĉ late init Ġvar Ġadd : ĠButton Ċĉĉ ĉ late init Ġvar Ġadd Type : ĠCombo Box < Type > Ċĉĉ ĉ val Ġtype : ĠProperty < Type > Ġ= ĠTypes . getRandom (" Note "). to Property () Ċĉĉ ĉ var Ġnote Pan es Ġ= Ġmutable Map Of < Note , ĠTitle d Pane >() ĊĊĉĉ ĉ h box ( spacing Ġ= Ġ 2 0 . 0 , Ġalignment Ġ= ĠPos . CENTER _ LEFT ) Ġ{ Ċĉĉĉ ĉ addClass ( Tab Styles . top bar _) ĊĊĉĉĉ ĉ add Type Ġ= Ġtype Combo box ( type ) Ċĉĉĉ ĉ add Ġ= Ġbutton Ġ{ Ċĉĉĉĉ ĉ text Ġ= Ġ" Add " ĊĊĉĉĉĉ ĉ // Ġdisables Ġbutton Ġif Ġno Ġtype Ġselected Ġor Ġtype Ġalready Ġadded Ċĉĉĉĉ ĉ add Type . value Property (). listen ( run Once Ġ= Ġtrue ) Ġ{ Ġnew Ġ-> Ċĉĉĉĉĉ ĉ is Disable Ġ= Ġnote Pan es . any Ġ{ Ġit . key . type . value Ġ== Ġnew Ġ} Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ addClass ( Tab Styles . title Button _) Ċĉĉĉ ĉ } Ċĉĉ ĉ } ĊĊĉĉ ĉ scroll pane ( fit To Width Ġ= Ġtrue , Ġfit To Height Ġ= Ġtrue ) Ġ{ Ċĉĉĉ ĉ addClass ( Global Styles . disable Focus Draw _) Ċĉĉĉ ĉ addClass ( Global Styles . max Height _) Ċĉĉĉ ĉ addClass ( Global Styles . background _) Ċĉĉĉ ĉ is P ann able Ġ= Ġtrue ĊĊĉĉĉ ĉ // Ġgets Ġst ret ched Ġacross Ġwhole Ġscroll pane Ċĉĉĉ ĉ v box ( spacing Ġ= Ġ 2 . 0 , Ġalignment Ġ= ĠPos . TOP _ CENTER ) Ġ{ Ċĉĉĉĉ ĉ addClass ( Global Styles . background _) ĊĊĉĉĉĉ ĉ add . action Ġ{ Ċĉĉĉĉĉ ĉ Note . new ( time , Ġ"", Ġtype . value , Ġis Week ) Ċĉĉĉĉĉ ĉ add . is Disable Ġ= Ġtrue Ċĉĉĉĉ ĉ } ĊĊĉĉĉĉ ĉ val Ġnotes Ġ= ĠNotes . get Notes At ( time ) Ċĉĉĉĉ ĉ notes . listen Updates Ġ{ Ġchange Ġ-> Ċĉĉĉĉĉ ĉ while ( change . next ()) Ġ{ Ċĉĉĉĉĉĉ ĉ if ( change . was Added ()) Ġ{ Ċĉĉĉĉĉĉĉ ĉ for ( note Ġin Ġchange . added Sub List ) Ġ{ Ċĉĉĉĉĉĉĉĉ ĉ note Pan es [ note ] Ġ= Ġnote Pane ( this , Ġnote ) Ċĉĉĉĉĉĉĉ ĉ } Ċĉĉĉĉĉĉ ĉ } Ċĉĉĉĉĉĉ ĉ if ( change . was Removed ()) Ġ{ Ċĉĉĉĉĉĉĉ ĉ for ( note Ġin Ġchange . removed ) Ġ{ Ċĉĉĉĉĉĉĉĉ ĉ // Ġcustom Ġfiltering , Ġas Ġnotes Ġare Ġnot Ġthe Ġexact Ġsame Ġ( this Ġwill Ġalways Ġreturn Ġonly Ġone Ġelement ) Ċĉĉĉĉĉĉĉĉ ĉ this . children . removeAll ( note Pan es . filter Ġ{ Ġit . key Ġ== Ġnote Ġ}. values ) Ċĉĉĉĉĉĉĉĉ ĉ note Pan es Ġ= Ġnote Pan es . filter Ġ{ Ġit . key Ġ!= Ġnote Ġ}. to Mutable Map () ĊĊĉĉĉĉĉĉĉĉ ĉ // Ġcheck Ġadd Type Ġselector Ġagain Ċĉĉĉĉĉĉĉĉ ĉ add . is Disable Ġ= Ġnote Pan es . any Ġ{ Ġit . key . type . value Ġ== Ġadd Type . value Ġ} Ċĉĉĉĉĉĉĉ ĉ } Ċĉĉĉĉĉĉ ĉ } Ċĉĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ for ( note Ġin Ġnotes ) Ġ{ Ċĉĉĉĉĉ ĉ note Pan es [ note ] Ġ= Ġnote Pane ( this , Ġnote ) Ċĉĉĉĉ ĉ } Ċĉĉĉ ĉ } Ċĉĉ ĉ } Ċĉ ĉ } Ċĉ ĉ log (" created Ġnote Ġtab ") Ċ ĉ } Ċ } Ċ Ċ fun Ġnote Pane ( tabs : ĠV Box , Ġnote : ĠNote ): ĠTitle d Pane Ġ{ Ċ ĉ // Ġcannot Ġuse Ġthe ĠEvent Target ĠFunctions Ġbecause Ġthey Ġautomatically Ġadd Ġthe Ċ ĉ // Ġpane Ġto Ġthe Ġend Ġof Ġthe Ġv box Ċ ĉ val Ġpane Ġ= ĠTitle d Pane () Ċ ĉ pane . apply Ġ{ Ċĉ ĉ text Property (). bind ( note . type . value . name ) Ċĉ ĉ is Expanded Ġ= ĠgetConfig ( Configs . Expand Notes On Open ) Ċĉ ĉ addClass ( Note Styles . notes Pane _) ĊĊĉ ĉ @ Suppress (" Join Declaration And Assignment ") Ċĉ ĉ late init Ġvar Ġeditor : ĠHT MLE d itor ĊĊĉ ĉ graphic Ġ= Ġtoolbar Ġ{ Ċĉĉ ĉ addClass ( Note Styles . pane Toolbar _) Ċĉĉ ĉ h box ( spacing Ġ= Ġ 2 0 . 0 ) Ġ{ Ċĉĉĉ ĉ style Ġ{ Ċĉĉĉĉ ĉ fontSize Ġ= Ġ 1 5 . px Ċĉĉĉ ĉ } Ċĉĉĉ ĉ button (" save ". translate ( Language . Translation Types . Note )) Ġ{ Ċĉĉĉĉ ĉ action Ġ{ Ċĉĉĉĉĉ ĉ note . text . set ( editor . html Text ) Ċĉĉĉĉ ĉ } Ċĉĉĉ ĉ } ĊĊĉĉĉ ĉ button (" delete ". translate ( Language . Translation Types . Note )) Ġ{ Ċĉĉĉĉ ĉ action Ġ{ Ċĉĉĉĉĉ ĉ note . remove () Ċĉĉĉĉ ĉ } Ċĉĉĉ ĉ } Ċĉĉ ĉ } Ċĉ ĉ } Ċĉ ĉ expanded Property (). listen ( run Once Ġ= Ġtrue ) Ġ{ Ġnew Ġ-> Ċĉĉ ĉ content Display Ġ= Ġif ( new ) Ċĉĉĉ ĉ Content Display . RIGHT Ċĉĉ ĉ else Ċĉĉĉ ĉ Content Display . TEXT _ ONLY Ċĉ ĉ } ĊĊĉ ĉ editor Ġ= Ġ htm led itor ( note . text . value ) Ġ{ Ċĉĉ ĉ addClass ( Global Styles . disable Focus Draw _) Ċĉĉ ĉ addClass ( Note Styles . editor _) Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ // Ġset Ġtab Ġas Ġfirst Ċ ĉ tabs . getChild List ()?. add ( 0 , Ġpane ) ĊĊ ĉ return Ġpane Ċ } Ċ