package Ġcom . dur hack . sharp shot . gui . container . menus . cre aten ode . node buttons Ċ Ċ import Ġcom . dur hack . sharp shot . core . nodes . Abstract Node Ċ import Ġcom . dur hack . sharp shot . core . nodes . other . Constant Node Ċ import Ġcom . dur hack . sharp shot . core . nodes . other . Random Node Ċ import Ġcom . dur hack . sharp shot . core . state . Direction Ċ import Ġcom . dur hack . sharp shot . gui . util . BigInt Spinner Ċ import Ġcom . dur hack . sharp shot . registry . Node Registry Ċ import Ġjavafx . geometry . Pos Ċ import Ġjavafx . scene . input . KeyCode Ċ import Ġjavafx . scene . input . KeyEvent Ċ import Ġjavafx . scene . text . Font Ċ import Ġt orn ad of x .* Ċ Ċ class ĠConstant Node Button ( ĊĠĠĠĠĠĠĠ Ġon Hover : Ġ( Abstract Node Button ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġshow Form : Ġ( Abstract Node Form ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnode Created : Ġ( Abstract Node ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠĠĠĠĠ ĠAbstract Node Button ( Node Registry . constant Node Entry , Ġon Hover , Ġshow Form , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Created ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġnode Form Ġ= ĠConstant Node Form ( node Created ) ĊĠĠĠ Ġoverride Ġfun Ġcreate Node () Ġ= Ġnull Ċ } Ċ Ċ class ĠConstant Node Form ( node Created : Ġ( Abstract Node ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠĠĠĠĠ ĠAbstract Node Form ( node Created ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġspinner Ġ= ĠBigInt Spinner () ĊĊĠĠĠ Ġoverride Ġfun Ġfocus () Ġ{ ĊĠĠĠĠĠĠĠ Ġspinner . root . request Focus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hide () Ġ{ ĊĠĠĠĠĠĠĠ Ġspinner . value Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġroot Ġ= Ġv box Ġ{ ĊĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER ĊĠĠĠĠĠĠĠ Ġpadding All Ġ= Ġ 1 6 . 0 ĊĠĠĠĠĠĠĠ Ġspacing Ġ= Ġ 4 . 0 ĊĊĠĠĠĠĠĠĠ Ġadd Event Filter ( KeyEvent . KEY _ PRES SED ) Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . code Ġ== ĠKeyCode . Q Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . consume () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Normal () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . code Ġ== ĠKeyCode . W Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . consume () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . code Ġ== ĠKeyCode . E Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . consume () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Random () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlabel (" What Ġvalue Ġshould Ġthis Ġnode Ġoutput ?") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Ġ= ĠFont ( 1 8 . 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġh box ( 4 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( spinner ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Accept ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ{ Ġaccept Normal () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Empty ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ{ Ġaccept Empty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton (" Random ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ{ Ġaccept Random () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaccept Normal () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġspinner . value ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= ĠConstant Node ( value , ĠDirection . UP ) ĊĠĠĠĠĠĠĠ Ġaccept ( node ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaccept Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= ĠConstant Node ( null , ĠDirection . UP ) ĊĠĠĠĠĠĠĠ Ġaccept ( node ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaccept Random () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= ĠRandom Node ( Direction . UP ) ĊĠĠĠĠĠĠĠ Ġaccept ( node ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaccept ( node : ĠAbstract Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Created ( node ) ĊĠĠĠ Ġ} Ċ }