Skip to content

Commit 20149f8

Browse files
Merge pull request #153 from msivasubramaniaan/fix-disable-connect-btn-when-no-workspace-selection
Connect button disabled when no workspace selected
2 parents 17e27b3 + 1745d31 commit 20149f8

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/main/kotlin/com/redhat/devtools/gateway/view/DevSpacesWizardView.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,38 @@ class DevSpacesWizardView(devSpacesContext: DevSpacesContext) : BorderLayoutPane
9494
previousButton.text = previousActionText
9595
onInit()
9696
}
97+
98+
refreshNextButtonState()
99+
100+
// If this is the RemoteServerConnection step, watch for changes
101+
val remoteStep = steps[currentStep]
102+
if (remoteStep is DevSpacesRemoteServerConnectionStepView) {
103+
val listField = remoteStep.javaClass.getDeclaredField("listDevWorkspaces")
104+
listField.isAccessible = true
105+
val list = listField.get(remoteStep) as javax.swing.JList<*>
106+
107+
list.addListSelectionListener {
108+
refreshNextButtonState()
109+
}
110+
}
111+
}
112+
113+
private fun refreshNextButtonState() {
114+
val step = steps[currentStep]
115+
nextButton.isEnabled = when (step) {
116+
is DevSpacesRemoteServerConnectionStepView -> {
117+
val listField = step.javaClass.getDeclaredField("listDevWorkspaces")
118+
listField.isAccessible = true
119+
val list = listField.get(step) as javax.swing.JList<*>
120+
// Enable if text does NOT match, OR list is NOT empty
121+
step.nextActionText == com.redhat.devtools.gateway.DevSpacesBundle
122+
.message("connector.wizard_step.remote_server_connection.button.next") &&
123+
!list.isSelectionEmpty
124+
}
125+
else -> {
126+
true
127+
}
128+
}
97129
}
98130

99131
private fun isFirstStep(): Boolean {

0 commit comments

Comments
 (0)