/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 Ġ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 Ġorg . jetbrains . r . project Generator . template Ċ Ċ import Ġcom . intellij . ide . util . project Wizard . Abstract New Project Step Ċ import Ġcom . intellij . ide . util . project Wizard . Custom Step Project Generator Ċ import Ġcom . intellij . ide . util . project Wizard . Module Builder Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Validation Info Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . platform .* Ċ import Ġicons . R Icons Ċ import Ġorg . jetbrains . r . interpreter . R Interpreter Manager Ċ import Ġorg . jetbrains . r . project Generator . builder . R Module Builder Ċ import Ġorg . jetbrains . r . project Generator . step . R Project Settings Step Ċ import Ġorg . jetbrains . r . settings . R Settings Ċ import Ġjavax . swing . Icon Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JPanel Ċ Ċ abstract Ġclass ĠR Project Generator Ġ: ĠDirectory Project Generator Base < R Project Settings >(), ĠCustom Step Project Generator < R Project Settings >, ĠProject Template Ġ{ ĊĊĠ Ġoverride Ġfun Ġget Icon (): ĠIcon ? Ġ= ĠR Icons . R ĊĊĠ Ġoverride Ġfun Ġcreate Module Builder (): ĠModule Builder Ġ= ĠR Module Builder ( this ) ĊĊĠ Ġoverride Ġfun Ġvalidate Settings (): ĠValidation Info ? Ġ= Ġvalidate Generator Settings (). first OrNull () ĊĊĠ Ġopen Ġval Ġrequired Package List Ġ= Ġfalse ĊĊĠ Ġopen Ġval Ġonly Local Inter pre ters Ġ= Ġfalse ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠUnique Ġvalue ĊĠĠ Ġ*/ ĊĠ Ġabstract Ġfun ĠgetId (): ĠString ĊĊĠ Ġinterface ĠSettings Listener Ġ{ ĊĠĠĠ Ġfun Ġstate Changed () ĊĠ Ġ} ĊĊĠ Ġprivate Ġvar Ġcallback Ġ= ĠAbstract New Project Step . Abstract Callback < R Project Settings >() ĊĠ Ġprotected Ġvar Ġr Project Settings : ĠR Project Settings Ġ= ĠR Project Settings () ĊĠ Ġprivate Ġvar Ġsettings Listener : ĠSettings Listener ? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun Ġget Logo (): ĠIcon ? Ġ{ ĊĠĠĠ Ġreturn ĠR Icons . R ĊĠ Ġ} ĊĊĠ Ġopen Ġfun Ġvalidate Generator Settings (): ĠList < Validation Info > Ġ{ ĊĠĠĠ Ġreturn Ġempty List () ĊĠ Ġ} ĊĊĠ Ġopen Ġfun Ġget Settings Panel (): ĠJ Component ? Ġ{ ĊĠĠĠ Ġreturn Ġnull ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcreate Step ( project Generator : ĠDirectory Project Generator < R Project Settings >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : ĠAbstract New Project Step . Abstract Callback < R Project Settings >): ĠR Project Settings Step Ġ{ ĊĠĠĠ Ġreturn ĠR Project Settings Step ( r Project Settings , Ġproject Generator , Ġthis . callback , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġonly Local Inter pre ters Ġ= Ġonly Local Inter pre ters ) ĊĠ Ġ} ĊĊĠ Ġfun Ġcreate Module Step ( module Step Button Updater : Ġ(( Boolean ) Ġ-> ĠUnit )? ): ĠR Project Settings Step Ġ{ ĊĠĠĠ Ġreturn ĠR Project Settings Step ( r Project Settings , Ġthis , Ġthis . callback , Ġmodule Step Button Updater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġonly Local Inter pre ters Ġ= Ġonly Local Inter pre ters ) ĊĠ Ġ} ĊĊĠ Ġfun Ġget Settings () Ġ= Ġr Project Settings ĊĊĠ Ġoverride Ġfun Ġcreate Peer (): ĠProject Generator Peer < R Project Settings > Ġ{ ĊĠĠĠ Ġreturn ĠGenerator Peer Impl < R Project Settings >( r Project Settings , ĠJPanel ()) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠWhen Ġover writing Ġthis Ġmethod , Ġ< strong > be Ġsure </ strong > Ġto Ġcall Ġsuper (): Ġthe Ġcorrect Ġinterpreter Ġwill Ġbe Ġselected Ġonly Ġafter Ġthat ĊĠĠ Ġ*/ ĊĠ Ġoverride Ġfun Ġgenerate Project ( project : ĠProject , Ġbase Dir : ĠVirtual File , Ġr Project Settings : ĠR Project Settings , Ġmodule : ĠModule ) Ġ{ ĊĠĠĠ Ġif Ġ( r Project Settings . use New Interpreter ) Ġ{ ĊĠĠĠĠĠ ĠR Settings . getInstance ( project ). interpreter Location Ġ= Ġr Project Settings . interpreter Location ĊĠĠĠĠĠ ĠR Interpreter Manager . getInstance ( project ). get Interpreter Async ( true ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġadd Settings State Listener ( listener : ĠSettings Listener ) Ġ{ ĊĠĠĠ Ġsettings Listener Ġ= Ġlistener ĊĠ Ġ} ĊĊĠ Ġfun Ġstate Changed () Ġ{ ĊĠĠĠ Ġsettings Listener ?. state Changed () ĊĠ Ġ} Ċ } Ċ