@ file : Suppress (" unused ") Ċ Ċ package Ġcn . yi ig ux ing . plugin . translate . service Ċ Ċ import Ġcn . yi ig ux ing . plugin . translate . ui . Instant Translation Dialog Ċ import Ġcn . yi ig ux ing . plugin . translate . ui . Translation Bal loon Ċ import Ġcn . yi ig ux ing . plugin . translate . ui . Translation Dialog Ċ import Ġcn . yi ig ux ing . plugin . translate . ui . word book . Word Of The Day Dialog Ċ import Ġcn . yi ig ux ing . plugin . translate . util . Application Ċ import Ġcn . yi ig ux ing . plugin . translate . util . check Dispatch Thread Ċ import Ġcn . yi ig ux ing . plugin . translate . util . d Ċ import Ġcn . yi ig ux ing . plugin . translate . word book . Word Book Item Ċ import Ġcom . intellij . ide . App Lifecycle Listener Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . components . Service Manager Ċ import Ġcom . intellij . openapi . diagnostic . Logger Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Dialog Wrapper Ċ import Ġcom . intellij . openapi . ui . popup . Bal loon Ċ import Ġcom . intellij . openapi . util . Dis poser Ċ import Ġcom . intellij . util . ui . Position Tracker Ċ import Ġkotlin . collections . component 1 Ċ import Ġkotlin . collections . component 2 Ċ import Ġkotlin . collections . set Ċ Ċ /** Ċ Ġ* ĠTranslation UI Manager Ċ Ġ*/ Ċ class ĠTranslation UI Manager Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbal loon Map : ĠMutable Map < Project ?, ĠTranslation Bal loon > Ġ= ĠHashMap () ĊĠĠĠ Ġprivate Ġval Ġdialog Map : ĠMutable Map < Project ?, ĠTranslation Dialog > Ġ= ĠHashMap () ĊĠĠĠ Ġprivate Ġval Ġinstant Translation Dialog Map : ĠMutable Map < Project ?, ĠInstant Translation Dialog > Ġ= ĠHashMap () ĊĠĠĠ Ġprivate Ġval Ġword Of The Day Dialog Map : ĠMutable Map < Project ?, ĠWord Of The Day Dialog > Ġ= ĠHashMap () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠApplication . message Bus . connect (). subscribe ( App Lifecycle Listener . TOPIC , Ġobject Ġ: ĠApp Lifecycle Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġapp Closing () Ġ= Ġdispose UI () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º æ°Ķ æ³ ¡ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġeditor ĠĠ Ġ ç¼ĸè¾ĳ åĻ¨ ĊĠĠĠĠ Ġ* Ġ@ param Ġtext ĠĠĠĠ ĠæŁ¥è¯¢ åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* Ġ@ param Ġtracker Ġ Ġ ä½įç½® è·Ł è¸ª åĻ¨ ĊĠĠĠĠ Ġ* Ġ@ param Ġposition Ġæ ° Ķ æ³ ¡ ä½įç½® ĊĠĠĠĠ Ġ* Ġ@ return Ġæ ° Ķ æ³ ¡ å®ŀä¾ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Bal loon ( editor : ĠEditor , Ġtext : ĠString , Ġtracker : ĠPosition Tracker < Bal loon >, Ġposition : ĠBal loon . Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠTranslation Bal loon Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Thread () ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġeditor . project ĊĠĠĠĠĠĠĠ Ġbal loon Map [ project ]?. hide () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠTranslation Bal loon ( editor , Ġtext ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbal loon Map [ project ] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDis poser . register ( it , ĠDis posable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Thread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbal loon Map . remove ( project , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . show ( tracker , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġå¯¹ è¯Ŀ æ¡Ĩ å®ŀä¾ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Dialog ( project : ĠProject ?): ĠTranslation Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshow Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Map ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĠTranslation Dialog ( project ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġå¯¹ è¯Ŀ æ¡Ĩ å®ŀä¾ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Instant Translation Dialog ( project : ĠProject ?): ĠInstant Translation Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshow Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstant Translation Dialog Map ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĠInstant Translation Dialog ( project ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º æ¯ı æĹ¥ åįķ è¯į å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġå¯¹ è¯Ŀ æ¡Ĩ å®ŀä¾ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Word Of The Day Dialog ( project : ĠProject ?, Ġwords : ĠList < Word Book Item >): ĠWord Of The Day Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshow Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword Of The Day Dialog Map , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġit . set Words ( words ) Ġ}) Ġ{ ĠWord Of The Day Dialog ( project , Ġwords ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ³éĹŃ æĺ¾ç¤º ä¸ŃçļĦ æ°Ķ æ³ ¡ åĴĮ å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdispose UI ( project : ĠProject ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Thread () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( project Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( _, Ġbal loon ) Ġin Ġbal loon Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbal loon . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( _, Ġdialog ) Ġin Ġdialog Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( _, Ġdialog ) Ġin Ġinstant Translation Dialog Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbal loon Map [ project ]?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Map [ project ]?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstant Translation Dialog Map [ project ]?. close () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLOGGER . d (" Dispose Ġproject 's ĠUI : Ġproject =$ project ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOGGER : ĠLogger Ġ= ĠLogger . getInstance ( Translation UI Manager :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠTranslation UI Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠService Manager . getService ( Translation UI Manager :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcheck Thread () Ġ= Ġcheck Dispatch Thread ( Translation UI Manager :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġinline Ġfun Ġ< D Ġ: ĠDialog Wrapper > Ġshow Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject : ĠProject ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache : ĠMutable Map < Project ?, ĠD >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Before Show : Ġ( D ) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog : Ġ() Ġ-> ĠD ĊĠĠĠĠĠĠĠ Ġ): ĠD Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Thread () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcache . get Or Put ( project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcache [ project ] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDis poser . register ( it . dis posable , ĠDis posable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Thread () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcache . remove ( project , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Before Show ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }