/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 Ġ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 . common . error Ċ Ċ import Ġcom . android . tools . idea . common . command . Nl Write Command Action Util Ċ import Ġcom . android . tools . idea . common . model . Nl Attributes Holder Ċ import Ġcom . android . tools . idea . common . model . Nl Component Ċ import Ġcom . android . tools . idea . common . model . Nl Model Ċ import Ġcom . android . tools . idea . common . surface . Design Surface Ċ import Ġcom . intellij . ide . util . Psi Navigation Support Ċ import Ġcom . intellij . lang . annotation . Highlight Severity Ċ import Ġcom . intellij . pom . Navig atable Ċ import Ġjava . util . stream . Stream Ċ import Ġjavax . swing . event . Hyper link Listener Ċ Ċ data Ġclass ĠN l Component Issue Source ( val Ġcomponent : ĠN l Component ) Ġ: ĠIssue Source , ĠN l Attributes Holder Ġ{ ĊĠ Ġoverride Ġval Ġdisplay Text : ĠString Ġ= ĠlistOf NotNull ( ĊĠĠĠ Ġcomponent . model . model DisplayName , ĊĠĠĠ Ġcomponent . id , ĊĠĠĠ Ġ"< ${ component . tagName }> "). join ToString (" Ġ") ĊĠ Ġoverride Ġval Ġon Issue Selected : Ġ( Design Surface ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠ Ġit . selection Model . setSelection ( listOf ( component )) ĊĊĠĠĠ Ġ// ĠNavigate Ġto Ġthe Ġselected Ġelement Ġif Ġpossible ĊĠĠĠ Ġval Ġelement Ġ= Ġcomponent . backend . tag ?. navigation Element ĊĠĠĠ Ġif Ġ( element Ġis ĠNavig atable Ġ&& ĠPsi Navigation Support . getInstance (). can Navigate ( element )) Ġ{ ĊĠĠĠĠĠ Ġ( element Ġas ĠNavig atable ). navigate ( false ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Attribute ( namespace : ĠString ?, Ġattribute : ĠString ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġcomponent . getAttribute ( namespace , Ġattribute ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġset Attribute ( namespace : ĠString ?, Ġattribute : ĠString , Ġvalue : ĠString ?) Ġ{ ĊĠĠĠ ĠN l Write Command Action Util . run ( component , Ġ" Update Ġissue Ġsource ") Ġ{ ĊĠĠĠĠĠ Ġcomponent . setAttribute ( namespace , Ġattribute , Ġvalue ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun ĠIssue Source . is From Nl Component ( component : ĠN l Component ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġis ĠN l Component Issue Source Ġ&& Ġthis . component Ġ== Ġcomponent Ċ } Ċ Ċ private Ġdata Ġclass ĠN l Model Issue Source ( private Ġval Ġmodel : ĠN l Model ) Ġ: ĠIssue Source Ġ{ ĊĠ Ġoverride Ġval Ġdisplay Text : ĠString Ġ= Ġmodel . model DisplayName . or Empty () ĊĠ Ġoverride Ġval Ġon Issue Selected : Ġ( Design Surface ) Ġ-> ĠUnit Ġ= Ġ{} Ċ } Ċ Ċ /** Ċ Ġ* ĠInterface Ġthat Ġrepresents Ġthe Ġsource Ġfor Ġa Ġgiven Ġ[ Issue ]. Ċ Ġ*/ Ċ interface ĠIssue Source Ġ{ ĊĠ Ġ/** ĠThe Ġdisplay Ġtext Ġto Ġshow Ġin Ġthe Ġissue Ġpanel . Ġ*/ ĊĠ Ġval Ġdisplay Text : ĠString ĊĠ Ġ/** ĠHandler Ġfor Ġthe Ġaction Ġwhen Ġan ĠIssue Ġwith Ġthis Ġsource Ġis Ġselected . Ġ*/ ĊĠ Ġval Ġon Issue Selected : Ġ( Design Surface ) Ġ-> ĠUnit ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval ĠNONE Ġ= Ġobject Ġ: ĠIssue Source Ġ{ ĊĠĠĠĠĠ Ġoverride Ġval Ġdisplay Text : ĠString Ġ= Ġ"" ĊĠĠĠĠĠ Ġoverride Ġval Ġon Issue Selected : Ġ( Design Surface ) Ġ-> ĠUnit Ġ= Ġ{} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= Ġother Ġ=== Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġfrom Nl Component ( component : ĠN l Component ): ĠIssue Source Ġ= ĠN l Component Issue Source ( component ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġfrom Nl Model ( model : ĠN l Model ): ĠIssue Source Ġ= ĠN l Model Issue Source ( model ) ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠRepresent Ġan ĠError Ġthat Ġcan Ġbe Ġdisplayed Ġin Ġthe Ġ[ Issue Panel ]. Ċ Ġ*/ Ċ abstract Ġclass ĠIssue Ġ{ ĊĠ Ġ/** ĠA Ġshort Ġsummary Ġof Ġthe Ġerror Ġdescription Ġ*/ ĊĠ Ġabstract Ġval Ġsummary : ĠString ĊĊĠ Ġ/** ĠThe Ġdescription Ġof Ġthe Ġerror . ĠIt Ġcan Ġcontains Ġsome ĠHTML Ġtag Ġ*/ ĊĠ Ġabstract Ġval Ġdescription : ĠString ĊĊĠ Ġabstract Ġval Ġseverity : ĠHighlight Severity ĊĊĠ Ġ/** ĠAn Ġindication Ġof Ġthe Ġorigin Ġof Ġthe Ġerror Ġlike Ġthe ĠComponent Ġcausing Ġthe Ġerror . Ġ*/ ĊĠ Ġabstract Ġval Ġsource : ĠIssue Source ĊĊĠ Ġ/** ĠThe Ġpriority Ġbetween Ġ 1 Ġand Ġ 1 0 . Ġ*/ ĊĠ Ġabstract Ġval Ġcategory : ĠString ĊĊĠ Ġ/** ĠAllows Ġthe Ġ[ Issue ] Ġto Ġreturn Ġan ĠHyper link Listener Ġto Ġhandle Ġembedded Ġlinks Ġ*/ ĊĠ Ġopen Ġval Ġhyper link Listener : ĠHyper link Listener ? Ġ= Ġnull ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġa ĠSteam Ġof Ġpair Ġcontaining Ġthe Ġdescription Ġof Ġthe Ġfix Ġas Ġthe Ġfirst Ġelement ĊĠĠ Ġ* Ġand Ġa Ġ[ Runnable ] Ġto Ġexecute Ġthe Ġfix ĊĠĠ Ġ*/ ĊĠ Ġopen Ġval Ġfixes : ĠStream < Fix > ĊĠĠĠ Ġget () Ġ= ĠStream . empty () ĊĊĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( other Ġ=== Ġthis ) Ġreturn Ġtrue ĊĠĠĠ Ġif Ġ( other Ġ! is ĠIssue ) Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġother . severity Ġ== Ġseverity ĊĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġother . summary Ġ== Ġsummary ĊĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġother . description Ġ== Ġdescription ĊĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġother . category Ġ== Ġcategory ĊĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġother . source Ġ== Ġsource ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ 1 3 ĊĠĠĠ Ġresult Ġ+= Ġ 1 7 Ġ* Ġseverity . hashCode () ĊĠĠĠ Ġresult Ġ+= Ġ 1 9 Ġ* Ġsummary . hashCode () ĊĠĠĠ Ġresult Ġ+= Ġ 2 3 Ġ* Ġdescription . hashCode () ĊĠĠĠ Ġresult Ġ+= Ġ 2 9 Ġ* Ġcategory . hashCode () ĊĠĠĠ Ġresult Ġ+= Ġ 3 1 Ġ* Ġsource . hashCode () ĊĠĠĠ Ġreturn Ġresult ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠRepresentation Ġof Ġa Ġquick Ġfix Ġfor Ġthe Ġissue . ĊĠĠ Ġ* Ġ@ param Ġdescription ĠDescription Ġof Ġthe Ġfix ĊĠĠ Ġ* Ġ@ param Ġrunnable ĠĠĠ ĠAction Ġto Ġexecute Ġthe Ġfix ĊĠĠ Ġ*/ ĊĠ Ġdata Ġclass ĠFix ( val Ġbutton Text : ĠString Ġ= Ġ" Fix ", Ġval Ġdescription : ĠString , Ġval Ġrunnable : ĠRunnable ) ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠEXEC UTE _ FIX Ġ= Ġ" Execute ĠFix : Ġ" ĊĠ Ġ} Ċ }