-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCoderToolboxContext.kt
More file actions
96 lines (89 loc) · 3 KB
/
Copy pathCoderToolboxContext.kt
File metadata and controls
96 lines (89 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package com.coder.toolbox
import com.coder.toolbox.store.CoderSecretsStore
import com.coder.toolbox.store.CoderSettingsStore
import com.coder.toolbox.util.toURL
import com.jetbrains.toolbox.api.core.diagnostics.Logger
import com.jetbrains.toolbox.api.core.os.LocalDesktopManager
import com.jetbrains.toolbox.api.localization.LocalizableStringFactory
import com.jetbrains.toolbox.api.remoteDev.connection.ClientHelper
import com.jetbrains.toolbox.api.remoteDev.connection.RemoteToolsHelper
import com.jetbrains.toolbox.api.remoteDev.connection.ToolboxProxySettings
import com.jetbrains.toolbox.api.remoteDev.states.EnvironmentStateColorPalette
import com.jetbrains.toolbox.api.remoteDev.ui.EnvironmentUiPageManager
import com.jetbrains.toolbox.api.ui.ToolboxUi
import kotlinx.coroutines.CoroutineScope
import java.net.URL
import java.util.UUID
@Suppress("UnstableApiUsage")
data class CoderToolboxContext(
val ui: ToolboxUi,
val envPageManager: EnvironmentUiPageManager,
val envStateColorPalette: EnvironmentStateColorPalette,
val remoteIdeOrchestrator: RemoteToolsHelper,
val jbClientOrchestrator: ClientHelper,
val desktop: LocalDesktopManager,
val cs: CoroutineScope,
val logger: Logger,
val i18n: LocalizableStringFactory,
val settingsStore: CoderSettingsStore,
val secrets: CoderSecretsStore,
val proxySettings: ToolboxProxySettings,
) {
/**
* Try to find a URL.
*
* In order of preference:
*
* 1. Last used URL.
* 2. URL in settings.
* 3. CODER_URL.
* 4. URL in global cli config.
*/
val deploymentUrl: URL
get() {
if (this.secrets.lastDeploymentURL.isNotBlank()) {
return this.secrets.lastDeploymentURL.toURL()
}
return this.settingsStore.defaultURL.toURL()
}
suspend fun logAndShowError(title: String, error: String) {
logger.error(error)
ui.showSnackbar(
UUID.randomUUID().toString(),
i18n.pnotr(title),
i18n.pnotr(error),
i18n.ptrl("OK")
)
}
suspend fun logAndShowError(title: String, error: String, exception: Exception) {
logger.error(exception, error)
ui.showSnackbar(
UUID.randomUUID().toString(),
i18n.pnotr(title),
i18n.pnotr(error),
i18n.ptrl("OK")
)
}
suspend fun logAndShowWarning(title: String, warning: String) {
logger.warn(warning)
ui.showSnackbar(
UUID.randomUUID().toString(),
i18n.pnotr(title),
i18n.pnotr(warning),
i18n.ptrl("OK")
)
}
suspend fun logAndShowInfo(title: String, info: String) {
logger.info(info)
ui.showSnackbar(
UUID.randomUUID().toString(),
i18n.pnotr(title),
i18n.pnotr(info),
i18n.ptrl("OK")
)
}
fun popupPluginMainPage() {
this.ui.showWindow()
this.envPageManager.showPluginEnvironmentsPage(true)
}
}