package Ġio . sn yk . plugin . ui . tool window Ċ Ċ import Ġai . deep code . javac lient . core . Suggestion For File Ċ import Ġcom . intellij . openapi . components . service Ċ import Ġcom . intellij . openapi . util . Icon able Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . ui . Colo red Tree Cell Renderer Ċ import Ġcom . intellij . ui . Simple Text Attributes Ċ import Ġcom . intellij . util . Icon Util Ċ import Ġcom . intellij . util . ui . UI Util Ċ import Ġicons . S ny k Icons Ċ import Ġs ny k . oss . O ss V ulnerabilities For File Ċ import Ġs ny k . oss . V ulnerability Ċ import Ġio . sn yk . plugin . plugin Settings Ċ import Ġio . sn yk . plugin . sn yk code . core . Analysis Data Ċ import Ġio . sn yk . plugin . sn yk code . severity AsString Ċ import Ġio . sn yk . plugin . ui . PackageManager Icon Provider Ċ import Ġio . sn yk . plugin . ui . sn yk Code Availability Post fix Ċ import Ġs ny k . iac . I ac Issue Ċ import Ġs ny k . iac . I ac Issues For File Ċ import Ġs ny k . iac . ui . tool window . I ac File TreeNode Ċ import Ġs ny k . iac . ui . tool window . I ac Issue TreeNode Ċ import Ġjava . awt . Color Ċ import Ġjavax . swing . Icon Ċ import Ġjavax . swing . J Tree Ċ Ċ class ĠV ulnerability Tree Cell Renderer Ġ: ĠCo lo red Tree Cell Renderer () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcustomize Cell Renderer ( ĊĠĠĠĠĠĠĠ Ġtree : ĠJ Tree , ĊĠĠĠĠĠĠĠ Ġvalue : ĠAny , ĊĠĠĠĠĠĠĠ Ġselected : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġexpanded : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġleaf : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġrow : ĠInt , ĊĠĠĠĠĠĠĠ Ġhas Focus : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġnode Icon : ĠIcon ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġtext : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġattributes Ġ= ĠSimple Text Attributes . REG ULAR _ ATTRIBUTES ĊĠĠĠĠĠĠĠ Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠV ulnerability TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvulnerability Ġ= Ġ( value . user Object Ġas ĠCollection < V ulnerability >). first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . get Severity Icon ( v ulnerability . severity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġvulnerability . get PackageName Title () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Window Panel Ġ= Ġvalue . project . service < S ny k Tool Window Panel >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tool Window Panel . current O ss Results Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġget Disabled Icon ( node Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFile TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoss V ulnerabilities For File Ġ= Ġvalue . user Object Ġas ĠO ss V ulnerabilities For File ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠPackage Manager Icon Provider . get Icon ( oss V ulnerabilities For File . package Manager . toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġoss V ulnerabilities For File . display Target File ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Window Panel Ġ= Ġvalue . project . service < S ny k Tool Window Panel >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tool Window Panel . current O ss Results Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ+= Ġ" Ġ( ob solete )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġget Disabled Icon ( node Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSuggest ion TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( suggestion , Ġindex ) Ġ= Ġvalue . user Object Ġas ĠPair < Suggestion For File , ĠInt > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . get Severity Icon ( suggestion . severity AsString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrange Ġ= Ġsuggestion . ranges [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" line Ġ${ range . start Row }: Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( suggestion . title . isNull OrEmpty ()) Ġsuggestion . message Ġelse Ġsuggestion . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent File Node Ġ= Ġvalue . parent Ġas ĠS ny k Code File TreeNode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Analysis Data . instance . isFile In Cache ( parent File Node . user Object Ġas ĠPsi File )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġget Disabled Icon ( node Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠS ny k Code File TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġvalue . user Object Ġas ĠPsi File ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġfile . get Icon ( Icon able . ICON _ FLAG _ READ _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġfile . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Analysis Data . instance . isFile In Cache ( file )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ+= Ġ" Ġ( ob solete )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġget Disabled Icon ( node Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠI ac File TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi ac V ulnerabilities For File Ġ= Ġvalue . user Object Ġas ĠI ac Issues For File ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠPackage Manager Icon Provider . get Icon ( iac V ulnerabilities For File . package Manager . toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġi ac V ulnerabilities For File . target File ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Window Panel Ġ= Ġvalue . project . service < S ny k Tool Window Panel >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tool Window Panel . current I ac Result Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ+= Ġ" Ġ( ob solete )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġget Disabled Icon ( node Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠI ac Issue TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġissue Ġ= Ġ( value . user Object Ġas ĠI ac Issue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . get Severity Icon ( issue . severity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( issue . line Number Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" line Ġ${ issue . line Number }: Ġ${ issue . title }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissue . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Window Panel Ġ= Ġvalue . project . service < S ny k Tool Window Panel >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tool Window Panel . current I ac Result Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= Ġget Disabled Icon ( node Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRoot O ss TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġplugin Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! settings . oss Scan Enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . OPEN _ SOURCE _ SECURITY _ DISABLED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠS ny k Tool Window Panel . OSS _ ROOT _ TEXT Ġ+ Ġ" Ġ( disabled )" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . OPEN _ SOURCE _ SECURITY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġvalue . user Object . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . REG ULAR _ BOLD _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRoot Security Issues TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġplugin Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! settings . sn yk Code Security Issues Scan Enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . SN YK _ CODE _ DISABLED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavailability Post fix Ġ= Ġs ny k Code Availability Post fix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠS ny k Tool Window Panel . SN YK CODE _ SECURITY _ ISS UES _ ROOT _ TEXT Ġ+ Ġavailability Post fix . if Empty Ġ{ Ġ" Ġ( disabled )" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . SN YK _ CODE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġvalue . user Object . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . REG ULAR _ BOLD _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRoot Quality Issues TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġplugin Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! settings . sn yk Code Quality Issues Scan Enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . SN YK _ CODE _ DISABLED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavailability Post fix Ġ= Ġs ny k Code Availability Post fix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠS ny k Tool Window Panel . SN YK CODE _ QUAL ITY _ ISS UES _ ROOT _ TEXT Ġ+ Ġavailability Post fix . if Empty Ġ{ Ġ" Ġ( disabled )" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . SN YK _ CODE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġvalue . user Object . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . REG ULAR _ BOLD _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRoot I ac Issues TreeNode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġplugin Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! settings . iac Scan Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . I AC _ DISABLED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavailability Post fix Ġ= Ġs ny k Code Availability Post fix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠS ny k Tool Window Panel . I AC _ ROOT _ TEXT Ġ+ Ġavailability Post fix . if Empty Ġ{ Ġ" Ġ( disabled )" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Icon Ġ= ĠS ny k Icons . I AC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġvalue . user Object . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠSimple Text Attributes . REG ULAR _ BOLD _ ATTRIBUTES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġicon Ġ= Ġnode Icon ĊĠĠĠĠĠĠĠ Ġfont Ġ= ĠUI Util . get Tree Font () ĊĠĠĠĠĠĠĠ Ġtext ?. let Ġ{ Ġappend ( it , Ġattributes ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Disabled Icon ( original Icon : ĠIcon ?) Ġ= ĊĠĠĠĠĠĠĠ Ġoriginal Icon ?. let Ġ{ ĠIcon Util . color ize ( it , ĠColor . LIGHT _ GRAY ) Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠGR AY ED _ STRI KE OUT _ ATTRIBUTES Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Text Attributes ( Simple Text Attributes . STYLE _ STRI KE OUT , ĠUI Util . get Inactive TextColor ()) ĊĠĠĠ Ġ} Ċ } Ċ