Skip to content

Commit aa60ea8

Browse files
committed
impl: update class usages (1)
- to reflect the new toolbox api
1 parent cc0bdea commit aa60ea8

File tree

6 files changed

+65
-58
lines changed

6 files changed

+65
-58
lines changed

src/main/kotlin/com/coder/gateway/CoderGatewayExtension.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package com.coder.gateway
22

3-
import com.jetbrains.toolbox.gateway.GatewayExtension
4-
import com.jetbrains.toolbox.gateway.PluginSecretStore
5-
import com.jetbrains.toolbox.gateway.PluginSettingsStore
6-
import com.jetbrains.toolbox.gateway.RemoteEnvironmentConsumer
7-
import com.jetbrains.toolbox.gateway.RemoteProvider
8-
import com.jetbrains.toolbox.gateway.ToolboxServiceLocator
9-
import com.jetbrains.toolbox.gateway.ui.ObservablePropertiesFactory
10-
import com.jetbrains.toolbox.gateway.ui.ToolboxUi
3+
import com.jetbrains.toolbox.api.core.PluginSecretStore
4+
import com.jetbrains.toolbox.api.core.PluginSettingsStore
5+
import com.jetbrains.toolbox.api.core.ServiceLocator
6+
import com.jetbrains.toolbox.api.remoteDev.RemoteDevExtension
7+
import com.jetbrains.toolbox.api.remoteDev.RemoteEnvironmentConsumer
8+
import com.jetbrains.toolbox.api.remoteDev.RemoteProvider
9+
import com.jetbrains.toolbox.api.ui.ToolboxUi
10+
import com.jetbrains.toolbox.api.ui.observables.ObservablePropertiesFactory
1111
import kotlinx.coroutines.CoroutineScope
1212
import okhttp3.OkHttpClient
1313

