/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠKar l ĠHen rik ĠE lg ĠBar lin n Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġno . u ib . inf 2 1 9 . gui . backend . cb . api Ċ Ċ import Ġjavafx . event . EventTarget Ċ import Ġjavafx . scene . control . ContextMenu Ċ import Ġjavafx . scene . input . KeyCode Ċ import Ġjavafx . scene . input . KeyEvent Ċ import Ġjavafx . scene . layout . Region Ċ import Ġjavafx . scene . text . Text Ċ import Ġjavafx . scene . text . Text Flow Ċ import Ġno . u ib . inf 2 1 9 . extra . centered Text Ċ import Ġno . u ib . inf 2 1 9 . extra . reload Ċ import Ġno . u ib . inf 2 1 9 . gui . controllers . Object Editor Controller Ċ import Ġt orn ad of x . action Ċ import Ġt orn ad of x . border pane Ċ import Ġt orn ad of x . button Ċ import Ġt orn ad of x . center Ċ import Ġt orn ad of x . item Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Parent Class Builder ] Ġthat Ġdoes Ġnot Ġhave Ġa Ġfixed Ġnumber Ġof Ġchildren . Ċ Ġ* ĠThis Ġallows Ġthe Ġuser Ġto Ġadd Ġand Ġremove Ġchildren Ġat Ġwill . Ċ Ġ* Ċ Ġ* Ġ@ author ĠE lg Ċ Ġ* Ċ Ġ* Ġ@ see Ġno . u ib . inf 2 1 9 . gui . backend . cb . parents . Collection Class Builder Ċ Ġ* Ġ@ see Ġno . u ib . inf 2 1 9 . gui . backend . cb . parents . Map Class Builder Ċ Ġ*/ Ċ abstract Ġclass ĠVariable Sized Parent Class Builder Ġ: ĠParent Class Builder () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġnew Ġchild ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġcreate New Child (): ĠClass Builder ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClear Ġall Ġelements Ġfrom Ġthe Ġcollection / map Ġof Ġchildren ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSomething Ġlike Ġ` ser Object . clear ()` Ġis Ġenough ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠMutable Collection . clear ĊĠĠĠĠ Ġ* Ġ@ see ĠMutable Map . clear ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġclear () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġit Ġis Ġvariable Ġsized Ġit Ġcannot Ġbe Ġimmutable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfinal Ġoverride Ġfun Ġis Immutable () Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHelper Ġmethod Ġto Ġmake Ġsure Ġthe Ġnewly Ġmade Ġobject Ġis Ġexpanded ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate New Child And Expand () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreated Ġ= Ġcreate New Child () ĊĠĠĠĠĠĠĠ Ġexpand () ĊĠĠĠĠĠĠĠ Ġcreated ?. expand () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Edit View ( ĊĠĠĠĠĠĠĠ Ġparent : ĠEvent Target , ĊĠĠĠĠĠĠĠ Ġcontroller : ĠObject Editor Controller ĊĠĠĠ Ġ): ĠRegion Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġparent . border pane Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġupdated Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" There Ġare Ġ${ this @ Variable Sized Parent Class Builder . getChildren (). size } Ġelements Ġin Ġthis Ġcollection " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcentered Text ( updated Text ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Add Ġnew Ġelement "). action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate New Child And Expand () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtf Ġ= Ġ( this . children [ 0 ] Ġas ĠText Flow ). children [ 0 ] Ġas ĠText ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtf . text Ġ= Ġupdated Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Node KeyEvent ( event : ĠKeyEvent , Ġcontroller : ĠObject Editor Controller ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Node KeyEvent ( event , Ġcontroller ) ĊĠĠĠĠĠĠĠ Ġif Ġ( event . is Cons umed ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( event . code Ġ== ĠKeyCode . ENTER Ġ|| Ġevent . code Ġ== ĠKeyCode . SPACE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate New Child And Expand () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . consume () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ContextMenu ( menu : ĠContext Menu , Ġcontroller : ĠObject Editor Controller ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( menu ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem (" Clear "). action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . children . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . tree . reload () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . is Expanded Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem (" Add Ġnew Ġentry "). action Ġ{ Ġcreate New Child And Expand () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