Skip to content

Commit bd7b8f3

Browse files
Able to create screens and entity listeners for embeddable entities #74
1 parent 00a9e75 commit bd7b8f3

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/main/kotlin/com/haulmont/cuba/cli/cubaplugin/entitylistener/CreateEntityListenerCommand.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import com.haulmont.cuba.cli.kodein
2929
import com.haulmont.cuba.cli.prompting.Answers
3030
import com.haulmont.cuba.cli.prompting.QuestionsList
3131
import org.kodein.di.generic.instance
32+
import java.io.PrintWriter
3233

3334
@Parameters(commandDescription = "Creates new entity listener")
3435
class CreateEntityListenerCommand : GeneratorCommand<EntityListenerModel>() {
@@ -38,6 +39,8 @@ class CreateEntityListenerCommand : GeneratorCommand<EntityListenerModel>() {
3839

3940
private val entitySearch: EntitySearch by cubaKodein.instance()
4041

42+
private val printWriter: PrintWriter by cubaKodein.instance()
43+
4144
override fun getModelName(): String = EntityListenerModel.MODEL_NAME
4245

4346
override fun preExecute() = checkProjectExistence()
@@ -47,8 +50,10 @@ class CreateEntityListenerCommand : GeneratorCommand<EntityListenerModel>() {
4750
.filter { !it.embeddable }
4851
.map { it.fqn }
4952

50-
if (entitiesList.isEmpty())
51-
fail("Project does not have any suitable entities.")
53+
if (entitiesList.isEmpty()) {
54+
printWriter.println("Project does not have any suitable entities.")
55+
abort()
56+
}
5257

5358
question("className", "Listener name") {
5459
validate {

src/main/kotlin/com/haulmont/cuba/cli/cubaplugin/screen/entityscreen/EntityScreenCommandBase.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,18 @@ package com.haulmont.cuba.cli.cubaplugin.screen.entityscreen
1818

1919
import com.haulmont.cuba.cli.Resources
2020
import com.haulmont.cuba.cli.commands.NonInteractiveInfo
21+
import com.haulmont.cuba.cli.cubaplugin.di.cubaKodein
2122
import com.haulmont.cuba.cli.cubaplugin.screen.ScreenCommandBase
2223
import com.haulmont.cuba.cli.prompting.QuestionsList
24+
import org.kodein.di.generic.instance
25+
import java.io.PrintWriter
2326

2427
abstract class EntityScreenCommandBase<out T : EntityScreenModel> : ScreenCommandBase<T>(), NonInteractiveInfo {
2528

2629
protected val resources by Resources.fromMyPlugin()
2730

31+
protected val printWriter: PrintWriter by cubaKodein.instance()
32+
2833
override fun getNonInteractiveParameters(): Map<String, String> = mapOf(
2934
"entityName" to "Fully qualified entity name",
3035
"packageName" to "Package name",
@@ -41,8 +46,10 @@ abstract class EntityScreenCommandBase<out T : EntityScreenModel> : ScreenComman
4146
val entitiesList = entitySearch.getAllEntities()
4247
.filter { !it.embeddable }
4348
.map { it.fqn }
44-
if (entitiesList.isEmpty())
45-
fail("Project does not have any suitable entities.")
49+
if (entitiesList.isEmpty()) {
50+
printWriter.println("Project does not have any suitable entities.")
51+
abort()
52+
}
4653

4754
options("entityName", "Choose entity", entitiesList)
4855

0 commit comments

Comments
 (0)