11package kr.co.finda.androidtemplate.dialogs
22
3- import com.intellij.openapi.actionSystem.CommonDataKeys
3+ import com.intellij.openapi.project.Project
44import com.intellij.openapi.ui.DialogWrapper
5- import com.intellij.openapi.vfs.LocalFileSystem
65import com.intellij.openapi.vfs.VfsUtil
76import com.intellij.openapi.vfs.VirtualFile
87import com.intellij.openapi.vfs.VirtualFileManager
98import com.intellij.ui.EnumComboBoxModel
109import com.intellij.ui.components.JBTextField
1110import com.intellij.ui.layout.panel
12- import com.intellij.util.ResourceUtil
1311import kr.co.finda.androidtemplate.ext.replaceAll
14- import kr.co.finda.androidtemplate.models.ScreenType
1512import kr.co.finda.androidtemplate.models.GeneratedFileInfo
13+ import kr.co.finda.androidtemplate.models.ScreenType
1614import kr.co.finda.androidtemplate.models.TemplateInfo
17- import java.io.File
1815import javax.swing.JComponent
1916
2017class CreateFindaTemplateDialog (
18+ private val project : Project ,
2119 private val virtualFile : VirtualFile
2220) : DialogWrapper(true ) {
2321
@@ -55,6 +53,7 @@ class CreateFindaTemplateDialog(
5553
5654 createCodeFile(generatedFileInfo, templateInfo.codeTemplateContent)
5755 createViewModelFile(generatedFileInfo, templateInfo.viewModelTemplateContent)
56+ createLayoutFile(generatedFileInfo, templateInfo.layoutTemplateContent)
5857
5958 super .doOKAction()
6059 }
@@ -85,8 +84,18 @@ class CreateFindaTemplateDialog(
8584 }
8685
8786 private fun createLayoutFile (
88-
87+ generatedFileInfo : GeneratedFileInfo ,
88+ templateContent : String
8989 ) {
90+ val layoutDirectory = VirtualFileManager .getInstance()
91+ .findFileByUrl(" file://${project.basePath} /src/main/res/layout" )
92+ val layoutFile = layoutDirectory?.createChildData(this , " ${generatedFileInfo.layoutFileName} .xml" )
93+
94+ val content = templateContent
95+ .replaceAll(" @VM_PACKAGE@" , generatedFileInfo.viewModelFileName)
9096
97+ layoutFile?.let {
98+ VfsUtil .saveText(layoutFile, content)
99+ }
91100 }
92101}
0 commit comments