package Ġca . warp 7 . rt . view . window Ċ Ċ import Ġca . warp 7 . rt . view . api . Tab Activity Ċ import Ġca . warp 7 . rt . view . api . ViewModel Ċ import Ġca . warp 7 . rt . view . cf . Control F Activity Ċ import Ġca . warp 7 . rt . view . dash . Dashboard Activity Ċ import Ġca . warp 7 . rt . view . fx kt .* Ċ import Ġca . warp 7 . rt . view . ext . Extensions Activity Ċ import Ġjavafx . event . EventHandler Ċ import Ġjavafx . geometry . Insets Ċ import Ġjavafx . geometry . Pos Ċ import Ġjavafx . scene . Node Ċ import Ġjavafx . scene . Scene Ċ import Ġjavafx . scene . control . TextField Ċ import Ġjavafx . scene . input . KeyCode Ċ import Ġjavafx . scene . layout . H Box Ċ import Ġjavafx . scene . layout . V Box Ċ import Ġjavafx . scene . text . Font Ċ import Ġjavafx . scene . text . Font Weight Ċ import Ġjavafx . scene . text . Text Ċ import Ġjavafx . stage . Stage Ċ import Ġorg . controls fx . control . spreadsheet . Sp readsheet View Ċ @ Suppress (" Member Visibility Can Be Private ", Ġ" unused ", Ġ" Spell Checking Inspection ") Ċ class ĠRT Window Ġprivate Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstage : ĠStage Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġview Ġ= ĠWindow View () ĊĠĠĠ Ġprivate Ġval Ġstate Ġ= ĠWindow State () ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . reflect Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġstage . scene . stylesheets . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Light Theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove ( k Dark CSS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( k Light CSS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove ( k Light CSS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( k Dark CSS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . reflect () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . icon Container . children . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . style Class . remove (" master - tab - icon - selected ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . sidebar Pane . center Ġ= Ġview . tab Container ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title Bar . children . addAll ( view . ok Button , Ġview . cancel Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title . text Ġ= Ġ" ADD ĠFORM ULA " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . icon Container . children . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( view . text Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title Container . align ( Pos . CENTER _ LEFT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title Container . padding Ġ= ĠIn sets ( 0 . 0 , Ġ 1 6 . dp 2 px , Ġ 0 . 0 , Ġ 1 6 . dp 2 px ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Container . center Ġ= ĠV Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . TOP _ LEFT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpadding Ġ= ĠIn sets ( 1 2 . dp 2 px ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextField (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprompt Text Ġ= Ġ" Enter ĠFormula " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . icon Container . children . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( view . text Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( state . icon Nodes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠforEach Ġ{ Ġit . no Style Class () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selectedIndex Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Ġ= Ġstate . activities [ selectedIndex ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title . text Ġ= Ġselected . title . toUpperCase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Container . center Ġ= Ġselected . content View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . icon Container . children [ selectedIndex Ġ+ Ġ 1 ]?. style Class (" master - tab - icon - selected ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Container . center Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Sidebar Shown ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . sidebar Pane . center Ġ= Ġview . tab Container ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . sidebar Pane . center Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title Container . align ( Pos . CENTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title Bar . children . removeAll ( view . ok Button , Ġview . cancel Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . tab Title Bar . padding Ġ= ĠIn sets ( 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . toggle Theme () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Light Theme Ġ= Ġ! is Light Theme ĊĠĠĠĠĠĠĠ Ġreflect Theme () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . enter Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Dialog ) Ġreturn ĊĠĠĠĠĠĠĠ Ġstate . is Dialog Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreflect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . ok Signal () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Dialog Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreflect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . cancel Signal () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Dialog Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreflect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . update Model () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġmodel . get Grid () ĊĠĠĠĠĠĠĠ Ġview . spreadsheet . grid Ġ= Ġgrid ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠText () ĊĠĠĠĠĠĠĠ Ġtext . font Ġ= ĠFont . font (" sans - serif ", ĠFontWeight . BOLD , Ġ 1 4 . 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( grid . column Headers . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . spreadsheet . columns . forEach Indexed Ġ{ Ġindex , Ġcolumn Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Col Ġ= Ġview . spreadsheet . getModel Column ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġgrid . column Headers [ model Col ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Width Ġ= Ġtext . layout Bounds . width Ġ+ Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġgrid . rows [ model Col ][ 0 ]. text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Width Ġ= Ġtext . layout Bounds . width Ġ+ Ġ 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn . set Pref Width ( max Of ( 1 0 0 . 0 , Ġheader Width , Ġfirst Width )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . spreadsheet . columns . forEach Ġ{ Ġit . set Pref Width ( 1 0 0 . 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġmodel . get Menu () ĊĠĠĠĠĠĠĠ Ġview . spreadsheet . context Menu Ġ= Ġmenu ĊĠĠĠĠĠĠĠ Ġview . spreadsheet . is Editable Ġ= Ġmodel . is Editable ĊĠĠĠĠĠĠĠ Ġmodel . set Callbacks ( selector ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġselector Ġ= Ġ{ Ġview . spreadsheet . getSelection () Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġstage . initialize () ĊĠĠĠĠĠĠĠ Ġstage . full Screen Exit Key Combination Ġ= ĠCombo ( KeyCode . F 1 1 ) ĊĠĠĠĠĠĠĠ Ġview . root Pane . center Ġ= Ġview . spreadsheet ĊĠĠĠĠĠĠĠ Ġstage . scene Ġ= ĠScene ( view . root Pane ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle sheets . add ( k Main CSS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Key Pressed Ġ= ĠEventHandler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . code Ġ== ĠKeyCode . F 1 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . is FullScreen Ġ= Ġ! state . is FullScreen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage . is FullScreen Ġ= Ġstate . is FullScreen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . code Ġ== ĠKeyCode . F 1 Ġ-> Ġstate . toggle Theme () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . code Ġ== ĠKeyCode . F 3 Ġ-> Ġstate . enter Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . code Ġ== ĠKeyCode . ESCAPE Ġ-> Ġstate . cancel Signal () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . code Ġ== ĠKeyCode . F 8 Ġ-> ĠStage (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscene Ġ= ĠScene ( Sp readsheet View ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 5 0 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 5 0 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . ok Button . on Mouse Clicked Ġ= ĠEventHandler Ġ{ Ġstate . ok Signal () Ġ} ĊĠĠĠĠĠĠĠ Ġview . cancel Button . on Mouse Clicked Ġ= ĠEventHandler Ġ{ Ġstate . cancel Signal () Ġ} ĊĠĠĠĠĠĠĠ Ġstate . reflect Theme () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Icon ( i : ĠInt , Ġactivity : ĠTab Activity ): ĠNode Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbox Ġ= ĠH Box ( activity . icon ) ĊĠĠĠĠĠĠĠ Ġbox . alignment Ġ= ĠPos . CENTER ĊĠĠĠĠĠĠĠ Ġbox . pref Width Ġ= Ġ 5 6 . dp 2 px ĊĠĠĠĠĠĠĠ Ġbox . pref Height Ġ= Ġ 5 6 . dp 2 px ĊĠĠĠĠĠĠĠ Ġbox . on Mouse Pressed Ġ= ĠEventHandler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . select Tab ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbox ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWindow State . select Tab ( i : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġselected Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sidebar Shown Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Index Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sidebar Shown Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Index Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreflect () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġstage . show () ĊĠĠĠĠĠĠĠ Ġstate . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activities . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sidebar Shown Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Index Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreflect () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdo With Activities ( action : ĠMutable List < Tab Activity >. () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstate . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( activities ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivities . forEach Indexed Ġ{ Ġi , Ġtab Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshortcut Ġ= Ġtab . shortcut ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage . scene . accel erators . put If Absent ( shortcut , ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . select Tab ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Nodes Ġ= Ġactivities . map Indexed Ġ{ Ġi , Ġp Ġ-> Ġcreate Icon ( i , Ġp ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . icon Container . children . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( view . text Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( icon Nodes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Sidebar Shown Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreflect () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtry Set Model ( model : ĠViewModel ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( model Ġ!== Ġstate . model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . model Ġ= Ġmodel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . update Model () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġprimary : ĠRT Window ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( stage : ĠStage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( primary Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A Ġprimary Ġwindow Ġalready Ġexists ; Ġcannot Ġcreate Ġanother Ġone " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠRegistry . load () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= ĠRT Window ( stage ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . do With Activities Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDashboard Activity ( window ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠControl F Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExtensions Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Ġ= Ġwindow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }