package Ġio . github . f jo ss inet . rn artist . model . editor Ċ Ċ import Ġio . github . f jo ss inet . rn artist . core . Rn artist Config Ċ import Ġio . github . f jo ss inet . rn artist . gui . editor . Script Editor Ċ import Ġjavafx . scene . Node Ċ import Ġjavafx . scene . paint . Color Ċ import Ġjavafx . scene . text . Font Ċ import Ġjavafx . scene . text . Text Ċ Ċ open Ġclass ĠDS LE lement ( val Ġeditor : ĠScript Editor , Ġtext : String , Ġval Ġindent Level : Int ) Ġ{ ĊĠĠĠ Ġval Ġchildren Ġ= Ġmutable ListOf < DS LE lement >() ĊĠĠĠ Ġval Ġtext Ġ= ĠText () ĊĊĠĠĠ Ġvar Ġcolor : Color Ġ= ĠColor . web ("# 0 0 0 0 0 0 ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . fill Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġvar Ġfont Name : String Ġ= ĠR n artist Config . editor Font Name ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text . font Ġ= ĠFont . font ( value , ĠR n artist Config . editor FontSize . toDouble ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġvar ĠfontSize : Int Ġ= ĠR n artist Config . editor FontSize ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text . font Ġ= ĠFont . font ( Rn artist Config . editor Font Name , Ġvalue . toDouble ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . text . text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġthis . text . font Ġ= ĠFont . font ( Rn artist Config . editor Font Name , ĠR n artist Config . editor FontSize . toDouble ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerates Ġthe ĠJava FX ĠNodes Ġfrom Ġthe Ġeditor Ġmodel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġdump Nodes ( nodes : Mutable List < Node >, Ġwith Tabs : Boolean = true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( with Tabs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġindent Level ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnodes . add ( Script Tab ( editor ). text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnodes . add ( this . text ) ĊĠĠĠĠĠĠĠ Ġthis . children . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . dump Nodes ( nodes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch First ( query :( DS LE lement ) Ġ-> ĠBoolean Ġ): DS LE lement ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( query ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . children . map Ġ{ Ġit . search First ( query ) Ġ}. filter Is Instance < DS LE lement >(). first OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch All ( hits : Mutable List < DS LE lement >, Ġquery :( DS LE lement ) Ġ-> ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( query ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhits . add ( this ) ĊĠĠĠĠĠĠĠ Ġhits . addAll ( this . children . map Ġ{ Ġit . search All ( hits , Ġquery ) Ġ}. filter Is Instance < DS LE lement >()) ĊĠĠĠ Ġ} Ċ }