@@ -9,19 +9,23 @@ import com.intellij.openapi.project.Project
9
9
import com.intellij.openapi.ui.DialogWrapper
10
10
import com.intellij.ui.CollectionComboBoxModel
11
11
import com.intellij.ui.components.JBTextField
12
- import com.intellij.ui.layout.GrowPolicy
12
+ import com.intellij.ui.dsl.builder.AlignX
13
+ import com.intellij.ui.dsl.builder.bindItem
14
+ import com.intellij.ui.dsl.builder.columns
15
+ import com.intellij.ui.dsl.builder.panel
16
+ import com.intellij.ui.dsl.builder.toNullableProperty
13
17
import com.intellij.ui.layout.applyToComponent
14
- import com.intellij.ui.layout.panel
15
18
import kotlinx.coroutines.launch
16
19
import kotlinx.coroutines.withContext
17
20
import software.aws.toolkits.core.ConnectionSettings
18
21
import software.aws.toolkits.core.utils.getLogger
19
22
import software.aws.toolkits.core.utils.warn
20
23
import software.aws.toolkits.jetbrains.core.coroutines.getCoroutineUiContext
21
24
import software.aws.toolkits.jetbrains.core.coroutines.projectCoroutineScope
25
+ import software.aws.toolkits.jetbrains.core.map
22
26
import software.aws.toolkits.jetbrains.services.ecs.ContainerDetails
23
27
import software.aws.toolkits.jetbrains.services.ecs.resources.EcsResources
24
- import software.aws.toolkits.jetbrains.ui.resourceSelector
28
+ import software.aws.toolkits.jetbrains.ui.ResourceSelector
25
29
import software.aws.toolkits.jetbrains.utils.notifyError
26
30
import software.aws.toolkits.resources.message
27
31
import software.aws.toolkits.telemetry.EcsExecuteCommandType
@@ -37,6 +41,9 @@ class RunCommandDialog(private val project: Project, private val container: Cont
37
41
38
42
var command = " "
39
43
var task: String? = null
44
+ val taskList = ResourceSelector .builder().resource(
45
+ EcsResources .listTasks(container.service.clusterArn(), container.service.serviceArn()).map { it }
46
+ ).awsConnection(project).build()
40
47
41
48
init {
42
49
super .init ()
@@ -46,26 +53,27 @@ class RunCommandDialog(private val project: Project, private val container: Cont
46
53
47
54
override fun createCenterPanel (): JComponent = panel {
48
55
row(message(" ecs.execute_command_task.label" )) {
49
- resourceSelector(
50
- EcsResources .listTasks(container.service.clusterArn(), container.service.serviceArn()),
51
- connectionSettings,
52
- ::task
53
- ).constraints(growX, pushX)
54
- .growPolicy(GrowPolicy .MEDIUM_TEXT )
55
- .withErrorOnApplyIf(message(" ecs.execute_command_task_comboBox_empty" )) { it.selected().isNullOrEmpty() }
56
+ cell(taskList)
57
+ .bindItem(::task.toNullableProperty())
58
+ .errorOnApply(message(" ecs.execute_command_task_comboBox_empty" )) {
59
+ it.selected().isNullOrEmpty()
60
+ }.columns(30 )
56
61
}
57
62
row(message(" ecs.execute_command.label" )) {
58
- comboBox(commandList, ::command)
59
- .constraints(grow)
60
- .withErrorOnApplyIf(message(" ecs.execute_command_no_command" )) { it.item.isNullOrEmpty() }
63
+ comboBox(commandList).bindItem({ command }, {
64
+ if (it != null ) {
65
+ command = it
66
+ }
67
+ })
68
+ .errorOnApply(message(" ecs.execute_command_no_command" )) { it.item.isNullOrEmpty() }
61
69
.applyToComponent {
62
70
isEditable = true
63
71
selectedIndex = - 1
64
72
editor = object : BasicComboBoxEditor .UIResource () {
65
73
override fun createEditorComponent () =
66
74
JBTextField ().also { it.emptyText.text = message(" ecs.execute_command_run_command_default_text" ) }
67
75
}
68
- }
76
+ }.align( AlignX . FILL )
69
77
}
70
78
}
71
79
0 commit comments