Skip to content

Commit 3e1d120

Browse files
committed
ActionRouter 추가
1 parent d0295c0 commit 3e1d120

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

src/main/kotlin/kr/co/finda/androidtemplate/feature/createFindaTemplate/action/CreateFindaTemplateAction.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ import com.intellij.openapi.vfs.VirtualFile
99
import icons.Icons
1010
import kr.co.finda.androidtemplate.type.PluginError
1111
import kr.co.finda.androidtemplate.feature.createFindaTemplate.dialog.CreateFindaTemplateDialog
12+
import kr.co.finda.androidtemplate.model.ActionRouterImpl
1213

1314
class CreateFindaTemplateAction : AnAction(), CreateFindaTemplateActionContract.View {
1415

1516
private val presenter: CreateFindaTemplateActionPresenter by lazy {
16-
CreateFindaTemplateActionPresenter(this)
17+
CreateFindaTemplateActionPresenter(this, ActionRouterImpl())
1718
}
1819

1920
override fun actionPerformed(e: AnActionEvent) {
@@ -24,7 +25,8 @@ class CreateFindaTemplateAction : AnAction(), CreateFindaTemplateActionContract.
2425
}
2526

2627
override fun update(event: AnActionEvent) {
27-
presenter.onActionUpdate(event)
28+
val selectedDirectory = event.getData(CommonDataKeys.VIRTUAL_FILE)
29+
presenter.onActionUpdate(event, selectedDirectory)
2830
}
2931

3032
override fun showErrorDialog(

src/main/kotlin/kr/co/finda/androidtemplate/feature/createFindaTemplate/action/CreateFindaTemplateActionContract.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ interface CreateFindaTemplateActionContract {
2525
selectedDirectory: VirtualFile?
2626
)
2727

28-
fun onActionUpdate(event: AnActionEvent)
28+
fun onActionUpdate(
29+
event: AnActionEvent,
30+
selectedDirectory: VirtualFile?
31+
)
2932
}
3033
}

src/main/kotlin/kr/co/finda/androidtemplate/feature/createFindaTemplate/action/CreateFindaTemplateActionPresenter.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ package kr.co.finda.androidtemplate.feature.createFindaTemplate.action
33
import com.intellij.openapi.actionSystem.AnActionEvent
44
import com.intellij.openapi.project.Project
55
import com.intellij.openapi.vfs.VirtualFile
6+
import kr.co.finda.androidtemplate.model.ActionRouter
67
import kr.co.finda.androidtemplate.type.PluginError
78

89
class CreateFindaTemplateActionPresenter(
9-
private val view: CreateFindaTemplateActionContract.View
10+
private val view: CreateFindaTemplateActionContract.View,
11+
private val actionRouter: ActionRouter
1012
) : CreateFindaTemplateActionContract.Presenter {
1113

1214
override fun onCreateFindaTemplateActionPerformed(
@@ -26,8 +28,10 @@ class CreateFindaTemplateActionPresenter(
2628
view.showCreateFindaTemplateDialog(project, selectedDirectory)
2729
}
2830

29-
override fun onActionUpdate(event: AnActionEvent) {
30-
event.presentation.isEnabledAndVisible = event.project != null
31+
override fun onActionUpdate(event: AnActionEvent, selectedDirectory: VirtualFile?) {
32+
event.presentation.isEnabledAndVisible =
33+
if (selectedDirectory != null) actionRouter.isCreateFindaTemplateEnable(selectedDirectory.path)
34+
else false
3135
}
3236

3337
private fun isValidSelectedDirectoryPath(path: String): Boolean {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package kr.co.finda.androidtemplate.model
2+
3+
interface ActionRouter {
4+
5+
fun isCreateFindaTemplateEnable(path: String): Boolean
6+
}
7+
8+
class ActionRouterImpl: ActionRouter {
9+
override fun isCreateFindaTemplateEnable(path: String): Boolean {
10+
return path.contains("src/main/(java|kotlin)".toRegex())
11+
}
12+
}

0 commit comments

Comments
 (0)