// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . execution . run Toolbar Ċ Ċ import Ġcom . intellij . execution .* Ċ import Ġcom . intellij . execution . actions . Run Configurations ComboBox Action Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . action System . Presentation Ċ import Ġcom . intellij . openapi . project . D umb Aware Action Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . ui . scale . J BU IS cale Ċ import Ġcom . intellij . util . ui . J BU I Ċ import Ġjava . awt . Dimension Ċ import Ġjava . awt . Insets Ċ import Ġjavax . swing . J Component Ċ Ċ class ĠRun Toolbar Run Configurations Action Ġ: ĠRun Configurations ComboBox Action (), ĠR TR un Configuration Ġ{ ĊĊĠ Ġoverride Ġfun Ġcreate Final Action ( configuration : ĠRunner And Configuration Settings , Ġproject : ĠProject ): ĠAn Action Ġ{ ĊĠĠĠ Ġreturn ĠRun Toolbar Select Config Action ( configuration , Ġproject ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Selected Configuration ( e : ĠAn ActionEvent ): ĠRunner And Configuration Settings ? Ġ{ ĊĠĠĠ Ġreturn Ġe . configuration () Ġ?: Ġe . project ?. let Ġ{ ĊĠĠĠĠĠ Ġval Ġvalue Ġ= ĠRun Manager . getInstance ( it ). selected Configuration ĊĠĠĠĠĠ Ġe . set Configuration ( value ) ĊĠĠĠĠĠ Ġvalue ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġupdate ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠ Ġsuper . update ( e ) ĊĠĠĠ Ġe . presentation . isVisible Ġ= Ġe . project ?. let Ġ{ ĊĠĠĠĠĠ Ġ! e . isActive Process () Ġ&& Ġe . presentation . isVisible Ġ&& Ġif Ġ( e . is It Run Toolbar Main Slot ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġslot Manager Ġ= ĠRun Toolbar Slot Manager . getInstance ( it ) ĊĠĠĠĠĠĠĠ Ġ( e . is Opened () Ġ&& Ġ! e . isActive Process () Ġ|| Ġ! slot Manager . getState (). isActive ()) ĊĠĠĠĠĠ Ġ} Ġelse Ġtrue ĊĊĠĠĠ Ġ} Ġ?: Ġfalse ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Custom Component ( presentation : ĠPresentation , Ġplace : ĠString ): ĠJ Component Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠRun Configurations ComboBox Button ( presentation ) Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġget PreferredSize (): ĠDimension ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġsuper . get PreferredSize () ĊĠĠĠĠĠĠĠ Ġd . width Ġ= ĠJ BU IS cale . scale ( 1 8 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġget Arrow Gap (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJ BU IS cale . scale ( 5 ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġget Margin (): ĠIn sets Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJ BU I . in sets ( 0 , Ġ 8 , Ġ 0 , Ġ 8 ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠRun Toolbar Select Config Action ( val Ġconfiguration : ĠRunner And Configuration Settings , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject : ĠProject ) Ġ: ĠD umb Aware Action () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠ Ġvar Ġname Ġ= ĠExecutor . short en Name IfNeeded ( configuration . name ) ĊĠĠĠĠĠ Ġif Ġ( name . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Ġ" ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġpresentation Ġ= Ġtemplate Presentation ĊĠĠĠĠĠ Ġpresentation . setText ( name , Ġfalse ) ĊĠĠĠĠĠ Ġpresentation . description Ġ= ĠExecution Bundle . message (" select . 0 . 1 ", Ġconfiguration . type . configuration Type Description , Ġname ) ĊĠĠĠĠĠ Ġupdate Icon ( presentation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Icon ( presentation : ĠPresentation ) Ġ{ ĊĠĠĠĠĠ Ġset Configuration Icon ( presentation , Ġconfiguration , Ġproject ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠ Ġe . project ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġe . set Configuration ( configuration ) ĊĠĠĠĠĠĠĠ Ġupdate Presentation ( Execution Target Manager . getActive Target ( project ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . presentation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . place ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠ Ġsuper . update ( e ) ĊĠĠĠĠĠ Ġupdate Icon ( e . presentation ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ } ĊĊ