package Ġsoftware . md kl att . idea . r python . run Ċ Ċ import Ġcom . intellij . execution . Executor Ċ import Ġcom . intellij . execution . configurations .* Ċ import Ġcom . intellij . execution . process . Kill able Colo red Process Handler Ċ import Ġcom . intellij . execution . process . Process Handler Ċ import Ġcom . intellij . execution . process . Process Terminated Listener Ċ import Ġcom . intellij . execution . runners . Execution Environment Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Descriptor Factory Ċ import Ġcom . intellij . openapi . options . Settings Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . ComboBox Ċ import Ġcom . intellij . openapi . ui . TextField With Browse Button Ċ import Ġcom . intellij . openapi . util . J DOM External izer Util Ċ import Ġcom . intellij . ui . Raw CommandLine Editor Ċ import Ġcom . intellij . ui . layout . panel Ċ import Ġcom . intellij . util . get OrCreate Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JTextField Ċ import Ġorg . j dom . Element ĊĊ Ċ /** Ċ Ġ* ĠGenerate ĠRemote Run Configurations . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" https :// www . jetbrains . org / intellij / sdk / docs / basics / run _ configurations / run _ configuration _ management . html # configuration - factory "> Configuration ĠFactory </ a > Ċ Ġ*/ Ċ class ĠRemote Configuration Factory ( type : ĠConfiguration Type ) Ġ: ĠConfiguration Factory ( type ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġtemplate Ġrun Ġconfiguration Ġwithin Ġthe Ġcontext Ġof Ġthe Ġspecified Ġproject . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġproject Ġthe Ġproject Ġin Ġwhich Ġthe Ġrun Ġconfiguration Ġwill Ġbe Ġused ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġrun Ġconfiguration Ġinstance . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcreate Template Configuration ( project : ĠProject ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRemote Run Configuration ( project , Ġthis , Ġ"") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġname Ġof Ġthe Ġrun Ġconfiguration Ġvariant Ġcreated Ġby Ġthis Ġfactory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return : Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetName () Ġ= Ġ" Remote ĠHost " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRun Ġconfiguration ĠID Ġused Ġfor Ġserialization . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return : Ġunique ĠID ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠString Ġ= Ġthis :: class . java . simple Name Ċ } ĊĊ Ċ /** Ċ Ġ* ĠRun ĠConfiguration Ġfor Ġexecuting Ġ< a Ġhref =" https :// docs . ansible . com / ansible / latest / cli / ansible - galaxy . html "> ansible - galaxy </ a >. Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" https :// www . jetbrains . org / intellij / sdk / docs / basics / run _ configurations / run _ configuration _ management . html # run - configuration "> Run ĠConfiguration </ a > Ċ Ġ*/ Ċ class ĠRemote Run Configuration Ġinternal Ġconstructor ( project : ĠProject , Ġfactory : ĠConfiguration Factory , Ġname : ĠString ) Ġ: ĊĠĠĠĠĠĠĠ ĠRun Configuration Base < Run Profile State >( project , Ġfactory , Ġname ) Ġ{ ĊĊĠĠĠ Ġvar Ġsettings Ġ= ĠRemote Run Settings () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe ĠUI Ġcontrol Ġfor Ġediting Ġthe Ġrun Ġconfiguration Ġsettings . ĠIf Ġadditional Ġcontrol Ġover Ġvalidation Ġis Ġrequired , Ġthe Ġobject ĊĠĠĠĠ Ġ* Ġreturned Ġfrom Ġthis Ġmethod Ġmay Ġalso Ġimplement Ġ[ com . intellij . execution . impl . Check able Run Configuration Editor ]. ĠThe Ġreturned Ġobject ĊĠĠĠĠ Ġ* Ġcan Ġalso Ġimplement Ġ[ com . intellij . openapi . options . Settings Editor Group ] Ġif Ġthe Ġsettings Ġit Ġprovides Ġneed Ġto Ġbe Ġdisplayed Ġin ĊĠĠĠĠ Ġ* Ġmultiple Ġtabs . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġsettings Ġeditor Ġcomponent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Configuration Editor () Ġ= ĠRemote Settings Editor ( project ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPrep ares Ġfor Ġexecuting Ġa Ġspecific Ġinstance Ġof Ġthe Ġrun Ġconfiguration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexecutor Ġthe Ġexecution Ġmode Ġselected Ġby Ġthe Ġuser Ġ( run , Ġdebug , Ġprofile Ġetc .) ĊĠĠĠĠ Ġ* Ġ@ param Ġenvironment Ġthe Ġenvironment Ġobject Ġcontaining Ġadditional Ġsettings Ġfor Ġexecuting Ġthe Ġconfiguration . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe ĠRun Profile State Ġdescribing Ġthe Ġprocess Ġwhich Ġis Ġabout Ġto Ġbe Ġstarted , Ġor Ġnull Ġif Ġit 's Ġimpossible Ġto Ġstart Ġthe Ġprocess . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetState ( executor : ĠExecutor , Ġenvironment : ĠExecution Environment ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRemote CommandLine State ( this , Ġenvironment ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRead Ġsettings Ġfrom Ġa ĠJ DOM Ġelement . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġpart Ġof Ġthe ĠRun Configuration Ġpersistence ĠAPI . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement : Ġinput Ġelement . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġread External ( element : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . read External ( element ) ĊĠĠĠĠĠĠĠ Ġsettings Ġ= ĠRemote Run Settings ( element ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrite Ġsettings Ġto Ġa ĠJ DOM Ġelement . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġpart Ġof Ġthe ĠRun Configuration Ġpersistence ĠAPI . ĊĊĠĠĠĠ Ġ* Ġ@ param Ġelement : Ġoutput Ġelement . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġwrite External ( element : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . write External ( element ) ĊĠĠĠĠĠĠĠ Ġsettings . write ( element ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠCommand Ġline Ġprocess Ġfor Ġexecuting Ġthe Ġrun Ġconfiguration . Ċ Ġ* Ċ Ġ* Ġ@ param Ġconfig : Ġrun Ġconfiguration Ċ Ġ* Ġ@ param Ġenviron : Ġexecution Ġenvironment Ċ Ġ*/ Ċ class ĠRemote CommandLine State Ġinternal Ġconstructor ( private Ġval Ġconfig : ĠRemote Run Configuration , Ġenviron : ĠExecution Environment ) Ġ: ĊĠĠĠĠĠĠĠ ĠCommandLine State ( environ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStarts Ġthe Ġprocess . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġhandler Ġfor Ġthe Ġrunning Ġprocess ĊĠĠĠĠ Ġ* Ġ@ throws ĠExecution Exception Ġif Ġthe Ġexecution Ġfailed . ĊĠĠĠĠ Ġ* Ġ@ see ĠGeneral CommandLine ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġcom . intellij . execution . process . OS Process Handler ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġstart Process (): ĠProcess Handler Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġconfig . settings ĊĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= ĠPos ix CommandLine ( settings . ssh ) ĊĠĠĠĠĠĠĠ Ġif Ġ( settings . ssh Opts . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand . add Parameters ( Pos ix CommandLine . split ( settings . ssh Opts )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġhost Ġ= Ġsettings . ssh Host ĊĠĠĠĠĠĠĠ Ġif Ġ( settings . ssh User . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġsettings . ssh User Ġ+ Ġ"@ " Ġ+ Ġhost ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcommand . add Parameters ( host , Ġpython ( settings )) ĊĠĠĠĠĠĠĠ Ġif Ġ( settings . local Work Dir . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand . set Work Directory ( settings . local Work Dir ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! command . environment . contains (" TERM ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand . environment [" TERM "] Ġ= Ġ" x term - 2 5 6 color " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠKill able Colo red Process Handler ( command ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProcess Terminated Listener . attach ( it , Ġenvironment . project ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate Ġthe Ġremote ĠPython Ġcommand . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return : ĠPython Ġcommand Ġstring ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġpython ( settings : ĠRemote Run Settings ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠIdent ical Ġto ĠVagrant CommandLine State Ġexcept Ġfor Ġparameter Ġtype . ĊĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= ĠPos ix CommandLine (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . remote Work Dir . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Exe Path (" cd ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameters ( settings . remote Work Dir , Ġ" && ", Ġsettings . python ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Exe Path ( settings . python ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings . target Type Ġ== ĠPython Target Type . MODULE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameter ("- m ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameter ( settings . target ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameters ( Pos ix CommandLine . split ( settings . target Params )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcommand . command Line String ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠUI Ġcomponent Ġfor ĠRemote ĠRun ĠConfiguration Ġsettings . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" https :// www . jetbrains . org / intellij / sdk / docs / basics / run _ configurations / run _ configuration _ management . html # settings - editor "> Settings ĠEditor </ a > Ċ Ġ*/ Ċ class ĠRemote Settings Editor Ġinternal Ġconstructor ( project : ĠProject ) Ġ: ĊĠĠĠĠĠĠĠ ĠSettings Editor < Remote Run Configuration >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠOrdering Ġof Ġtarget Type Labels Ġand Ġtarget Type Values Ġmust Ġagree . ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtarget Type Labels Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Script Ġpath :", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Module Ġname :" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtarget Type Values Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPython Target Type . SCRIPT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPython Target Type . MODULE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġtarget Ġ= ĠJTextField () ĊĠĠĠ Ġvar Ġtarget Type Ġ= ĠCombo Box < String >( target Type Labels ) ĊĠĠĠ Ġvar Ġtarget Params Ġ= ĠRaw CommandLine Editor () ĊĠĠĠ Ġvar Ġpython Ġ= ĠJTextField () ĊĠĠĠ Ġvar Ġpython Opts Ġ= ĠRaw CommandLine Editor () ĊĠĠĠ Ġvar Ġremote Work Dir Ġ= ĠJTextField () ĊĠĠĠ Ġvar Ġssh Ġ= ĠTextField With Browse Button (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Browse Folder Listener (" SSH ĠCommand ", Ġ"", Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Chooser Descriptor Factory . create Single FileDescriptor ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġssh Host Ġ= ĠJTextField () ĊĠĠĠ Ġvar Ġssh Opts Ġ= ĠRaw CommandLine Editor () ĊĠĠĠ Ġvar Ġssh User Ġ= ĠJTextField () ĊĠĠĠ Ġvar Ġlocal Work Dir Ġ= ĠTextField With Browse Button (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Browse Folder Listener (" Local ĠWorking ĠDirectory ", Ġ"", Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Chooser Descriptor Factory . create Single Folder Descriptor ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġthe Ġwidget Ġfor Ġthis Ġeditor . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠUI Ġwidget ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcreate Editor (): ĠJ Component Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// www . jetbrains . org / intellij / sdk / docs / user _ interface _ components / kotlin _ ui _ dsl . html ĊĠĠĠĠĠĠĠ Ġreturn Ġpanel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Parameters :") Ġ{ Ġtarget Params () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle d Row (" Remote ĠEnvironment ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Remote Ġhost :") Ġ{ Ġssh Host () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Remote Ġuser :") Ġ{ Ġssh User () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Python Ġinterpreter :") Ġ{ Ġpython () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Python Ġoptions :") Ġ{ Ġpython Opts () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Remote Ġworking Ġdirectory :") Ġ{ Ġremote Work Dir () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle d Row (" Local ĠEnvironment ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" SSH Ġcommand :") Ġ{ Ġssh () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" SSH Ġoptions :") Ġ{ Ġssh Opts () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow (" Local Ġworking Ġdirectory :") Ġ{ Ġlocal Work Dir () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReset Ġeditor Ġfields Ġfrom Ġthe Ġconfiguration Ġstate . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconfig : Ġrun Ġconfiguration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġreset Editor From ( config : ĠRemote Run Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . text Ġ= Ġsettings . target ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Type . selectedIndex Ġ= Ġtarget Type Values . indexOf ( settings . target Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Params . text Ġ= Ġsettings . target Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpython . text Ġ= Ġsettings . python ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpython Opts . text Ġ= Ġsettings . python Opts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Work Dir . text Ġ= Ġsettings . remote Work Dir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh . text Ġ= Ġsettings . ssh ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh Host . text Ġ= Ġsettings . ssh Host ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh User . text Ġ= Ġsettings . ssh User ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh Opts . text Ġ= Ġsettings . ssh Opts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Work Dir . text Ġ= Ġsettings . local Work Dir ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApply Ġeditor Ġfields Ġto Ġthe Ġconfiguration Ġstate . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconfig : Ġrun Ġconfiguration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġapply Editor To ( config : ĠRemote Run Configuration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġapparently Ġgets Ġcalled Ġfor Ġevery Ġkey Ġpress , Ġso Ġperformance Ġis ĊĠĠĠĠĠĠĠ Ġ// Ġcritical . ĊĠĠĠĠĠĠĠ Ġconfig . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ= ĠRemote Run Settings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . target Ġ= Ġtarget . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . target Type Ġ= Ġtarget Type Values [ target Type . selectedIndex ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . target Params Ġ= Ġtarget Params . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . python Ġ= Ġpython . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . python Opts Ġ= Ġpython Opts . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . remote Work Dir Ġ= Ġremote Work Dir . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . ssh Ġ= Ġssh . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . ssh Host Ġ= Ġssh Host . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . ssh User Ġ= Ġssh User . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . ssh Opts Ġ= Ġssh Opts . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . local Work Dir Ġ= Ġlocal Work Dir . text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠManage ĠRemote Run Configuration Ġruntime Ġsettings . Ċ Ġ*/ Ċ class ĠRemote Run Settings Ġinternal Ġconstructor () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠJ DOM _ TAG Ġ= Ġ" python - remote " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġtarget Ġ= Ġ"" ĊĠĠĠ Ġvar Ġtarget Type Ġ= ĠPython Target Type . SCRIPT ĊĠĠĠ Ġvar Ġtarget Params Ġ= Ġ"" ĊĠĠĠ Ġvar Ġpython Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( field . isNotBlank ()) Ġfield Ġelse Ġ" python 3 " ĊĠĠĠ Ġvar Ġpython Opts Ġ= Ġ"" ĊĠĠĠ Ġvar Ġremote Work Dir Ġ= Ġ"" ĊĠĠĠ Ġvar Ġssh Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( field . isNotBlank ()) Ġfield Ġelse Ġ" ssh " ĊĠĠĠ Ġvar Ġssh Host Ġ= Ġ"" ĊĠĠĠ Ġvar Ġssh User Ġ= Ġ"" ĊĠĠĠ Ġvar Ġssh Opts Ġ= Ġ"" ĊĠĠĠ Ġvar Ġlocal Work Dir Ġ= Ġ"" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstruct Ġobject Ġfrom Ġa ĠJ DOM Ġelement . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement : Ġinput Ġelement ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġconstructor ( element : ĠElement ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġelement . get OrCreate ( J DOM _ TAG ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" target ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Type Ġ= ĠPython Target Type . valueOf ( J DOM External izer Util . readField ( it , Ġ" target Type ", Ġ" SCRIPT ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Params Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" target Params ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpython Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" python ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpython Opts Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" python Opts ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Work Dir Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" remote Work Dir ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" ssh ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh Host Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" ssh Host ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh User Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" ssh User ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssh Opts Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" ssh Opts ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Work Dir Ġ= ĠJ DOM External izer Util . readField ( it , Ġ" local Work Dir ", Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrite Ġsettings Ġto Ġa ĠJ DOM Ġelement . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġelement : Ġoutput Ġelement ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwrite ( element : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġelement . get OrCreate ( J DOM _ TAG ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" target ", Ġtarget ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" target Type ", Ġtarget Type . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" target Params ", Ġtarget Params ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" python ", Ġpython ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" python Opts ", Ġpython Opts ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" remote Work Dir ", Ġremote Work Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" ssh ", Ġssh ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" ssh Host ", Ġssh Host ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" ssh User ", Ġssh User ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" ssh Opts ", Ġssh Opts ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ DOM External izer Util . writeField ( it , Ġ" local Work Dir ", Ġlocal Work Dir ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} Ċ } Ċ