package Ġorg . hex works . z ir con . api . builder . component Ċ Ċ import Ġorg . hex works . z ir con . api . component . Base Component Builder Ċ import Ġorg . hex works . z ir con . api . component . Panel Ċ import Ġorg . hex works . z ir con . api . data . Size Ċ import Ġorg . hex works . z ir con . api . graphics . Box Type Ċ import Ġorg . hex works . z ir con . api . modifier . Border Ċ import Ġorg . hex works . z ir con . api . util . Maybe Ċ import Ġorg . hex works . z ir con . internal . component . Component Decoration Renderer Ċ import Ġorg . hex works . z ir con . internal . component . impl . Default Panel Ċ import Ġorg . hex works . z ir con . internal . component . impl . wrapping . Border Component Decoration Renderer Ċ import Ġorg . hex works . z ir con . internal . component . impl . wrapping . Box Component Decoration Renderer Ċ import Ġorg . hex works . z ir con . internal . component . impl . wrapping . Shadow Component Decoration Renderer Ċ Ċ data Ġclass ĠPanel Builder ( private Ġvar Ġbox Type : ĠBox Type Ġ= ĠBox Type . SINGLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtitle : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġsize : ĠSize Ġ= ĠSize . unknown (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdraw Box : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdraw Shadow : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġborder : ĠMaybe < Border > Ġ= ĠMaybe . empty ()) ĊĠĠĠ Ġ: ĠBase Component Builder < Panel , ĠPanel Builder >() Ġ{ ĊĊĠĠĠ Ġfun Ġwrap With Box () Ġ= Ġalso Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Box Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrap With Shadow () Ġ= Ġalso Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Shadow Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Border ( border : ĠBorder ) Ġ= Ġalso Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . border Ġ= ĠMaybe . of ( border ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbox Type ( box Type : ĠBox Type ) Ġ= Ġalso Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . box Type Ġ= Ġbox Type ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsize ( size : ĠSize ) Ġ= Ġalso Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . size Ġ= Ġsize ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtitle ( title : ĠString ) Ġ= Ġalso Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild (): ĠPanel Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( size Ġ!= ĠSize . unknown ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġmust Ġset Ġa Ġsize Ġfor Ġa ĠPanel !" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġwrappers Ġ= Ġmutable ListOf < Component Decoration Renderer >() ĊĠĠĠĠĠĠĠ Ġif Ġ( draw Box ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrappers . add ( Box Component Decoration Renderer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbox Type Ġ= Ġbox Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġif Ġ( title . isNotBlank ()) ĠMaybe . of ( title ) Ġelse ĠMaybe . empty ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( border . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrappers . add ( Border Component Decoration Renderer ( border . get ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( draw Shadow ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrappers . add ( Shadow Component Decoration Renderer ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠDefault Panel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Size Ġ= Ġsize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ= Ġposition (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Style Set Ġ= Ġcomponent Style Set (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrappers Ġ= Ġwrappers , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Tile set Ġ= Ġtile set ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Copy () Ġ= Ġthis . copy () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun ĠnewBuilder () Ġ= ĠPanel Builder () ĊĠĠĠ Ġ} Ċ } Ċ