// ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 Ġ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 . impl Ċ Ċ import Ġcom . intellij . execution . Execution Bundle Ċ import Ġcom . intellij . execution . configurations . Configuration Type Ċ import Ġcom . intellij . openapi . action System . Action Toolbar Position Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . ui .* Ċ import Ġcom . intellij . ui . components . Action Link Ċ import Ġcom . intellij . ui . components . JB Panel With Empty Text Ċ import Ġcom . intellij . util . ui . JB Dimension Ċ import Ġcom . intellij . util . ui . J BU I Ċ import Ġjava . awt . Border Layout Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . tree . Default Mutable TreeNode Ċ Ċ open Ġclass ĠProject Run Configuration Configurable ( project : ĠProject , Ġrun Dialog : ĠRun Dialog Base ? Ġ= Ġnull ) Ġ: ĠRun Configurable ( project , Ġrun Dialog ) Ġ{ ĊĠ Ġoverride Ġfun Ġcreate Left Panel (): ĠJ Component Ġ{ ĊĊĠĠĠ Ġif Ġ( project . is Default ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠScroll Pane Factory . create ScrollPane ( tree ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġremove Action Ġ= ĠMy Remove Action () ĊĠĠĠ Ġtoolbar Decorator Ġ= ĠToolbar Decorator . create Decorator ( tree ) ĊĠĠĠĠĠ Ġ. set Toolbar Position ( Action Toolbar Position . TOP ) ĊĠĠĠĠĠ Ġ. set Panel Border ( J BU I . B orders . empty ()) ĊĠĠĠĠĠ Ġ. set ScrollPane Border ( J BU I . B orders . empty ()) ĊĠĠĠĠĠ Ġ. set Add Action ( toolbar Add Action ). set Add Action Name ( Execution Bundle . message (" add . new . run . configuration . action 2 . name ")) ĊĠĠĠĠĠ Ġ. set Remove Action ( remove Action ). set Remove Action Updater ( remove Action ) ĊĠĠĠĠĠ Ġ. set Remove Action Name ( Execution Bundle . message (" remove . run . configuration . action . name ")) ĊĊĠĠĠĠĠ Ġ. add Extra Action ( An ActionButton . from Action ( My Copy Action ())) ĊĠĠĠĠĠ Ġ. add Extra Action ( An ActionButton . from Action ( My Save Action ())) ĊĠĠĠĠĠ Ġ. add Extra Action ( An ActionButton . from Action ( My Create Folder Action ())) ĊĠĠĠĠĠ Ġ. add Extra Action ( An ActionButton . from Action ( My Sort Folder Action ())) ĊĠĠĠĠĠ Ġ. setMinimumSize ( JB Dimension ( 2 0 0 , Ġ 2 0 0 )) ĊĠĠĠĠĠ Ġ. set Button Comparator ( Execution Bundle . message (" add . new . run . configuration . action 2 . name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" remove . run . configuration . action . name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" copy . configuration . action . name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" action . name . save . configuration "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" run . configuration . edit . default . configuration . settings . text "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" move . up . action . name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" move . down . action . name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecution Bundle . message (" run . configuration . create . folder . text ")) ĊĠĠĠĠĠ Ġ. set For ced Dn D () ĊĠĠĠ Ġval Ġpanel Ġ= ĠJPanel ( Border Layout ()) ĊĠĠĠ Ġpanel . background Ġ= ĠJ B Color . background () ĊĠĠĠ Ġpanel . add ( toolbar Decorator !!. create Panel (), ĠBorderLayout . CENTER ) ĊĠĠĠ Ġval Ġaction Link Ġ= ĠAction Link ( Execution Bundle . message (" edit . configuration . templates ")) Ġ{ Ġshow Templates Dialog ( project , Ġselected Configuration Type ) Ġ} ĊĠĠĠ Ġaction Link . border Ġ= ĠJ BU I . B orders . empty ( 1 0 ) ĊĠĠĠ Ġaction Link . background Ġ= ĠJ B Color . background () ĊĠĠĠ Ġpanel . add ( action Link , ĠBorderLayout . SO UTH ) ĊĠĠĠ Ġinit Tree () ĊĠĠĠ Ġreturn Ġpanel ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġtype Or Factory Selected ( user Object : ĠAny ) Ġ{ ĊĠĠĠ Ġdraw Press Add Button Message ( user Object Ġas ĠConfiguration Type ); ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġadd Run Configurations To Model ( model : ĠDefault Mutable TreeNode ) Ġ{ ĊĠĠĠ Ġfor Ġ(( type , Ġfolder Map ) Ġin Ġrun Manager . get Configurations Group ed ByType And Folder ( true )) Ġ{ ĊĠĠĠĠĠ Ġval Ġtype Node Ġ= ĠDefault Mutable TreeNode ( type ) ĊĠĠĠĠĠ Ġmodel . add ( type Node ) ĊĠĠĠĠĠ Ġfor Ġ(( folder , Ġconfigurations ) Ġin Ġfolder Map . entries ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode : ĠDefault Mutable TreeNode ĊĠĠĠĠĠĠĠ Ġif Ġ( folder Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnode Ġ= Ġtype Node ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnode Ġ= ĠDefault Mutable TreeNode ( folder ) ĊĠĠĠĠĠĠĠĠĠ Ġtype Node . add ( node ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( it Ġin Ġconfigurations ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġnode . add ( Default Mutable TreeNode ( it )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Tip Panel About Adding New Run Configuration ( configuration Type : ĠConfiguration Type ?): ĠJ Component Ġ{ ĊĠĠĠ Ġval Ġmessage Panel Ġ= ĠJ B Panel With Empty Text () ĊĠĠĠ Ġmessage Panel . empty Text . append Line ( Execution Bundle . message (" status . text . add . new . run . configuration "), ĠSimple Text Attributes . LINK _ PLAIN _ ATTRIBUTES ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( configuration Type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar Add Action . show Add Popup ( true , Ġit . source Ġas ĠMouseEvent ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġcreate New Configuration ( configuration Type . configuration Factories [ 0 ]) ĊĠĠĠ Ġ}. append Line ( Execution Bundle . message (" status . text . or . select . run . configuration . to . edit "), ĠSimple Text Attributes . GRAY ED _ ATTRIBUTES , Ġnull ) ĊĠĠĠ Ġreturn Ġmessage Panel ĊĠ Ġ} Ċ }