/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 - 2 0 2 0 ĠRe ece ĠH . ĠD un n Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġuk . co . re ec ed un n . intellij . plugin . processor . run . execution . ui Ċ Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . ui . table . TableView Ċ import Ġuk . co . re ec ed un n . intellij . plugin . core . ui . layout . column Info Ċ import Ġuk . co . re ec ed un n . intellij . plugin . core . ui . layout . columns Ċ import Ġuk . co . re ec ed un n . intellij . plugin . processor . query . QueryResult Ċ import Ġuk . co . re ec ed un n . intellij . plugin . processor . resources . Plugin Api Bundle Ċ import Ġjavax . swing . J ScrollPane Ċ Ċ data Ġclass ĠQuery Result Reference ( private Ġval Ġtext Offset : ĠInt , Ġinternal Ġvar Ġelement : ĠPsi Element ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġoffset : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġelement ?. text Offset Ġ?: Ġtext Offset Ċ } Ċ Ċ private Ġval ĠRESULT _ INDEX _ COLUMN Ġ= Ġcolumn Info < Pair < QueryResult , ĠQuery Result Reference >, ĠLong >( ĊĠĠĠ Ġheading Ġ= ĠPlugin Api Bundle . message (" query . result . table . index . column . label "), ĊĠĠĠ Ġgetter Ġ= Ġ{ Ġ( first ) Ġ-> Ġfirst . position Ġ}, ĊĠĠĠ Ġsortable Ġ= Ġfalse Ċ ) Ċ Ċ private Ġval ĠRESULT _ ITEM _ TYPE _ COLUMN Ġ= Ġcolumn Info < Pair < QueryResult , ĠQuery Result Reference >, ĠString >( ĊĠĠĠ Ġheading Ġ= ĠPlugin Api Bundle . message (" query . result . table . item - type . column . label "), ĊĠĠĠ Ġgetter Ġ= Ġ{ Ġ( first ) Ġ-> Ġfirst . type Ġ}, ĊĠĠĠ Ġsortable Ġ= Ġfalse Ċ ) Ċ Ċ private Ġval ĠRESULT _ MIME _ TYPE _ COLUMN Ġ= Ġcolumn Info < Pair < QueryResult , ĠQuery Result Reference >, ĠString >( ĊĠĠĠ Ġheading Ġ= ĠPlugin Api Bundle . message (" query . result . table . mime - type . column . label "), ĊĠĠĠ Ġgetter Ġ= Ġ{ Ġ( first ) Ġ-> Ġfirst . mime type Ġ}, ĊĠĠĠ Ġsortable Ġ= Ġfalse Ċ ) Ċ Ċ class ĠQuery Result Table Ġ: ĠTable View < Pair < QueryResult , ĠQuery Result Reference >> (), ĠQuery Table Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcolumns Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( RESULT _ INDEX _ COLUMN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( RESULT _ ITEM _ TYPE _ COLUMN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( RESULT _ MIME _ TYPE _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Enable Ant ialias ing ( true ) ĊĊĠĠĠĠĠĠĠ Ġupdate Empty Text ( running Ġ= Ġfalse , Ġexception Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Empty Text ( running : ĠBoolean , Ġexception : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception Ġ-> Ġempty Text . text Ġ= ĠPlugin Api Bundle . message (" query . result . table . has - exception ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrunning Ġ-> Ġempty Text . text Ġ= Ġrunning Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġempty Text . text Ġ= ĠPlugin Api Bundle . message (" query . result . table . no - results ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġrunning Text : ĠString Ġ= ĠPlugin Api Bundle . message (" query . result . table . results - pending ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Empty Text ( isRunning , Ġhas Exception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Running : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Empty Text ( isRunning , Ġhas Exception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġhas Exception : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Empty Text ( isRunning , Ġhas Exception ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġitem Count : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrow Count ĊĊĠĠĠ Ġfun Ġadd Row ( entry : ĠQuery Result , Ġoffset : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlist TableModel . add Row ( Pair ( entry , ĠQuery Result Reference ( offset ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Query References ( psi File : ĠPsi File ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġitem Count ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġlist TableModel . getItem ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . second . element Ġ= Ġpsi File . findElement At ( item . second . offset ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠJ ScrollPane . query Result Table ( init : ĠQuery Result Table . () Ġ-> ĠUnit ): ĠQuery Result Table Ġ{ ĊĠĠĠ Ġval Ġview Ġ= ĠQuery Result Table () ĊĠĠĠ Ġview . init () ĊĠĠĠ Ġset Viewport View ( view ) ĊĠĠĠ Ġreturn Ġview Ċ } Ċ