package Ġnl . h ann ah sten . tex ify idea . run Ċ Ċ import Ġcom . intellij . execution . process . Process Event Ċ import Ġcom . intellij . execution . process . Process Listener Ċ import Ġcom . intellij . openapi . util . Key Ċ import Ġnl . h ann ah sten . tex ify idea . TeX ception Ċ import Ġnl . h ann ah sten . tex ify idea . run . latex . Lat ex Run Configuration Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠRun Ġthe Ġgiven Ġcommand Ġafter Ġthe Ġprocess Ġhas Ġsucceeded . Ċ Ġ*/ Ċ class ĠOpen Custom Pdf Viewer Listener ( val Ġcommand : ĠArray < String >, Ġval Ġfail Sil ently : ĠBoolean Ġ= Ġfalse , Ġval Ġrun Config : ĠLat ex Run Configuration ) Ġ: ĠProcess Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġprocess Terminated ( event : ĠProcess Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . exit Code Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProcess Builder (* command ). start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! fail Sil ently ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTe X ception (" An Ġerror Ġoccured Ġwhen Ġtrying Ġto Ġopen Ġthe Ġpdf Ġusing Ġ$ command Ġwith Ġmessage Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠReset Ġto Ġdefault ĊĠĠĠĠĠĠĠ Ġrun Config . allow Focus Change Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprocess Will Terminate ( event : ĠProcess Event , Ġwill Be Destroyed : ĠBoolean ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Not ified ( event : ĠProcess Event ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Text Available ( event : ĠProcess Event , Ġoutput Type : ĠKey <* >) Ġ{ ĊĠĠĠ Ġ} Ċ }