package Ġcom . ch imer apps . storage inspector . ui . util . svg Ċ Ċ import Ġcom . intellij . ui . scale . J BU IS cale Ċ import Ġcom . intellij . util . ui . Image Util Ċ import Ġorg . apache . bat ik . trans coder . Trans coder Input Ċ import Ġorg . apache . bat ik . trans coder . Trans coder Output Ċ import Ġorg . apache . bat ik . trans coder . Trans coding Hints Ċ import Ġorg . apache . bat ik . trans coder . image . Image Trans coder Ċ import Ġjava . awt . Component Ċ import Ġjava . awt . Graphics Ċ import Ġjava . awt . Graphics Configuration Ċ import Ġjava . awt . image . Buffered Image Ċ import Ġjava . io . File Ċ import Ġjava . io . String Reader Ċ import Ġjavax . swing . Icon Ċ Ċ /** Ċ Ġ* Ġ@ author ĠN ic ola ĠVer bee ck Ċ Ġ*/ Ċ class ĠSvg Icon ( private Ġval Ġimage : ĠBufferedImage , Ġprivate Ġval Ġwidth : ĠInt , Ġprivate Ġval Ġheight : ĠInt ) Ġ: ĠIcon Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġload ( svg : ĠString , Ġw : ĠInt , Ġh : ĠInt ): ĠSvg Icon ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠBufferedImage Trans coder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( w Ġ!= Ġ 0 Ġ&& Ġh Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . set Dimensions ( w , Ġh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcss File Ġ= ĠFile . create TempFile (" bat ik - default - override -", Ġ". css ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcss Ġ= Ġ" svg Ġ{" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" shape - rendering : Ġge ometric Precision ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" text - rendering : Ġ Ġge ometric Precision ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" color - rendering : Ġoptimize Quality ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" image - rendering : Ġoptimize Quality ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss File . write Text ( css ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . put Hint ( Image Trans coder . KEY _ USER _ STY LES HE ET _ URI , Ġcss File . to URI (). toString ()); ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . trans code ( Trans coder Input ( String Reader ( svg )), Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . buffered Image ?. let Ġ{ ĠSvg Icon ( it , Ġit . width , Ġit . height ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss File . delete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpaint Icon ( c : ĠComponent ?, Ġg : ĠGraphics , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġg . drawImage ( image , Ġx , Ġy , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Icon Width (): ĠInt Ġ= Ġwidth ĊĊĠĠĠ Ġoverride Ġfun Ġget Icon Height (): ĠInt Ġ= Ġheight Ċ Ċ } Ċ Ċ private Ġclass ĠBufferedImage Trans coder Ġ: ĠImage Trans coder () Ġ{ ĊĠĠĠ Ġvar Ġbuffered Image : ĠBufferedImage ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Image ( width : ĠInt , Ġheight : ĠInt ): ĠBufferedImage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImage Util . create Image ( width , Ġheight , ĠBufferedImage . TYPE _ INT _ ARGB ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite Image ( img : ĠBufferedImage , Ġoutput : ĠTrans coder Output ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffered Image Ġ= Ġimg ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Dimensions ( w : ĠInt , Ġh : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠJ BU IS cale . sys Scale ( null Ġas ĠGraphics Configuration ?) ĊĊĠĠĠĠĠĠĠ Ġhints [ KEY _ WIDTH ] Ġ= Ġw . toFloat () Ġ* Ġscale ĊĠĠĠĠĠĠĠ Ġhints [ KEY _ HEIGHT ] Ġ= Ġh . toFloat () Ġ* Ġscale ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput Hint ( key : ĠTrans coding Hints . Key , Ġhint : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhints [ key ] Ġ= Ġhint ĊĠĠĠ Ġ} Ċ }