package Ġkr . co . find a . android template . action Ċ Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . action System . Common Data Keys Ċ import Ġcom . intellij . ui . components . JB TextField Ċ import Ġcom . intellij . util . ui . Form Builder Ċ import Ġkr . co . find a . android template . ext . Dialog Ui Ċ import Ġkr . co . find a . android template . ext . show Dialog Ċ import Ġkr . co . find a . android template . model . Template Ċ import Ġkr . co . find a . android template . model . Template Param Ċ import Ġkr . co . find a . android template . util . File Util Ċ import Ġkr . co . find a . android template . util . Template Util Ċ import Ġjavax . swing . JPanel ĊĊ Ċ class ĠCreate ViewModel Test Action Ġ: ĠAn Action () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġe . project Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġselected Directory Ġ= Ġe . getData ( Common Data Keys . VIRTUAL _ FILE ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġproject . show Dialog (" Create ĠViewModel ĠTest ĠTemplate ", ĠCreate ViewModel Test Dialog Ui ()) Ġ{ Ġdialog Ui Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġdialog Ui . name TextField . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName With Extension Ġ= Ġ"${ name } ViewModel Test . kt " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas Conflict FileName Ġ= ĠFile Util . has Conflict FileName ( fileName With Extension , Ġselected Directory . path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Conflict FileName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . show Dialog (" ìĿ´ ë¯¸ Ġì ¡´ ìŀ¬ íķĺëĬĶ ĠíĮĮìĿ¼ ìŀħëĭĪëĭ¤ ", Ġ"${ selected Directory }/${ fileName With Extension }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ show Dialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= ĠFile Util . get Package By Path ( selected Directory . path ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Util . create File With Template ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate . VIEW _ MODEL _ TEST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfileName With Extension , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Directory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Param . NAME Ġto Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Param . PACKAGE Ġto ĠpackageName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( event : ĠAn ActionEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselected Directory Ġ= Ġevent . getData ( Common Data Keys . VIRTUAL _ FILE ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġevent . presentation . isEnabled And Visible Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Directory . path . contains (" src / test /( java | kotlin ) ". to Regex ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCreate ViewModel Test Dialog Ui Ġ: ĠDialog Ui Ġ{ ĊĠĠĠ Ġval Ġname TextField Ġ= ĠJ B TextField () ĊĠĠĠ Ġval Ġpanel Ġ= ĠForm Builder . create Form Builder () ĊĠĠĠĠĠĠĠ Ġ. add Labeled Component (" ViewModel ĠìĿ´ë¦Ħ :", Ġname TextField ) ĊĠĠĠĠĠĠĠ Ġ. panel ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Panel (): ĠJPanel Ġ= Ġpanel Ċ }