/* Ċ Ġ* Ġ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 . vis . demo Utils . swing Ċ Ċ import Ġjet brains . datal ore . base . geometry . Double Vector Ċ import Ġjet brains . datal ore . vis . svg . Svg Svg Element Ċ import Ġjava . awt . Color Ċ import Ġjava . awt . Component Ċ import Ġjava . awt . Dimension Ċ import Ġjavax . swing .* Ċ Ċ abstract Ġclass ĠSw ing Demo Frame ( ĊĠĠĠ Ġprivate Ġval Ġtitle : ĠString , ĊĠĠĠ Ġprivate Ġval Ġsize : ĠDimension Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġshow ( scroll : ĠBoolean Ġ= Ġtrue , Ġinit Content : ĠJPanel . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSw ing Utilities . invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġframe Ġ= ĠJ Frame ( title ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . background Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . layout Ġ= ĠBox Layout ( panel , ĠBox Layout . Y _ AXIS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . add ( Box . create Rigid Area ( Dimension ( M ARGIN _ LEFT , Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . add ( Box . create Rigid Area ( Dimension ( 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSPACE _ V ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . init Content () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scroll ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe . add ( J ScrollPane ( panel )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe . add ( panel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġframe . default Close Operation Ġ= ĠWindow Constants . EXIT _ ON _ CLOSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġframe . size Ġ= Ġsize ĊĠĠĠĠĠĠĠĠĠĠĠ Ġframe . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Svg ( svg Roots : ĠList < Svg Svg Element >, Ġsize : ĠDouble Vector ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( svg Root Ġin Ġsvg Roots ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġcreate Svg Component ( svg Root ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . border Ġ= ĠBorder Factory . create Line Border ( Color . OR ANGE , Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdimension Ġ= ĠDimension ( size . x . toInt (), Ġsize . y . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . minimum Size Ġ= Ġdimension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . maximum Size Ġ= Ġdimension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . alignment X Ġ= ĠComponent . LEFT _ ALIGNMENT ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd V Space ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( component ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġcreate Svg Component ( svg Root : ĠSvg Svg Element ): ĠJ Component ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠFRAME _ SIZE Ġ= ĠDimension ( 8 0 0 , Ġ 1 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠM ARGIN _ LEFT Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSPACE _ V Ġ= Ġ 5 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġadd V Space ( container : ĠJPanel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . add ( Box . create Rigid Area ( Dimension ( 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSPACE _ V ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }