package Ġru . y ole . jit watch Ċ Ċ import Ġcom . intellij . notification . Notification Ċ import Ġcom . intellij . notification . Notification Type Ċ import Ġcom . intellij . notification . Notifications Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Descriptor Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Factory Ċ import Ġcom . intellij . openapi . project . D umb Aware Action Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . wm . Tool Window Anchor Ċ import Ġcom . intellij . openapi . wm . Tool WindowManager Ċ import Ġcom . intellij . ui . content . Content Factory Ċ import Ġjava . io . File Ċ Ċ class ĠLoad Log Action Ġ: ĠAn Action () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġe . project Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġfile Chooser Descriptor Ġ= ĠFile Chooser Descriptor ( true , Ġfalse , Ġfalse , Ġfalse , Ġfalse , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġfile Chooser Ġ= ĠFile Chooser Factory . getInstance (). create FileChooser ( file Chooser Descriptor , Ġproject , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġlog File Ġ= Ġfile Chooser . choose ( project ). single OrNull () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġload Log And Show UI ( project , ĠFile ( log File . path )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . presentation . isEnabled Ġ= Ġe . project Ġ!= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġload Log And Show UI ( project : ĠProject , Ġlog File : ĠFile ) Ġ{ ĊĠĠ Ġregister Tool Windows ( project ) ĊĊĠĠĠ ĠJ it Watch Model Service . getInstance ( project ). load Log ( log File ) Ġ{ Ġerrors Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ(! errors . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotifications . Bus . notify ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification (" J it Watch ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Log Ġparse Ġfailed ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors . first (). first , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Type . ERROR )) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTool WindowManager . getInstance ( project ). get Tool Window ( J it Report Tool Window . ID ). activate ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġregister Tool Windows ( project : ĠProject ) Ġ{ ĊĠĠĠ Ġval Ġtool WindowManager Ġ= ĠTool WindowManager . getInstance ( project ) ĊĠĠĠ Ġval Ġexisting Tool Window Ġ= ĠJ it Tool Window . get Tool Window ( project ) ĊĠĠĠ Ġif Ġ( existing Tool Window Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjit Watch Tool Window Ġ= Ġtool WindowManager . register Tool Window ( J it Tool Window . ID , Ġfalse , ĠTool Window Anchor . RIGHT , Ġproject , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġjit Watch Tool Window . content Manager . add Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContent Factory . SERVICE . getInstance (). create Content ( J it Tool Window ( project ), Ġ"", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreport Tool Window Ġ= Ġtool WindowManager . register Tool Window ( J it Report Tool Window . ID , Ġfalse , ĠTool Window Anchor . BOTTOM , Ġproject , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġreport Tool Window . content Manager . add Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContent Factory . SERVICE . getInstance (). create Content ( J it Report Tool Window ( project ), Ġ"", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠClose Log Action Ġ: ĠD umb Aware Action () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġe . project Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ ĠJ it Watch Model Service . getInstance ( project ). close Log () ĊĊĠĠĠĠĠĠĠ Ġval Ġtool WindowManager Ġ= ĠTool WindowManager . getInstance ( project ) ĊĠĠĠĠĠĠĠ Ġtool WindowManager . unregister Tool Window ( J it Tool Window . ID ) ĊĠĠĠĠĠĠĠ Ġtool WindowManager . unregister Tool Window ( J it Report Tool Window . ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġe . project ĊĠĠĠĠĠĠĠ Ġe . presentation . isEnabled Ġ= Ġproject Ġ!= Ġnull Ġ&& ĠJ it Watch Model Service . getInstance ( project ). model Ġ!= Ġnull ĊĠĠĠ Ġ} Ċ }