package Ġcom . intellij . idea . review comment . ui Ċ Ċ import Ġcom . intellij . icons . All Icons Ċ import Ġcom . intellij . idea . review comment . model . Comment Ċ import Ġcom . intellij . idea . review comment . model . Note Ċ import Ġcom . intellij . idea . review comment . model . Review Comments Repository Ċ import Ġcom . intellij . openapi . action System . Action Group Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . action System . Default Action Group Ċ import Ġcom . intellij . openapi . editor . markup . G utter Icon Renderer Ċ import Ġcom . intellij . openapi . project . D umb Aware Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġjavax . swing . Icon Ċ Ċ class ĠMy G utter Icon Renderer ( private Ġval Ġmy Project : ĠProject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmy File : ĠVirtual File , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmy Comment : ĠComment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmy Comments Repo : ĠReview Comments Repository Ċ ) Ġ: ĠG utter Icon Renderer (), ĠD umb Aware Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġget NumberOf Notes (): ĠInt Ġ= Ġmy Comment . notes . size ĊĊĠĠĠ Ġprivate Ġfun Ġopen Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnote Ġ= ĠNote () ĊĠĠĠĠĠĠĠ Ġopen Dialog ( my Comment , Ġnote ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Dialog ( comment : ĠComment , Ġnote : ĠNote ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠEdit Comment Dialog ( my Project , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġnew Comment Ġ-> Ġmy Comments Repo . update Comment ( my File , Ġcomment , Ġnew Comment ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment , Ġnote ) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget PopupMenu Actions (): ĠAction Group ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpopup Menu Actions List Ġ= Ġget PopupMenu Actions List () ĊĠĠĠĠĠĠĠ Ġpopup Menu Actions List . isEmpty () Ġ&& Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġpopup Action Ġ= ĠDefault Action Group () ĊĠĠĠĠĠĠĠ Ġfor Ġ( action Ġin Ġpopup Menu Actions List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup Action . add ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġpopup Action ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget PopupMenu Actions List (): ĠList < An Action > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġmutable ListOf < An Action >() ĊĊĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleave Comment Txt Ġ= Ġ" add Ġa Ġreview Ġcomment " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġobject Ġ: ĠAn Action ( leave Comment Txt , Ġleave Comment Txt , ĠAll Icons . General . Add ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactions . add ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfor Ġ( note Ġin Ġmy Comment . notes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġnote Description ( note ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactions . add ( object Ġ: ĠAn Action ( description , Ġdescription , ĠIcons . Actions . COMMENT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog ( my Comment , Ġnote ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresolve Comment Txt Ġ= Ġ" resolve Ġcomment " ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġobject Ġ: ĠAn Action ( resolve Comment Txt , Ġresolve Comment Txt , ĠAll Icons . Actions . Cancel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Comments Repo . update Comment ( my File , Ġmy Comment , Ġmy Comment . to Resolved ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactions . add ( action ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġactions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Click Action (): ĠAn Action Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlast Note Ġ= Ġmy Comment . notes . last () ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġnote Description ( last Note ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġobject Ġ: ĠAn Action ( description , Ġdescription , Ġicon ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog ( my Comment , Ġlast Note ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġaction ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnote Description ( note : ĠNote ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote . get Formatted Timestamp () Ġ+ Ġ": Ġ" Ġ+ Ġnote . author ĊĊĠĠĠ Ġoverride Ġfun Ġget Tooltip Text (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠnumberOf Notes Ġ= Ġget NumberOf Notes () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( numberOf Notes Ġ< Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhtml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfirst Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( note Ġin Ġmy Comment . notes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! first ) Ġbr Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext ( note . author Ġ+ Ġ":" Ġ+ Ġnote . get Formatted Timestamp ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhr Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre Ġ{ Ġtext ( note . comment ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ"$ numberOf Notes Ġreview Ġcomments " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Navigate Action (): ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġget Alignment (): ĠAlignment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAlignment . RIGHT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Icon (): ĠIcon Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( getNumberOf Notes ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠIcons . Actions . COMMENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠIcons . Actions . COMMENTS ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= Ġmy Comment . hashCode () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠMy G utter Icon Renderer ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġmy Comment Ġ== Ġother . my Comment ĊĠĠĠ Ġ} Ċ }