/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠAir sa id . Ġhttps :// github . com / air sa id Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . air sa id . insp ire writing Ċ Ċ import Ġcom . air sa id . insp ire writing . config . Plugin Config Ċ import Ġcom . air sa id . insp ire writing . handler . Listener Action Handler Ċ import Ġcom . air sa id . insp ire writing . utils . Background Util Ċ import Ġcom . air sa id . insp ire writing . utils . Notification Util Ċ import Ġcom . intellij . openapi . components . Base Component Ċ import Ġcom . intellij . openapi . editor . action System . Editor Action Manager Ċ import Ġcom . intellij . openapi . progress . Progress Indicator Ċ import Ġcom . intellij . openapi . progress . Progress Manager Ċ import Ġcom . intellij . openapi . progress . Task Ċ import Ġcom . intellij . openapi . project . Project Manager Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġ@ author Ġair sa id Ċ Ġ*/ Ċ class ĠIn sp ire Writing Ġ: ĠBase Component Ġ{ ĊĊĠ Ġprivate Ġval Ġimages Paths Ġ= Ġmutable ListOf < String >() ĊĠ Ġprivate Ġlateinit Ġvar Ġhandler : ĠListener Action Handler ĊĊĠ Ġoverride Ġfun Ġinit Component () Ġ{ ĊĠĠĠ Ġsuper . init Component () ĊĠĠĠ Ġval Ġtyped Action Ġ= ĠEditor Action Manager . getInstance (). typed Action ĊĠĠĠ Ġhandler Ġ= ĠListener Action Handler ( typed Action . handler , ĠPlugin Config . getInput Count ()) Ġ{ ĊĠĠĠĠĠ Ġchange Background Image () ĊĠĠĠ Ġ} ĊĠĠĠ Ġtyped Action . setup Handler ( handler ) ĊĠĠĠ Ġupdate Images Path () ĊĠ Ġ} ĊĊĠ Ġfun Ġset Input Count ( count : ĠInt ) Ġ{ ĊĠĠĠ Ġhandler . setMax Count ( count ) ĊĠ Ġ} ĊĊĠ Ġfun Ġupdate Images Path () Ġ{ ĊĠĠĠ Ġval Ġproject Ġ= ĠProject Manager . getInstance (). default Project ĊĠĠĠ ĠProgress Manager . getInstance (). run ( object Ġ: ĠTask . Background able ( project , Ġ" Find Ġimages ...", Ġfalse ) Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġrun ( indicator : ĠProgress Indicator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimages Dir Ġ= ĠFile ( Plugin Config . get Images Path ()) ĊĠĠĠĠĠĠĠ Ġimages Paths . clear () ĊĠĠĠĠĠĠĠ Ġimages Paths . addAll ( images Dir . walk () ĊĠĠĠĠĠĠĠĠĠ Ġ. max Depth ( 1 ) ĊĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isFile Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . extension Ġin ĠlistOf (" png ", Ġ" jpg ", Ġ" jpeg ") Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator . text Ġ= Ġ" Found Ġ${ it . name } Ġimage ..." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . path ĊĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( images Paths . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠNotification Util . notify Warning ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġimage Ġfile Ġis Ġnot Ġfound Ġin Ġthe Ġpath . ĠPlease Ġcheck Ġ${ images Dir . path } Ġpath ." ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġchange Background Image () Ġ{ ĊĠĠĠ Ġif Ġ( images Paths . isEmpty ()) Ġreturn ĊĊĠĠĠ Ġval Ġpath Ġ= Ġimages Paths . random () ĊĠĠĠ ĠBackground Util . update Background ( path ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġdispose Component () Ġ{ ĊĠĠĠ Ġsuper . dispose Component () ĊĠĠĠ Ġhandler . dispose () ĊĠ Ġ} Ċ Ċ }