package Ġui . settings Ċ Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . ui . ComboBox Ċ import Ġcom . intellij . ui . Collection ListModel Ċ import Ġcom . intellij . ui . Ide Border Factory Ċ import Ġcom . intellij . ui . JB Splitter Ċ import Ġcom . intellij . ui . Toolbar Decorator Ċ import Ġcom . intellij . ui . components . JB List Ċ import Ġmodel . FileType Ċ import Ġmodel . Screen Element Ċ import Ġjava . awt .* Ċ import Ġjavax . swing . JLabel Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . JTextField Ċ import Ġjavax . swing . List Selection Model Ċ Ċ class ĠSettings Panel ( project : ĠProject ) Ġ: ĠJPanel () Ġ{ ĊĊĠĠĠ Ġval Ġname TextField Ġ= ĠJTextField () ĊĊĠĠĠ Ġval Ġscreen Elements ListModel Ġ= ĠCollection ListModel < Screen Element >() ĊĠĠĠ Ġval Ġscreen Elements List Ġ= ĠJ B List < Screen Element >( screen Elements ListModel ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġselection Mode Ġ= ĠList Selection Model . SINGLE _ SELECTION ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtoolbar Decorator : ĠToolbar Decorator Ġ= ĠToolbar Decorator . create Decorator ( screen Elements List ) ĊĊĠĠĠ Ġval Ġactivity TextField Ġ= ĠJTextField () ĊĠĠĠ Ġval Ġfragment TextField Ġ= ĠJTextField () ĊĊĠĠĠ Ġval ĠfileType ComboBox Ġ= ĠCombo Box < FileType >( FileType . values ()) ĊĠĠĠ Ġval ĠfileName TextField Ġ= ĠJTextField () ĊĠĠĠ Ġval ĠfileName Sample Label Ġ= ĠJLabel (). apply Ġ{ Ġis Enabled Ġ= Ġfalse Ġ} ĊĊĠĠĠ Ġval Ġcode Panel Ġ= ĠCode Panel ( project ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscreen Element Details Panel : ĠJPanel ĊĠĠĠ Ġprivate Ġval Ġscreen ElementName Label Ġ= ĠJLabel (" Screen ĠElement ĠName :") ĊĠĠĠ Ġprivate Ġval ĠfileName Label Ġ= ĠJLabel (" File ĠName :") ĊĠĠĠ Ġprivate Ġval ĠfileType Label Ġ= ĠJLabel (" File ĠType :") ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Ġ= ĠBorderLayout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate ( on Help Click : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscreen Elements Panel Ġ= Ġcreate Screen Elements Panel () ĊĠĠĠĠĠĠĠ Ġval Ġandroid Components Panel Ġ= Ġcreate Android Components Panel () ĊĠĠĠĠĠĠĠ Ġscreen Element Details Panel Ġ= Ġcreate Screen Element Details Panel () ĊĊĠĠĠĠĠĠĠ Ġval Ġright Panel Ġ= Ġcreate Splitter Right Panel ( android Components Panel , Ġscreen Element Details Panel ) ĊĊĠĠĠĠĠĠĠ Ġadd Splitter ( screen Elements Panel , Ġright Panel ) ĊĠĠĠĠĠĠĠ Ġadd Code Panel ( on Help Click ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Screen Elements Panel () Ġ= ĠJPanel (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġborder Ġ= ĠIde Border Factory . create Title d Border (" Screen ĠElements ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlayout Ġ= ĠGrid Layout ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġadd ( toolbar Decorator . create Panel ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Android Components Panel () Ġ= ĠJPanel (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġborder Ġ= ĠIde Border Factory . create Title d Border (" Android ĠComponents ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlayout Ġ= ĠGrid BagLayout () ĊĠĠĠĠĠĠĠ Ġadd ( JLabel (" Activity ĠBase ĠClass :" ), Ġconstraints Left ( 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġadd ( activity TextField , Ġconstraints Right ( 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġadd ( JLabel (" Fragment ĠBase ĠClass :" ), Ġconstraints Left ( 0 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġadd ( fragment TextField , Ġconstraints Right ( 1 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Screen Element Details Panel () Ġ= ĠJPanel (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġborder Ġ= ĠIde Border Factory . create Title d Border (" Screen ĠElement ĠDetails ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġlayout Ġ= ĠGrid BagLayout () ĊĠĠĠĠĠĠĠ Ġadd ( screen ElementName Label , Ġconstraints Left ( 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġadd ( name TextField , Ġconstraints Right ( 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġadd ( fileName Label , Ġconstraints Left ( 0 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġadd ( fileName TextField , Ġconstraints Right ( 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġadd ( fileType Label , Ġconstraints Left ( 0 , Ġ 2 )) ĊĠĠĠĠĠĠĠ Ġadd ( fileType ComboBox , Ġconstraints Right ( 1 , Ġ 2 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid width Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Ġ= ĠGridBagConstraints . NONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= ĠGridBagConstraints . LINE _ START ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġadd ( fileName Sample Label , Ġconstraints Right ( 2 , Ġ 2 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid width Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweight x Ġ/= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= ĠGridBagConstraints . LINE _ END ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Ġ= ĠGridBagConstraints . NONE ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconstraints Left ( x : ĠInt , Ġy : ĠInt ) Ġ= ĠGridBagConstraints (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġweight x Ġ= Ġ 0 . 1 5 ĊĠĠĠĠĠĠĠ Ġgrid x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġgrid y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġin sets Ġ= ĠIn sets ( 0 , Ġ 8 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġfill Ġ= ĠGridBagConstraints . HORIZONTAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconstraints Right ( x : ĠInt , Ġy : ĠInt ) Ġ= ĠGridBagConstraints (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġweight x Ġ= Ġ 0 . 8 5 ĊĠĠĠĠĠĠĠ Ġgrid x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġgrid y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġgrid width Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġfill Ġ= ĠGridBagConstraints . HORIZONTAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Splitter ( left Panel : ĠJPanel , Ġright Panel : ĠJPanel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( JB Splitter ( 0 . 2 f ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Component Ġ= Ġleft Panel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Component Ġ= Ġright Panel ĊĠĠĠĠĠĠĠ Ġ}, ĠBorderLayout . PAGE _ START ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Splitter Right Panel ( android Components Panel : ĠJPanel , Ġscreen Element Details Panel : ĠJPanel ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJPanel ( GridLayout ( 0 , Ġ 1 )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( android Components Panel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( screen Element Details Panel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Code Panel ( on Help Click : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcode Panel . create ( on Help Click ) ĊĠĠĠĠĠĠĠ Ġadd ( code Panel , ĠBorderLayout . CENTER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Screen Element Details Enabled ( isEnabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen Element Details Panel . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġname TextField . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ ĠfileName TextField . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ ĠfileType ComboBox . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġscreen ElementName Label . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ ĠfileName Label . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ ĠfileType Label . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġcode Panel . set Code Panels Enabled ( isEnabled ) ĊĠĠĠ Ġ} Ċ } Ċ