1414
/**
1515
* Entry point into the extension.
1616
*/
17-
class CoderGatewayExtension : GatewayExtension {
17+
class CoderGatewayExtension : RemoteDevExtension {
1818
// All services must be passed in here and threaded as necessary.
19-
override fun createRemoteProviderPluginInstance(serviceLocator: ToolboxServiceLocator): RemoteProvider = CoderRemoteProvider(
19+
override fun createRemoteProviderPluginInstance(serviceLocator: ServiceLocator): RemoteProvider = CoderRemoteProvider(
2020
serviceLocator.getService(OkHttpClient::class.java),
2121
serviceLocator.getService(RemoteEnvironmentConsumer::class.java),
2222
serviceLocator.getService(CoroutineScope::class.java),

src/main/kotlin/com/coder/gateway/CoderRemoteEnvironment.kt

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@ import com.coder.gateway.models.WorkspaceAndAgentStatus
44
import com.coder.gateway.sdk.CoderRestClient
55
import com.coder.gateway.sdk.v2.models.Workspace
66
import com.coder.gateway.sdk.v2.models.WorkspaceAgent
7-
import com.coder.gateway.util.withPath
87
import com.coder.gateway.views.Action
98
import com.coder.gateway.views.EnvironmentView
10-
import com.jetbrains.toolbox.gateway.AbstractRemoteProviderEnvironment
11-
import com.jetbrains.toolbox.gateway.EnvironmentVisibilityState
12-
import com.jetbrains.toolbox.gateway.environments.EnvironmentContentsView
13-
import com.jetbrains.toolbox.gateway.states.EnvironmentStateConsumer
14-
import com.jetbrains.toolbox.gateway.ui.ObservablePropertiesFactory
15-
import com.jetbrains.toolbox.gateway.ui.ToolboxUi
9+
import com.jetbrains.toolbox.api.remoteDev.AbstractRemoteProviderEnvironment
10+
import com.jetbrains.toolbox.api.remoteDev.EnvironmentVisibilityState
11+
import com.jetbrains.toolbox.api.remoteDev.environments.EnvironmentContentsView
12+
import com.jetbrains.toolbox.api.remoteDev.states.EnvironmentStateConsumer
13+
import com.jetbrains.toolbox.api.ui.ToolboxUi
14+
import com.jetbrains.toolbox.api.ui.observables.ObservablePropertiesFactory
1615
import java.util.concurrent.CompletableFuture
1716

1817
/**
@@ -34,17 +33,20 @@ class CoderRemoteEnvironment(
3433
init {
3534
actionsList.add(
3635
Action("Open web terminal") {
37-
ui.openUrl(client.url.withPath("/${workspace.ownerName}/$name/terminal").toString())
36+
// TODO - check this later
37+
// ui.openUrl(client.url.withPath("/${workspace.ownerName}/$name/terminal").toString())
3838
},
3939
)
4040
actionsList.add(
4141
Action("Open in dashboard") {
42-
ui.openUrl(client.url.withPath("/@${workspace.ownerName}/${workspace.name}").toString())
42+
// TODO - check this later
43+
// ui.openUrl(client.url.withPath("/@${workspace.ownerName}/${workspace.name}").toString())
4344
},
4445
)
4546
actionsList.add(
4647
Action("View template") {
47-
ui.openUrl(client.url.withPath("/templates/${workspace.templateName}").toString())
48+
// TODO - check this later
49+
// ui.openUrl(client.url.withPath("/templates/${workspace.templateName}").toString())
4850
},
4951
)
5052
actionsList.add(
@@ -112,6 +114,10 @@ class CoderRemoteEnvironment(
112114
return super.addStateListener(consumer)
113115
}
114116

117+
override fun onDelete() {
118+
throw NotImplementedError()
119+
}
120+
115121
/**
116122
* An environment is equal if it has the same ID.
117123
*/

src/main/kotlin/com/coder/gateway/CoderRemoteProvider.kt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,17 @@ import com.coder.gateway.views.ConnectPage
1616
import com.coder.gateway.views.NewEnvironmentPage
1717
import com.coder.gateway.views.SignInPage
1818
import com.coder.gateway.views.TokenPage
19-
import com.jetbrains.toolbox.gateway.PluginSecretStore
20-
import com.jetbrains.toolbox.gateway.PluginSettingsStore
21-
import com.jetbrains.toolbox.gateway.ProviderVisibilityState
22-
import com.jetbrains.toolbox.gateway.RemoteEnvironmentConsumer
23-
import com.jetbrains.toolbox.gateway.RemoteProvider
24-
import com.jetbrains.toolbox.gateway.ui.AccountDropdownField
25-
import com.jetbrains.toolbox.gateway.ui.ObservablePropertiesFactory
26-
import com.jetbrains.toolbox.gateway.ui.RunnableActionDescription
27-
import com.jetbrains.toolbox.gateway.ui.ToolboxUi
28-
import com.jetbrains.toolbox.gateway.ui.UiPage
19+
import com.jetbrains.toolbox.api.core.PluginSecretStore
20+
import com.jetbrains.toolbox.api.core.PluginSettingsStore
21+
import com.jetbrains.toolbox.api.core.ui.icons.SvgIcon
22+
import com.jetbrains.toolbox.api.remoteDev.ProviderVisibilityState
23+
import com.jetbrains.toolbox.api.remoteDev.RemoteEnvironmentConsumer
24+
import com.jetbrains.toolbox.api.remoteDev.RemoteProvider
25+
import com.jetbrains.toolbox.api.ui.ToolboxUi
26+
import com.jetbrains.toolbox.api.ui.actions.RunnableActionDescription
27+
import com.jetbrains.toolbox.api.ui.components.AccountDropdownField
28+
import com.jetbrains.toolbox.api.ui.components.UiPage
29+
import com.jetbrains.toolbox.api.ui.observables.ObservablePropertiesFactory
2930
import kotlinx.coroutines.CoroutineScope
3031
import kotlinx.coroutines.Job
3132
import kotlinx.coroutines.delay
@@ -186,8 +187,9 @@ class CoderRemoteProvider(
186187
}
187188

188189
override fun getName(): String = "Coder Gateway"
189-
override fun getSvgIcon(): ByteArray =
190-
this::class.java.getResourceAsStream("/icon.svg")?.readAllBytes() ?: byteArrayOf()
190+
override fun getSvgIcon(): SvgIcon =
191+
SvgIcon(this::class.java.getResourceAsStream("/icon.svg")?.readAllBytes() ?: byteArrayOf())
192+
191193
override fun getNoEnvironmentsSvgIcon(): ByteArray =
192194
this::class.java.getResourceAsStream("/icon.svg")?.readAllBytes() ?: byteArrayOf()
193195

@@ -254,7 +256,8 @@ class CoderRemoteProvider(
254256
* than using multiple root pages.
255257
*/
256258
private fun reset() {
257-
ui.showPluginEnvironmentsPage()
259+
// TODO - check this later
260+
// ui.showPluginEnvironmentsPage()
258261
}
259262

260263
/**

src/main/kotlin/com/coder/gateway/services/CoderSecretsService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.coder.gateway.services
22

3-
import com.jetbrains.toolbox.gateway.PluginSecretStore
3+
import com.jetbrains.toolbox.api.core.PluginSecretStore
4+
45

56
/**
67
* Provides Coder secrets backed by the secrets store service.

src/main/kotlin/com/coder/gateway/views/CoderPage.kt

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package com.coder.gateway.views
22

3-
import com.jetbrains.toolbox.gateway.ui.RunnableActionDescription
4-
import com.jetbrains.toolbox.gateway.ui.UiField
5-
import com.jetbrains.toolbox.gateway.ui.UiPage
6-
import com.jetbrains.toolbox.gateway.ui.ValidationErrorField
3+
import com.jetbrains.toolbox.api.core.ui.icons.SvgIcon
4+
import com.jetbrains.toolbox.api.ui.actions.RunnableActionDescription
5+
import com.jetbrains.toolbox.api.ui.components.UiField
6+
import com.jetbrains.toolbox.api.ui.components.UiPage
7+
import com.jetbrains.toolbox.api.ui.components.ValidationErrorField
78
import org.slf4j.LoggerFactory
8-
import java.util.function.BiConsumer
99
import java.util.function.Consumer
10-
import java.util.function.Function
1110

1211
/**
1312
* Base page that handles the icon, displaying error notifications, and
@@ -35,7 +34,7 @@ abstract class CoderPage(
3534
private var notifier: Consumer<Throwable>? = null
3635

3736
/** Used to get field values. */
38-
private var getter: Function<UiField, *>? = null
37+
private var stateAccessor: UiPage.UiFieldStateAccessor? = null
3938

4039
/** Let Toolbox know the fields should be updated. */
4140
protected var listener: Consumer<UiField?>? = null
@@ -48,12 +47,13 @@ abstract class CoderPage(
4847
*
4948
* This seems to only work on the first page.
5049
*/
51-
override fun getSvgIcon(): ByteArray =
52-
if (showIcon) {
53-
this::class.java.getResourceAsStream("/icon.svg")?.readAllBytes() ?: byteArrayOf()
50+
override fun getSvgIcon(): SvgIcon {
51+
return if (showIcon) {
52+
SvgIcon(this::class.java.getResourceAsStream("/icon.svg")?.readAllBytes() ?: byteArrayOf())
5453
} else {
55-
byteArrayOf()
54+
SvgIcon(byteArrayOf())
5655
}
56+
}
5757

5858
/**
5959
* Show an error as a popup on this page.
@@ -70,9 +70,8 @@ abstract class CoderPage(
7070
* TODO@JB: Is this really meant to be used with casting? I kind of expected
7171
* to be able to do `myField.value`.
7272
*/
73-
fun get(field: UiField): Any {
74-
val getter = getter ?: throw Exception("Page is not being displayed")
75-
return getter.apply(field)
73+
fun get(field: UiField): Any? {
74+
return stateAccessor?.get(field)
7675
}
7776

7877
/**
@@ -82,11 +81,9 @@ abstract class CoderPage(
8281
this.listener = listener
8382
}
8483

85-
/**
86-
* The setter is unused but the getter is used to get field values.
87-
*/
88-
override fun setStateAccessor(setter: BiConsumer<UiField, Any>?, getter: Function<UiField, *>?) {
89-
this.getter = getter
84+
85+
override fun setStateAccessor(stateAccessor: UiPage.UiFieldStateAccessor?) {
86+
this.stateAccessor = stateAccessor
9087
}
9188

9289
/**

src/main/kotlin/com/coder/gateway/views/CoderSettingsPage.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.coder.gateway.views
22

33
import com.coder.gateway.services.CoderSettingsService
4-
import com.jetbrains.toolbox.gateway.ui.CheckboxField
5-
import com.jetbrains.toolbox.gateway.ui.RunnableActionDescription
6-
import com.jetbrains.toolbox.gateway.ui.TextField
7-
import com.jetbrains.toolbox.gateway.ui.TextType
8-
import com.jetbrains.toolbox.gateway.ui.UiField
4+
import com.jetbrains.toolbox.api.ui.actions.RunnableActionDescription
5+
import com.jetbrains.toolbox.api.ui.components.CheckboxField
6+
import com.jetbrains.toolbox.api.ui.components.TextField
7+
import com.jetbrains.toolbox.api.ui.components.TextType
8+
import com.jetbrains.toolbox.api.ui.components.UiField
99

1010
/**
1111
* A page for modifying Coder settings.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy