Skip to content

Commit b502006

Browse files
committed
패키지 정보 담은 템플릿 생성
1 parent 76f88d1 commit b502006

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

src/main/kotlin/kr/co/finda/androidtemplate/dialogs/CreateFindaTemplateDialog.kt

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class CreateFindaTemplateDialog(
3434
return panel {
3535

3636
row("화면 이름") {
37-
nameTextField = textField({""}, {}).component
37+
nameTextField = textField({ "" }, {}).component
3838
}
3939

4040
row("화면 종류:") {
@@ -51,39 +51,53 @@ class CreateFindaTemplateDialog(
5151
val templateInfo = TemplateInfo(screenTypeModel.selectedItem)
5252
val generatedFileInfo = screenTypeModel.selectedItem.getGeneratedFileInfo(name)
5353

54-
createCodeFile(generatedFileInfo, templateInfo.codeTemplateContent)
55-
createViewModelFile(generatedFileInfo, templateInfo.viewModelTemplateContent)
56-
createLayoutFile(generatedFileInfo, templateInfo.layoutTemplateContent)
54+
val packageName = getPackageNameByPath(virtualFile.path)
55+
56+
createCodeFile(packageName, generatedFileInfo, templateInfo.codeTemplateContent)
57+
createViewModelFile(packageName, generatedFileInfo, templateInfo.viewModelTemplateContent)
58+
createLayoutFile(packageName, generatedFileInfo, templateInfo.layoutTemplateContent)
5759

5860
super.doOKAction()
5961
}
6062

63+
private fun getPackageNameByPath(path: String): String {
64+
return try {
65+
path.split("java/")[1]
66+
.replaceAll("/", ".")
67+
} catch (e: IndexOutOfBoundsException) {
68+
""
69+
}
70+
}
71+
6172
private fun createCodeFile(
73+
packageName: String,
6274
generatedFileInfo: GeneratedFileInfo,
6375
templateContent: String
6476
) {
6577
val codeFile = virtualFile.createChildData(this, "${generatedFileInfo.codeFileName}.kt")
6678

6779
val content = templateContent.replaceAll("@NAME@", name)
68-
.replaceAll("@PACKAGE@", "")
80+
.replaceAll("@PACKAGE@", packageName)
6981
.replaceAll("@LAYOUT_NAME@", generatedFileInfo.layoutFileName)
7082

7183
VfsUtil.saveText(codeFile, content)
7284
}
7385

7486
private fun createViewModelFile(
87+
packageName: String,
7588
generatedFileInfo: GeneratedFileInfo,
7689
templateContent: String
7790
) {
7891
val viewModelFile = virtualFile.createChildData(this, "${generatedFileInfo.viewModelFileName}.kt")
7992

80-
val content= templateContent.replaceAll("@NAME@", name)
81-
.replaceAll("@PACKAGE@", "")
93+
val content = templateContent.replaceAll("@NAME@", name)
94+
.replaceAll("@PACKAGE@", packageName)
8295

8396
VfsUtil.saveText(viewModelFile, content)
8497
}
8598

8699
private fun createLayoutFile(
100+
packageName: String,
87101
generatedFileInfo: GeneratedFileInfo,
88102
templateContent: String
89103
) {
@@ -92,7 +106,7 @@ class CreateFindaTemplateDialog(
92106
val layoutFile = layoutDirectory?.createChildData(this, "${generatedFileInfo.layoutFileName}.xml")
93107

94108
val content = templateContent
95-
.replaceAll("@VM_PACKAGE@", generatedFileInfo.viewModelFileName)
109+
.replaceAll("@VM_PACKAGE@", "${packageName}.${generatedFileInfo.viewModelFileName}")
96110

97111
layoutFile?.let {
98112
VfsUtil.saveText(layoutFile, content)

0 commit comments

Comments
 (0)