/* Ċ Ġ* Ġ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 . svg Mapper . j fx . attr Ċ Ċ import Ġjavafx . scene . Node Ċ import Ġjavafx . scene . shape . Rectangle Ċ import Ġjet brains . datal ore . base . geometry . Double Rectangle Ċ import Ġjet brains . datal ore . vis . svg .* Ċ import Ġjet brains . datal ore . vis . svg Mapper . j fx . un Scale Transforms Ċ import Ġjet brains . datal ore . vis . svg To Scene . parse Svg Transform Ċ Ċ internal Ġabstract Ġclass ĠSvg Attr Mapping < in ĠTarget T Ġ: ĠNode > Ġ{ ĊĠĠĠ Ġopen Ġfun Ġset Attribute ( target : ĠTarget T , Ġname : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Graphics Element . VIS IBILITY . name Ġ-> Ġtarget . isVisible Ġ= Ġvisibility As Boolean ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Graphics Element . OP ACITY . name Ġ-> Ġtarget . opacity Ġ= Ġas Double ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Graphics Element . CLIP _ BOUN DS _ J FX . name Ġ-> Ġtarget . clip Ġ= Ġ( value Ġas ? ĠDouble Rectangle )?. run Ġ{ ĠRectangle ( left , Ġtop , Ġwidth , Ġheight ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Graphics Element . CLIP _ PATH . name Ġ-> ĠUnit Ġ// ĠTODO : Ġignored ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Constants . SVG _ STYLE _ ATTRIBUTE Ġ-> Ġset Style ( value Ġas ? ĠString Ġ?: Ġ"", Ġtarget ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg St yl ableElement . CLASS . name Ġ-> Ġset Style Class ( value Ġas ĠString ?, Ġtarget ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Transform able . TRANSFORM . name Ġ-> Ġset Transform (( value Ġas ĠSvg Transform ). toString (), Ġtarget ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unsupported Ġattribute Ġ`$ name ` Ġin Ġ${ target . java Class . simple Name }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvisibility As Boolean ( value : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSvg Graphics Element . Visibility Ġ-> Ġvalue Ġ== ĠSvg Graphics Element . Visibility . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġvalue Ġ== ĠSvg Graphics Element . Visibility . VISIBLE . toString () Ġ|| Ġas Boolean ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Style ( value : ĠString , Ġtarget : ĠNode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Fx Ġ= Ġvalue . split ("; "). join ToString ("; ") Ġ{ Ġif Ġ( it . isNotEmpty ()) Ġ"- fx -${ it . trim () }" Ġelse Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . style Ġ= Ġvalue Fx ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Style Class ( value : ĠString ?, Ġtarget : ĠNode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . style Class . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . style Class . addAll ( value . split (" Ġ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Transform ( value : ĠString , Ġtarget : ĠNode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . transforms . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransforms Ġ= Ġparse Svg Transform ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . transforms . addAll ( un Scale Transforms ( transforms )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġas Double ( value : ĠAny ?): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠDouble ) Ġreturn Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( value Ġas ĠString ). toDouble () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġas Boolean ( value : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( value Ġas ? ĠString )?. to Boolean () Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }