/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . android . tools . idea . gradle . project . upgrade Ċ Ċ import Ġcom . intellij . find . find Usage s . Psi Element 2 Usage Target Adapter Ċ import Ġcom . intellij . navigation . Item Presentation Ċ import Ġcom . intellij . navigation . Psi Element Navigation Item Ċ import Ġcom . intellij . openapi . action System . DataProvider Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . file Editor . File Editor Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . us ages . Configurable Usage Target Ċ import Ġcom . intellij . us ages . Psi Element Usage Target Ċ import Ġcom . intellij . us ages . Usage Target Ċ import Ġjavax . swing . Action Ċ Ċ /** Ċ Ġ* ĠThe ĠUsage View Ġ( preview ) Ġwindow Ġincludes Ġa Ġtoolbar Ġri bb on , Ġwhich Ġitself Ġincludes Ġa Ġsettings Ġbutton Ġif : Ċ Ġ* Ġ- Ġthe Ġrefactoring Ġusage View Descriptor Ġcontains Ġat Ġleast Ġone Ġtarget , Ġand ; Ċ Ġ* Ġ- Ġthe Ġtarget Ġis Ġa ĠConfigur able Usage Target . Ċ Ġ* Ċ Ġ* ĠIn Ġorder Ġto Ġwork Ġaround Ġthe Ġbug Ġin Ġthe ĠUsage View Ġleading Ġto Ġinconsistent Ġtree Ġviews Ġwhen Ġfind Usage s Ġis Ġre - executed , Ġwe Ġalways Ġhave Ċ Ġ* Ġa Ġtarget , Ġgenerating Ġ[ Psi Element 2 Usage Target Adapter ] s Ġfrom Ġour Ġ[ Wrapped Psi Element ] s . Ġ ĠHowever : Ġthe ĠPsi Element 2 Usage Target Adapter Ċ Ġ* Ġimplements Ġ[ Configurable Usage Target ], Ġwhich Ġleads Ġto Ġa Ġsettings Ġicon Ġeven Ġif Ġour Ġrefactoring Ġhas Ġno Ġmeaningful Ġsettings ; Ġand Ġthe Ċ Ġ* Ġimplementation Ġof Ġshow Settings () Ġon Ġ[ Psi Element 2 Usage Target Adapter ] Ġin Ġany Ġcase Ġdoes Ġnot Ġdo Ġwhat Ġwe Ġwant , Ġin Ġa Ġnon - override able Ġway . Ċ Ġ* Ċ Ġ* ĠTherefore , Ġinstead Ġof Ġusing Ġraw Ġ[ Psi Element 2 Usage Target Adapter ] s , Ġwe Ġwrap Ġthem Ġin Ġone Ġof Ġthese Ġdeleg ating Ġclasses : Ġone Ġwhich Ġimplements Ċ Ġ* Ġ[ Usage Target ], Ġfor Ġuse Ġwhen Ġthere Ġis Ġno Ġsuitable Ġshow Settings () Ġaction , Ġand Ġone Ġwhich Ġimplements Ġ[ Configurable Usage Target ], Ġwhen Ġthere Ċ Ġ* Ġis . Ċ Ġ*/ Ċ internal Ġclass ĠWr apped Usage Target ( ĊĠ Ġprivate Ġval Ġusage Target : ĠPsi Element 2 Usage Target Adapter Ċ ): ĠPsi Element Usage Target Ġby Ġusage Target , ĊĠĠ ĠData Provider Ġby Ġusage Target , ĊĠĠ ĠPsi Element Navigation Item Ġby Ġusage Target , ĊĠĠ ĠItem Presentation Ġby Ġusage Target , ĊĠĠ ĠUsage Target Ġby Ġusage Target Ġ{ ĊĠ Ġ// ĠWe Ġneed Ġthese Ġoverrides Ġ( here Ġand Ġin ĠWr apped Configurable Usage Target ) Ġbecause Ġof Ġmultiple Ġimplementations ĊĠ Ġoverride Ġfun Ġcan Navigate () Ġ= Ġusage Target . can Navigate () ĊĠ Ġoverride Ġfun Ġnavigate ( request Focus : ĠBoolean ) Ġ= Ġusage Target . navigate ( request Focus ) ĊĠ Ġoverride Ġfun ĠgetName () Ġ= Ġusage Target . getName () ĊĠ Ġoverride Ġfun Ġfind Usage s () Ġ= Ġusage Target . find Usage s () ĊĠ Ġoverride Ġfun Ġcan Navigate To Source () Ġ= Ġusage Target . can Navigate To Source () ĊĠ Ġoverride Ġfun ĠisValid () Ġ= Ġusage Target . isValid () ĊĠ Ġoverride Ġfun Ġget Presentation () Ġ= Ġusage Target . get Presentation () ĊĠ Ġ// ĠWe Ġneed Ġthese Ġbecause Ġotherwise Ġthe Ġdefault Ġmethods Ġget Ġcalled ĊĠ Ġoverride Ġfun Ġfind Usage s In Editor ( editor : ĠFile Editor ) Ġ= Ġusage Target . find Usage s In Editor ( editor ) ĊĠ Ġoverride Ġfun Ġhighlight Usage s ( file : ĠPsi File , Ġeditor : ĠEditor , Ġclear Highlight s : ĠBoolean ) Ġ= ĊĠĠĠ Ġusage Target . highlight Usage s ( file , Ġeditor , Ġclear Highlight s ) ĊĠ Ġoverride Ġfun Ġis ReadOnly () Ġ= Ġusage Target . is ReadOnly () ĊĠ Ġoverride Ġfun Ġget Files () Ġ= Ġusage Target . get Files () ĊĠ Ġoverride Ġfun Ġupdate () Ġ= Ġusage Target . update () Ċ } Ċ Ċ internal Ġclass ĠWr apped Configurable Usage Target ( ĊĠ Ġprivate Ġval Ġusage Target : ĠPsi Element 2 Usage Target Adapter , ĊĠ Ġprivate Ġval Ġshow Settings Action : ĠAction Ċ ): ĠPsi Element Usage Target Ġby Ġusage Target , ĊĠĠ ĠData Provider Ġby Ġusage Target , ĊĠĠ ĠPsi Element Navigation Item Ġby Ġusage Target , ĊĠĠ ĠItem Presentation Ġby Ġusage Target , ĊĠĠ ĠConfigur able Usage Target Ġby Ġusage Target Ġ{ ĊĠ Ġoverride Ġfun Ġcan Navigate () Ġ= Ġusage Target . can Navigate () ĊĠ Ġoverride Ġfun Ġnavigate ( request Focus : ĠBoolean ) Ġ= Ġusage Target . navigate ( request Focus ) ĊĠ Ġoverride Ġfun ĠgetName () Ġ= Ġusage Target . getName () ĊĠ Ġoverride Ġfun Ġfind Usage s () Ġ= Ġusage Target . find Usage s () ĊĠ Ġoverride Ġfun Ġcan Navigate To Source () Ġ= Ġusage Target . can Navigate To Source () ĊĠ Ġoverride Ġfun ĠisValid () Ġ= Ġusage Target . isValid () ĊĠ Ġoverride Ġfun Ġget Presentation () Ġ= Ġusage Target . get Presentation () ĊĊĠ Ġoverride Ġfun Ġfind Usage s In Editor ( editor : ĠFile Editor ) Ġ= Ġusage Target . find Usage s In Editor ( editor ) ĊĠ Ġoverride Ġfun Ġhighlight Usage s ( file : ĠPsi File , Ġeditor : ĠEditor , Ġclear Highlight s : ĠBoolean ) Ġ= ĊĠĠĠ Ġusage Target . highlight Usage s ( file , Ġeditor , Ġclear Highlight s ) ĊĠ Ġoverride Ġfun Ġis ReadOnly () Ġ= Ġusage Target . is ReadOnly () ĊĠ Ġoverride Ġfun Ġget Files () Ġ= Ġusage Target . get Files () ĊĠ Ġoverride Ġfun Ġupdate () Ġ= Ġusage Target . update () ĊĊĠ Ġoverride Ġfun Ġshow Settings () Ġ= Ġshow Settings Action . action Performed ( null ) Ċ }