package Ġjp . free apps . intellij . plugin . ph par ray . settings Ċ Ċ import Ġcom . intellij . ui . components . JB CheckBox Ċ import Ġcom . intellij . ui . components . JB Label Ċ import Ġcom . intellij . ui . components . J BR ad io Button Ċ import Ġcom . intellij . util . ui . J BU I Ċ import Ġjava . awt . Grid BagConstraints Ċ import Ġjava . awt . Grid BagConstraints .* Ċ import Ġjava . awt . Grid BagLayout Ċ import Ġjava . util .* Ċ import Ġjavax . swing . Button Group Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . J Separator Ċ Ċ /** Ċ Ġ* ĠSupports Ġcreating Ġand Ġmanaging Ġa Ġ[ JPanel ] Ġfor Ġthe ĠSettings ĠDialog . Ċ Ġ*/ Ċ class ĠApp Settings Component Ġ: ĠJPanel ( Grid BagLayout ()) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġresource Bundle Ġ= ĠResource Bundle . get Bundle (" messages / Plugin Bundle ") ĊĊĠĠĠ Ġ// Ġconstants ĊĠĠĠ Ġprivate Ġval Ġleft Inset Ġ= Ġ 2 0 ĊĠĠĠ Ġprivate Ġval Ġright Inset Ġ= Ġ 1 0 ĊĠĠĠ Ġprivate Ġval Ġbottom Inset Ġ= Ġ 4 ĊĊĠĠĠ Ġ// Ġvariables ĊĠĠĠ Ġprivate Ġvar Ġline Count Ġ= Ġ 0 ĊĊĠĠĠ Ġ// ĠConversion Ġresult ĊĠĠĠ Ġprivate Ġval Ġreplace In Editor Option Ġ= ĠJ BR ad io Button ( message (" conversion Result . replace In Editor ")) ĊĠĠĠ Ġprivate Ġval Ġsave To Clipboard Option Ġ= ĠJ BR ad io Button ( message (" conversion Result . save To Clipboard ")) ĊĠĠĠ Ġprivate Ġval Ġconversion Result : ĠArray < J BR ad io Button > Ġ= ĠarrayOf ( replace In Editor Option , Ġsave To Clipboard Option ) ĊĊĠĠĠ Ġ// ĠPHP ĠArray Ġsyntax ĊĠĠĠ Ġprivate Ġval Ġuse Array Option Ġ= ĠJ BR ad io Button ( message (" json To Php Array . array ")) ĊĠĠĠ Ġprivate Ġval Ġuse Br aket Option Ġ= ĠJ BR ad io Button ( message (" json To Php Array . br aket ")) ĊĠĠĠ Ġprivate Ġval Ġarray Syntax : ĠArray < J BR ad io Button > Ġ= ĠarrayOf ( use Array Option , Ġuse Br aket Option ) ĊĊĠĠĠ Ġ// ĠString Ġquot ation Ġmarks ĊĠĠĠ Ġprivate Ġval Ġuse Single Quote Option Ġ= ĠJ BR ad io Button ( message (" json To Php Array . single Quotes ")) ĊĠĠĠ Ġprivate Ġval Ġuse Double Quote Option Ġ= ĠJ BR ad io Button ( message (" json To Php Array . double Quotes ")) ĊĠĠĠ Ġprivate Ġval Ġstring Quot ation Marks : ĠArray < J BR ad io Button > Ġ= ĠarrayOf ( use Single Quote Option , Ġuse Double Quote Option ) ĊĊĠĠĠ Ġ// ĠAdd Ġcomma Ġto Ġlast Ġelement ĊĠĠĠ Ġprivate Ġval Ġappend Comma Option Ġ= ĠJ B CheckBox ( message (" json To Php Array . add Comma To Last Element ")) ĊĊĠĠĠ Ġval Ġpreferred Focused Component : ĠJ Component ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġreplace In Editor Option ĊĊĠĠĠ Ġvar Ġreplace In Editor : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġreplace In Editor Option . isSelected ĊĠĠĠĠĠĠĠ Ġset ( new Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace In Editor Option . isSelected Ġ= Ġnew Status ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave To Clipboard Option . isSelected Ġ= Ġ! new Status ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġuse Br aket : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġuse Br aket Option . isSelected ĊĠĠĠĠĠĠĠ Ġset ( new Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Br aket Option . isSelected Ġ= Ġnew Status ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Array Option . isSelected Ġ= Ġ! new Status ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġuse Double Quote : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġuse Double Quote Option . isSelected ĊĠĠĠĠĠĠĠ Ġset ( new Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Double Quote Option . isSelected Ġ= Ġnew Status ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Single Quote Option . isSelected Ġ= Ġ! new Status ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġappend Comma : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġappend Comma Option . isSelected ĊĠĠĠĠĠĠĠ Ġset ( new Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Comma Option . isSelected Ġ= Ġnew Status ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGeneral ĠSettings ĊĠĠĠĠĠĠĠ Ġadd Options ( map Of ("${ message (" conversion Result . title ")} Ġ: Ġ" Ġto Ġconversion Result ), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġgrouping Radio Buttons ( conversion Result ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠJSON Ġto ĠPHP ĠArray ĠSettings ĊĠĠĠĠĠĠĠ Ġadd Title ( message (" json To Php Array . title ")) ĊĠĠĠĠĠĠĠ Ġadd Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ message (" json To Php Array . php Array Syntax ")} Ġ: Ġ" Ġto Ġarray Syntax , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ message (" json To Php Array . string Quot ation Marks ")} Ġ: Ġ" Ġto Ġstring Quot ation Marks , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ message (" json To Php Array . add Comma To Last Element ")} Ġ: Ġ" Ġto ĠarrayOf ( append Comma Option ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġgrouping Radio Buttons ( array Syntax ) ĊĠĠĠĠĠĠĠ Ġgrouping Radio Buttons ( string Quot ation Marks ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġfill Ġvert ically ĊĠĠĠĠĠĠĠ Ġval Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= ĠGridBagConstraints ( 0 , Ġline Count , Ġ 1 , Ġ 1 , Ġ 1 . 0 , Ġ 1 . 0 , ĠW EST , ĠBOT H , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġthis . add ( JPanel (), Ġconstraints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Title ( title : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Panel Ġ= ĠJPanel ( Grid BagLayout ()) ĊĊĠĠĠĠĠĠĠ Ġvar Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġ 0 , Ġ 0 , Ġright Inset ) ĊĠĠĠĠĠĠĠ Ġvar Ġconstraints Ġ= ĠGridBagConstraints ( 0 , Ġ 0 , Ġ 1 , Ġ 1 , Ġ 0 . 0 , Ġ 0 . 0 , ĠW EST , ĠNONE , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtitle Panel . add ( JB Label ( title ), Ġconstraints ) ĊĊĠĠĠĠĠĠĠ Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġconstraints Ġ= ĠGridBagConstraints ( 1 , Ġ 0 , Ġ 1 , Ġ 1 , Ġ 1 . 0 , Ġ 0 . 0 , ĠW EST , ĠH ORIZONTAL , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtitle Panel . add ( J Separator ( J Separator . HORIZONTAL ), Ġconstraints ) ĊĊĠĠĠĠĠĠĠ Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġ 0 , Ġbottom Inset , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġconstraints Ġ= ĠGridBagConstraints ( 0 , Ġline Count ++, Ġ 1 , Ġ 1 , Ġ 1 . 0 , Ġ 0 . 0 , ĠW EST , ĠH ORIZONTAL , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġthis . add ( title Panel , Ġconstraints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Options ( options : ĠMap < String , ĠArray < out ĠJ Component >>, Ġis General : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġshow Label ( items : ĠArray < out ĠJ Component >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġitems . size Ġ> Ġ 1 Ġ|| Ġitems [ 0 ] Ġ! is ĠJ B CheckBox ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoptions Panel Ġ= ĠJPanel ( Grid BagLayout ()) ĊĠĠĠĠĠĠĠ Ġval Ġmax Columns Ġ= Ġoptions . values . fold ( 0 ) Ġ{ Ġaccumulator , Ġitems Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( items . size Ġ> Ġaccumulator ) Ġitems . size Ġelse Ġaccumulator ) Ġ+ Ġ( if Ġ( show Label ( items )) Ġ 1 Ġelse Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġrow Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġoptions . forEach Ġ{ Ġ( label , Ġitems ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcolumn Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġ 0 , Ġbottom Inset , Ġright Inset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġconstraints Ġ= ĠGridBagConstraints ( 0 , Ġrow Count , Ġ 1 , Ġ 1 , Ġ 0 . 0 , Ġ 0 . 0 , ĠW EST , ĠNONE , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show Label ( items )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Panel . add ( JB Label ( label ), Ġconstraints ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . forEach Indexed Ġ{ Ġindex , Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints Ġ= ĠGridBagConstraints ( column Count ++, Ġrow Count , Ġ 1 , Ġ 1 , Ġ 0 . 0 , Ġ 0 . 0 , ĠW EST , ĠNONE , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ+ Ġ 1 Ġ== Ġitems . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints . grid width Ġ= Ġmax Columns Ġ- Ġcolumn Count Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints . weight x Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints . fill Ġ= ĠH ORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġ 0 , Ġbottom Inset , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Panel . add ( item , Ġconstraints ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Count ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġin sets Ġ= ĠJ BU I . in sets ( 0 , Ġif Ġ( is General ) Ġ 0 Ġelse Ġleft Inset , Ġbottom Inset , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= ĠGridBagConstraints ( 0 , Ġline Count ++, Ġ 1 , Ġ 1 , Ġ 1 . 0 , Ġ 0 . 0 , ĠW EST , ĠH ORIZONTAL , Ġin sets , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġthis . add ( options Panel , Ġconstraints ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgrouping Radio Buttons ( radio Buttons : ĠArray < J BR ad io Button >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbutton Group Ġ= ĠButton Group () ĊĠĠĠĠĠĠĠ Ġradio Buttons . forEach Ġ{ Ġradio Button Ġ-> Ġbutton Group . add ( radioButton ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmessage ( key : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresource Bundle . getString (" settings .$ key ") ĊĠĠĠ Ġ} Ċ }