package Ġpw . bin om . scene Editor . properties Ċ Ċ import Ġm og ot . Node Ċ import Ġm og ot . math . set Ċ import Ġpw . bin om . Flex Layout Ċ import Ġpw . bin om . appendTo Ċ import Ġpw . bin om . scene Editor . Scene Editor View Ċ import Ġpw . bin om . scene Editor . node Controller . Box Shape 2 D View Ċ import Ġpw . bin om . ui . Vector 2 Value Ċ import Ġpw . bin om . utils . common Ċ import Ġpw . bin om . utils . isEmpty Ċ import Ġjavax . swing . J Component Ċ Ċ object ĠBox Shape 2 D Property Factory Ġ: ĠProperty Factory Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate ( view : ĠScene Editor View ): ĠProperty Ġ= ĠBox Shape 2 D Property ( view ) Ċ } Ċ Ċ class ĠBox Shape 2 D Property ( val Ġview : ĠScene Editor View ) Ġ: ĠProperty , ĠS pol er (" Box ĠShape ") Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġflex Ġ= ĠFlex Layout ( stage , ĠFlex Layout . Direction . COLUMN ) ĊĠĠĠ Ġprivate Ġval Ġsize Editor Ġ= ĠVector 2 Value (). appendTo ( flex ) ĊĠĠĠ Ġprivate Ġvar Ġchange Event Enabled Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġvar Ġnodes : ĠList < Box Shape 2 D View >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnodes Ġ= Ġnodes ?. as Sequence () Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġchange Event Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( nodes . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Editor . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Editor . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Editor . value . set ( nodes . map Ġ{ Ġit . size Ġ}. common ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchange Event Enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Nodes ( nodes : ĠList < Node >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . nodes Ġ= Ġnodes . as Sequence (). map NotNull Ġ{ Ġit Ġas ? ĠBox Shape 2 D View Ġ}. toList () ĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsize Editor . event Change . on Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( change Event Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnodes ?. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . size . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Editor . value . x . take Unless Ġ{ Ġit . isNaN () Ġ} Ġ?: Ġit . size . x , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Editor . value . y . take Unless Ġ{ Ġit . isNaN () Ġ} Ġ?: Ġit . size . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . rep aint () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcomponent : ĠJ Component ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠ Ġ} Ċ }