@ file : Suppress (" Un stable Api Usage ") Ċ Ċ package Ġme . se cl erp . r ider . plugins . ef core . ui Ċ Ċ import Ġcom . intellij . openapi . editor . event . Document Event Ċ import Ġcom . intellij . openapi . editor . event . Document Listener Ċ import Ġcom . intellij . openapi . file Chooser . FileChooser Descriptor Factory Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . ComboBox Ċ import Ġcom . intellij . openapi . ui . TextField With Browse Button Ċ import Ġcom . intellij . ui . TextField With Auto Completion Ċ import Ġcom . intellij . ui . components . fields . Expand able TextField Ċ import Ġcom . intellij . ui . dsl . builder .* Ċ import Ġcom . intellij . ui . dsl . grid Layout . Horizontal Align Ċ import Ġcom . intellij . ui . layout . Property Binding Ċ import Ġcom . intellij . util . text Completion . TextField With Completion Ċ import Ġcom . jetbrains . rd client . util . idea . to IO File Ċ import Ġme . se cl erp . r ider . plugins . ef core . ui . items . Icon Item Ċ import Ġjava . awt . event . Item Event Ċ import Ġjava . io . File Ċ import Ġjavax . swing . Default ComboBox Model Ċ import Ġjavax . swing . Icon Ċ import Ġkotlin . reflect . K Mutable Property 0 Ċ Ċ // Ċ // Ġicon ComboBox Ċ // Ċ Ċ fun Ġ< T Ġ: ĠIcon Item <* >> ĠRow . icon ComboBox ( ĊĠĠĠ Ġmodel : ĠDefault ComboBox Model < T >, ĊĠĠĠ Ġbinding : ĠProperty Binding < T ?> Ċ ): ĠCell < ComboBox < T >> Ġ= ĊĊĠĠĠ Ġcombo Box ( model , ĠIcon ComboBox Renderer Adapter ()) ĊĠĠĠĠĠĠĠ Ġ. bind Item ( binding ) ĊĠĠĠĠĠĠĠ Ġ. horizontal Align ( Horizontal Align . FILL ) ĊĠĠĠĠĠĠĠ Ġ. apply To Component Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSetter Ġprovided Ġabove Ġcalled Ġonly Ġon Ġsubmit , Ġso Ġwe Ġneed Ġadditional Ġchange Ġdetection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . state Change Ġ== ĠItem Event . SELECTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . set ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġ< T Ġ: ĠIcon Item <* >> ĠRow . icon ComboBox ( ĊĠĠĠ Ġmodel : ĠDefault ComboBox Model < T >, ĊĠĠĠ Ġgetter : Ġ() Ġ-> ĠT ?, ĊĠĠĠ Ġsetter : Ġ( T ?) Ġ-> ĠUnit Ċ ): ĠCell < ComboBox < T >> Ġ{ ĊĠĠĠ Ġreturn Ġicon ComboBox ( model , ĠProperty Binding ( getter , Ġsetter )) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠIcon Item <* >> ĠRow . icon ComboBox ( ĊĠĠĠ Ġmodel : ĠDefault ComboBox Model < T >, ĊĠĠĠ Ġproperty : ĠK Mutable Property 0 < T ?> Ċ ): ĠCell < ComboBox < T >> Ġ{ ĊĠĠĠ Ġreturn Ġicon ComboBox ( model , ĠProperty Binding ( property . getter , Ġproperty . setter )) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠIcon Item <* >> ĠRow . icon ComboBox ( ĊĠĠĠ Ġitems : ĠArray < T >, ĊĠĠĠ Ġbinding : ĠProperty Binding < T ?> Ċ ): ĠCell < ComboBox < T >> Ġ{ ĊĠĠĠ Ġreturn Ġicon ComboBox ( Default ComboBox Model ( items ), Ġbinding ) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠIcon Item <* >> ĠRow . icon ComboBox ( ĊĠĠĠ Ġitems : ĠArray < T >, ĊĠĠĠ Ġgetter : Ġ() Ġ-> ĠT ?, ĊĠĠĠ Ġsetter : Ġ( T ?) Ġ-> ĠUnit Ċ ): ĠCell < ComboBox < T >> Ġ{ ĊĠĠĠ Ġreturn Ġicon ComboBox ( items , ĠProperty Binding ( getter , Ġsetter )) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠIcon Item <* >> ĠRow . icon ComboBox ( ĊĠĠĠ Ġitems : ĠArray < T >, ĊĠĠĠ Ġproperty : ĠK Mutable Property 0 < T ?> Ċ ): ĠCell < ComboBox < T >> Ġ{ ĊĠĠĠ Ġreturn Ġicon ComboBox ( items , ĠProperty Binding ( property . getter , Ġproperty . setter )) Ċ } Ċ Ċ // Ċ // Ġtext Field With Completion Ċ // Ċ Ċ fun ĠRow . textField With Completion ( ĊĠĠĠ Ġbinding : ĠProperty Binding < String >, ĊĠĠĠ Ġcomplet ions : ĠMutable List < String >, ĊĠĠĠ Ġproject : ĠProject ? Ġ= Ġnull , ĊĠĠĠ Ġicon : ĠIcon ? Ġ= Ġnull Ċ ): ĠCell < TextField With Completion > Ġ{ ĊĠĠĠ Ġval Ġprovider Ġ= ĠTextField With Auto Completion . Strings Completion Provider ( comp letions , Ġicon ) ĊĠĠĠ Ġval Ġtext Field Ġ= ĠTextField With Completion ( project , Ġprovider , Ġbinding . get (), Ġtrue , Ġtrue , Ġfalse , Ġfalse ) ĊĠĠĠ Ġtext Field . editor ĊĠĠĠ Ġtext Field . add Document Listener ( object Ġ: ĠDocument Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdocument Changed ( event : ĠDocument Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . set ( event . document . text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġreturn Ġcell ( textField ) Ċ } Ċ Ċ fun ĠRow . textField With Completion ( ĊĠĠĠ Ġgetter : Ġ() Ġ-> ĠString , ĊĠĠĠ Ġsetter : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠ Ġcomplet ions : ĠMutable List < String >, ĊĠĠĠ Ġproject : ĠProject ? Ġ= Ġnull , ĊĠĠĠ Ġicon : ĠIcon ? Ġ= Ġnull Ċ ): ĠCell < TextField With Completion > Ġ{ ĊĠĠĠ Ġreturn Ġtext Field With Completion ( Property Binding ( getter , Ġsetter ), Ġcomplet ions , Ġproject , Ġicon ) Ċ } Ċ Ċ fun ĠRow . textField With Completion ( ĊĠĠĠ Ġproperty : ĠK Mutable Property 0 < String >, ĊĠĠĠ Ġcomplet ions : ĠMutable List < String >, ĊĠĠĠ Ġproject : ĠProject ? Ġ= Ġnull , ĊĠĠĠ Ġicon : ĠIcon ? Ġ= Ġnull Ċ ): ĠCell < TextField With Completion > Ġ{ ĊĠĠĠ Ġreturn Ġtext Field With Completion ( Property Binding ( property . getter , Ġproperty . setter ), Ġcomplet ions , Ġproject , Ġicon ) Ċ } Ċ Ċ fun ĠRow . textField For Relative Folder ( ĊĠĠĠ ĠbasePath Getter : Ġ() Ġ-> ĠString , ĊĠĠĠ Ġproject : ĠProject ? Ġ= Ġnull , ĊĠĠĠ Ġbrowse Dialog Title : ĠString ? Ġ= Ġnull , Ċ ): ĠCell < TextField With Browse Button > Ġ{ ĊĊĠĠĠ Ġval Ġfile Chooser Descriptor Ġ= ĠFile Chooser Descriptor Factory . create Single Folder Descriptor () ĊĠĠĠ Ġval Ġtext Field With Browse Button Cell Ġ= Ġtext Field With Browse Button ( browse Dialog Title , Ġproject , Ġfile Chooser Descriptor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Relative To As File Ġ= ĠFile ( basePath Getter ()). path ĊĠĠĠĠĠĠĠ Ġit . to IO File (). relative To ( File ( path Relative To As File )). path ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġtext Field With Browse Button Cell Ċ } Ċ Ċ fun ĠRow . readonly Expand able TextField ( ĊĠĠĠ Ġgetter : Ġ() Ġ-> ĠString Ċ ): ĠCell < Expand able TextField > Ġ= ĊĠĠĠ Ġsimple Expand able TextField ( getter , Ġ{}) ĊĠĠĠĠĠĠĠ Ġ. apply To Component Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Editable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun ĠRow . simple Expand able TextField ( ĊĠĠĠ Ġgetter : Ġ() Ġ-> ĠString , ĊĠĠĠ Ġsetter : Ġ( String ) Ġ-> ĠUnit Ċ ): ĠCell < Expand able TextField > Ġ{ ĊĠĠĠ Ġreturn Ġsimple Expand able TextField Base () ĊĠĠĠĠĠĠĠ Ġ. bind Text ( getter , Ġsetter ) Ċ } Ċ Ċ fun ĠRow . simple Expand able TextField ( ĊĠĠĠ Ġproperty : ĠK Mutable Property 0 < String >, Ċ ): ĠCell < Expand able TextField > Ġ{ ĊĠĠĠ Ġreturn Ġsimple Expand able TextField Base () ĊĠĠĠĠĠĠĠ Ġ. bind Text ( property ) Ċ } Ċ Ċ private Ġfun ĠRow . simple Expand able TextField Base (): ĠCell < Expand able TextField > Ġ= ĊĠĠĠ Ġexpand able TextField ({ Ġmutable ListOf ( it ) Ġ}, Ġ{ Ġit [ 0 ] Ġ} Ġ) ĊĠĠĠĠĠĠĠ Ġ. apply To Component Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mono spaced ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaret Position Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ}