@@ -2,13 +2,15 @@ package com.coder.gateway.views
2
2
3
3
import com.coder.gateway.CoderGatewayBundle
4
4
import com.coder.gateway.models.LoginModel
5
+ import com.coder.gateway.models.UriScheme
5
6
import com.coder.gateway.sdk.CoderClientService
6
7
import com.intellij.credentialStore.CredentialAttributes
7
8
import com.intellij.credentialStore.askPassword
8
9
import com.intellij.ide.IdeBundle
9
10
import com.intellij.openapi.Disposable
10
11
import com.intellij.openapi.application.ApplicationManager
11
12
import com.intellij.openapi.diagnostic.Logger
13
+ import com.intellij.openapi.ui.DialogPanel
12
14
import com.intellij.openapi.ui.panel.ComponentPanelBuilder
13
15
import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeScreenUIManager
14
16
import com.intellij.ui.IconManager
@@ -18,8 +20,10 @@ import com.intellij.ui.dsl.builder.BottomGap
18
20
import com.intellij.ui.dsl.builder.RightGap
19
21
import com.intellij.ui.dsl.builder.TopGap
20
22
import com.intellij.ui.dsl.builder.bindIntText
23
+ import com.intellij.ui.dsl.builder.bindItem
21
24
import com.intellij.ui.dsl.builder.bindText
22
25
import com.intellij.ui.dsl.builder.panel
26
+ import com.intellij.ui.dsl.builder.toNullableProperty
23
27
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
24
28
import com.intellij.util.ui.JBFont
25
29
import com.intellij.util.ui.JBUI
@@ -40,6 +44,8 @@ class CoderGatewayLoginView : BorderLayoutPanel(), Disposable {
40
44
private val model = LoginModel ()
41
45
private val coderClient: CoderClientService = ApplicationManager .getApplication().getService(CoderClientService ::class .java)
42
46
47
+ private lateinit var loginPanel: DialogPanel
48
+
43
49
init {
44
50
initView()
45
51
}
@@ -50,8 +56,8 @@ class CoderGatewayLoginView : BorderLayoutPanel(), Disposable {
50
56
addToBottom(createBackComponent())
51
57
}
52
58
53
- private fun createLoginComponent (): Component {
54
- return panel {
59
+ private fun createLoginComponent (): DialogPanel {
60
+ loginPanel = panel {
55
61
indent {
56
62
row {
57
63
label(CoderGatewayBundle .message(" gateway.connector.view.login.header.text" )).applyToComponent {
@@ -65,10 +71,15 @@ class CoderGatewayLoginView : BorderLayoutPanel(), Disposable {
65
71
row {
66
72
browserLink(CoderGatewayBundle .message(" gateway.connector.view.login.documentation.action" ), " https://coder.com/docs/coder/latest/workspaces" )
67
73
}.bottomGap(BottomGap .MEDIUM )
68
- row(CoderGatewayBundle .message(" gateway.connector.view.login.host.label" )) {
74
+ row {
75
+ label(CoderGatewayBundle .message(" gateway.connector.view.login.scheme.label" ))
76
+ comboBox(UriScheme .values().toList()).bindItem(model::uriScheme.toNullableProperty())
77
+ label(CoderGatewayBundle .message(" gateway.connector.view.login.host.label" ))
69
78
textField().resizableColumn().horizontalAlign(HorizontalAlign .FILL ).gap(RightGap .SMALL ).bindText(model::host)
70
- intTextField(0 .. 65536 ).bindIntText(model::port).label(CoderGatewayBundle .message(" gateway.connector.view.login.port.label" ))
79
+ label(CoderGatewayBundle .message(" gateway.connector.view.login.port.label" ))
80
+ intTextField(0 .. 65536 ).bindIntText(model::port)
71
81
button(CoderGatewayBundle .message(" gateway.connector.view.login.connect.action" )) {
82
+ loginPanel.apply ()
72
83
model.password = askPassword(
73
84
null ,
74
85
CoderGatewayBundle .message(" gateway.connector.view.login.credentials.dialog.title" ),
@@ -77,10 +88,10 @@ class CoderGatewayLoginView : BorderLayoutPanel(), Disposable {
77
88
false
78
89
)
79
90
cs.launch {
80
- withContext(Dispatchers .IO ) {
81
- coderClient.initClientSession(model.host, model.port, model.email, model.password!! )
91
+ val workspaces = withContext(Dispatchers .IO ) {
92
+ coderClient.initClientSession(model.uriScheme, model.host, model.port, model.email, model.password!! )
93
+ coderClient.workspaces()
82
94
}
83
- logger.info(" Session token:${coderClient.sessionToken} " )
84
95
}
85
96
86
97
}.applyToComponent {
@@ -98,6 +109,8 @@ class CoderGatewayLoginView : BorderLayoutPanel(), Disposable {
98
109
}.apply {
99
110
background = WelcomeScreenUIManager .getMainAssociatedComponentBackground()
100
111
}
112
+
113
+ return loginPanel
101
114
}
102
115
103
116
private fun createBackComponent (): Component {
0 commit comments