/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 . ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġjet brains . datal ore . plot Demo . model . component Ċ Ċ import Ġjet brains . datal ore . base . geometry . Double Vector Ċ import Ġjet brains . datal ore . base . values . Color Ċ import Ġjet brains . datal ore . plot . base . render . svg . Group Component Ċ import Ġjet brains . datal ore . plot . base . render . svg . Text Label Ċ import Ġjet brains . datal ore . plot Demo . model . Simple Demo Base Ċ import Ġjet brains . datal ore . vis . svg . Svg Utils Ċ Ċ open Ġclass ĠText Label Size Demo Ġ: ĠSimple Demo Base ( DEMO _ BOX _ SIZE ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDE MO _ BOX _ SIZE Ġ= ĠDouble Vector ( 1 2 0 0 . 0 , Ġ 8 0 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Text Label ( spec : ĠLabel Spec ): ĠText Label Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= ĠText Label ( spec . label ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setFont Size ( spec . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setFont Weight ( spec . font Weight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setFont Style ( spec . font Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . textColor (). set ( Color . DARK _ BLUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlabel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Model (): ĠGroup Component Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspecs Ġ= ĠArrayList < Label Spec >() ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 1 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 2 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 5 0 . 0 )) ĊĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 1 0 . 0 , Ġ" bold ")) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 2 0 . 0 , Ġ" bold ")) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 5 0 . 0 , Ġ" bold ")) ĊĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 1 0 . 0 , Ġ" normal ", Ġ" italic ")) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 2 0 . 0 , Ġ" normal ", Ġ" italic ")) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 5 0 . 0 , Ġ" normal ", Ġ" italic ")) ĊĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 1 0 . 0 , Ġ" bold ", Ġ" italic ")) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 2 0 . 0 , Ġ" bold ", Ġ" italic ")) ĊĠĠĠĠĠĠĠ Ġspecs . add ( Label Spec ( 5 0 . 0 , Ġ" bold ", Ġ" italic ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġgroup Component Ġ= ĠGroup Component () ĊĠĠĠĠĠĠĠ Ġval Ġlabel Size Ġ= ĠDouble Vector ( 2 0 0 . 0 , Ġ 5 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġ 5 0 . 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( spec Ġin Ġspecs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Label Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Text Label ( spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġtext Label . root Group ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Utils . transform Translate ( element , Ġ 1 0 0 . 0 , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Component . add ( element ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ+= Ġlabel Size . y ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġgroup Component ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠLabel Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize : ĠDouble , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfontWeight : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfont Style : ĠString ? Ġ= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlabel : ĠString Ġ= Ġ(" Label Ġsize =" Ġ+ Ġsize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Ġweight : Ġ" Ġ+ Ġ( font Weight Ġ?: Ġ"- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Ġstyle : Ġ" Ġ+ Ġ( font Style Ġ?: Ġ"- ")) ĊĠĠĠ Ġ} Ċ } Ċ