package Ġorg . jetbrains . kotlin . tools . project Wizard . wizard . ui . second Step . modules Editor Ċ Ċ import Ġcom . intellij . icons . All Icons Ċ import Ġcom . intellij . openapi . action System . Action Toolbar Position Ċ import Ġcom . intellij . openapi . ui . Messages Ċ import Ġcom . intellij . ui . Toolbar Decorator Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . module Configur ators .* Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . plugins . kotlin . with All Sub Modules Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . settings . build system .* Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . wizard . Kotlin New Project Wizard Bundle Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . wizard . ui . create Panel With Popup Handler Ċ import Ġorg . jetbrains . kotlin . utils . addTo Std lib . safe As Ċ import Ġjavax . swing . J Component Ċ Ċ class ĠModules Editor Toolbar Decorator ( ĊĠĠĠ Ġprivate Ġval Ġtree : ĠModules Editor Tree , ĊĠĠĠ Ġprivate Ġval Ġmodule Creator : ĠNew Module Creator , ĊĠĠĠ Ġprivate Ġval Ġmodel : ĠTarget s Model , ĊĠĠĠ Ġprivate Ġval Ġget Modules : Ġ() Ġ-> ĠList < Module >, ĊĠĠĠ Ġprivate Ġval Ġis Multi platform Project : Ġ() Ġ-> ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtoolbar Decorator : ĠToolbar Decorator Ġ= ĠToolbar Decorator . create Decorator ( tree ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset Toolbar Position ( Action Toolbar Position . TOP ) ĊĠĠĠĠĠĠĠ Ġset Add Action Ġ{ Ġbutton Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Modules Ġ= Ġget Modules (). with All Sub Modules ( include Source sets Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġtree . selected Setting Item ?. safe As < Module >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Root Module Ġ= Ġtarget Ġ== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Ġ= Ġmodule Creator . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ= Ġtree . selected Setting Item ?. safe As (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow Multi platform Ġ= Ġis Multi platform Project () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġis Root Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġall Modules . none Ġ{ Ġit . configur ator Ġ== ĠM pp Module Configurator Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow Single p alt form Js Ġ= Ġis Multi platform Project () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġis Root Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġall Modules . none Ġ{ Ġit . configur ator Ġ== ĠJs Single platform Module Configurator Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow Android Ġ= Ġis Root Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġis Multi platform Project () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġall Modules . none Ġ{ Ġit . configur ator Ġ== ĠAndroid Single Platform Module Configurator Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow I os Ġ= Ġis Root Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġis Multi platform Project () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġall Modules . none Ġ{ Ġit . configur ator Ġ== ĠIO SS ingle Platform Module Configurator Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Modules Ġ= Ġall Modules , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Module Ġ= Ġmodel :: add ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup ?. show ( button . preferred Popup Point !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Add Action Updater Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . presentation . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġwhen Ġ( val Ġselected Ġ= Ġtree . selected Setting Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠModule Ġ-> Ġselected . configur ator . can Contain Sub Modules ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSource set Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġwhen Ġ( tree . selected Setting Item ?. safe As < Module >() ?. kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . multi platform Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . add . target ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . single platform Jvm Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . add . generic . module ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . single platform Js Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . add . javascript . module ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . target Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . add ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . add ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . presentation . isEnabled ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Remove Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġwhen Ġ( selected Module Kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . target Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . remove . target . title ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . remove . module . title ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġwhen Ġ( selected Module Kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . target Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . remove . target . description ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . remove . module . description ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Messages . show Ok Cancel Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtree , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ln ( description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tree . selected Setting Item . safe As < Module >() ?. kind Ġ!= ĠModule Kind . target ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ln ( Kotlin New Project Wizard Bundle . message (" editor . remove . all . sub modules ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ln () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ln ( Kotlin New Project Wizard Bundle . message (" editor . cant . und one . action ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin New Project Wizard Bundle . message (" editor . remove . button . remove "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin New Project Wizard Bundle . message (" editor . remove . button . cancel "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAll Icons . General . Question Dialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ== ĠMessages . OK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . remove Selected () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Remove Action Updater Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . presentation . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtree . selected Setting Item Ġis ĠModule ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġwhen Ġ( selected Module Kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Kind . target Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . remove . target . tool button ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠKotlin New Project Wizard Bundle . message (" editor . remove . module . tool button ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . presentation . isEnabled ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Move Down Action ( null ) ĊĠĠĠĠĠĠĠ Ġset Move Up Action ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġselected Module Kind ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtree . selected Setting Item . safe As < Module >() ?. kind ĊĊĠĠĠ Ġfun Ġcreate Tool Panel (): ĠJ Component Ġ= Ġtoolbar Decorator ĊĠĠĠĠĠĠĠ Ġ. create Panel With Popup Handler ( tree ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġborder Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ċ }