package Ġcz . ack ee . local izer . plugin . dialog Ċ Ċ import Ġcom . intellij . openapi . components . Service Manager Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Descriptor Factory Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . Dialog Wrapper Ċ import Ġcom . intellij . openapi . ui . Messages Ċ import Ġcom . intellij . openapi . ui . TextField With Browse Button Ċ import Ġcz . ack ee . local izer . plugin . settings . Local izer Settings Ċ import Ġjava . io . File Ċ import Ġjavax . swing . Default ComboBox Model Ċ import Ġjavax . swing . J ComboBox Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . JTextField Ċ Ċ /** Ċ Ġ* ĠDialog Ġthat Ġcollect s Ġthe ĠGoogle ĠSheet Ġinformation Ċ Ġ*/ Ċ class ĠLocalization Dialog ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġprivate Ġval Ġlistener : Ġ( String ) Ġ-> ĠUnit Ċ ) Ġ: ĠDialog Wrapper ( project ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġui Container : ĠJPanel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproject ComboBox : ĠJ ComboBox < String > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġedit ProjectName : ĠJTextField ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġedit ConfigPath : ĠTextField With Browse Button ĊĠĠĠ Ġprivate Ġval Ġsettings Ġ= ĠService Manager . getService ( project , ĠLocal izer Settings :: class . java ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġpack () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Settings Ġ= Ġsettings . current Project ĊĠĠĠĠĠĠĠ Ġbind Project Settings ( current Settings ) ĊĊĠĠĠĠĠĠĠ Ġedit ConfigPath . add Browse Folder Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Choose Ġconfig Ġfile Ġpath ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" description ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Chooser Descriptor Factory . create Single FileDescriptor (" json ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġproject ComboBox . model Ġ= ĠDefault ComboBox Model ( settings . projects . map Ġ{ Ġit . projectName Ġ}. to Typed Array () Ġ+ Ġ" New Ġproject ") ĊĠĠĠĠĠĠĠ Ġproject ComboBox . selectedIndex Ġ= Ġsettings . selected Project ĊĠĠĠĠĠĠĠ Ġproject ComboBox . addItem Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind Project Settings ( settings . projects . get OrNull ( project ComboBox . selectedIndex )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Project Settings ( current Settings : ĠLocal izer Settings . Project Settings ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġedit ProjectName . text Ġ= Ġcurrent Settings ?. projectName Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġedit ConfigPath . text Ġ= Ġcurrent Settings ?. res Path Ġ?: Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Center Panel (): ĠJ Component Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġui Container ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdo OK Action () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Path Ġ= Ġedit ConfigPath . text ĊĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( config Path ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMessages . show Error Dialog (" You Ġmust Ġchoose Ġthe Ġpath Ġto Ġlocal izations Ġconfiguration ĠJSON Ġfile ", Ġ" Invalid Ġdirectory ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsettings . selected Project Ġ= Ġproject ComboBox . selectedIndex ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Settings Ġ= Ġsettings . current Project Ġ?: ĠLocal izer Settings . Project Settings () ĊĠĠĠĠĠĠĠ Ġcurrent Settings . projectName Ġ= Ġif Ġ( edit ProjectName . text . isNull OrEmpty ()) Ġ" Default " Ġelse Ġedit ProjectName . text ĊĠĠĠĠĠĠĠ Ġcurrent Settings . res Path Ġ= Ġconfig Path ĊĠĠĠĠĠĠĠ Ġif Ġ( project ComboBox . selectedIndex Ġ> Ġsettings . projects . last Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . projects Ġ+= Ġcurrent Settings ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . do OK Action () ĊĠĠĠĠĠĠĠ Ġlistener . invoke ( config Path ) ĊĠĠĠ Ġ} Ċ }