Skip to content

Commit 9c876af

Browse files
committed
remove underline for disabled link
1 parent 7cd80fb commit 9c876af

File tree

2 files changed

+46
-56
lines changed

2 files changed

+46
-56
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ import com.coder.gateway.models.WorkspaceProjectIDE
77
import com.coder.gateway.models.toIdeWithStatus
88
import com.coder.gateway.models.toRawString
99
import com.coder.gateway.models.withWorkspaceProject
10-
import com.coder.gateway.sdk.CoderRestClient
11-
import com.coder.gateway.sdk.v2.models.Workspace
12-
import com.coder.gateway.sdk.v2.models.WorkspaceStatus
1310
import com.coder.gateway.services.CoderRecentWorkspaceConnectionsService
1411
import com.coder.gateway.services.CoderSettingsService
1512
import com.coder.gateway.util.SemVer
@@ -68,7 +65,6 @@ class CoderRemoteConnectionHandle {
6865
private val localTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm")
6966

7067
fun connect(getParameters: (indicator: ProgressIndicator) -> WorkspaceProjectIDE) {
71-
7268
val clientLifetime = LifetimeDefinition()
7369
clientLifetime.launchUnderBackgroundProgress(CoderGatewayBundle.message("gateway.connector.coder.connection.provider.title")) {
7470
try {

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

Lines changed: 46 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.coder.gateway.CoderGatewayConstants
77
import com.coder.gateway.CoderRemoteConnectionHandle
88
import com.coder.gateway.icons.CoderIcons
99
import com.coder.gateway.models.WorkspaceAgentListModel
10-
import com.coder.gateway.models.WorkspaceAndAgentStatus
1110
import com.coder.gateway.models.WorkspaceProjectIDE
1211
import com.coder.gateway.models.toWorkspaceProjectIDE
1312
import com.coder.gateway.sdk.CoderRestClient
@@ -18,10 +17,8 @@ import com.coder.gateway.services.CoderRestClientService
1817
import com.coder.gateway.services.CoderSettingsService
1918
import com.coder.gateway.util.humanizeConnectionError
2019
import com.coder.gateway.util.toURL
21-
import com.coder.gateway.util.withPath
2220
import com.coder.gateway.util.withoutNull
2321
import com.intellij.icons.AllIcons
24-
import com.intellij.ide.BrowserUtil
2522
import com.intellij.openapi.Disposable
2623
import com.intellij.openapi.actionSystem.AnActionEvent
2724
import com.intellij.openapi.application.ModalityState
@@ -33,7 +30,6 @@ import com.intellij.openapi.ui.panel.ComponentPanelBuilder
3330
import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeScreenUIManager
3431
import com.intellij.ui.AnimatedIcon
3532
import com.intellij.ui.DocumentAdapter
36-
import com.intellij.ui.JBColor
3733
import com.intellij.ui.SearchTextField
3834
import com.intellij.ui.components.ActionLink
3935
import com.intellij.ui.components.JBScrollPane
@@ -206,63 +202,61 @@ class CoderGatewayRecentWorkspaceConnectionsView(private val setContentCallback:
206202
label("").resizableColumn().align(AlignX.FILL)
207203
}.topGap(gap)
208204

209-
connections.forEach { workspaceProjectIDE ->
210-
val enableLinks = listOf(WorkspaceStatus.STOPPED, WorkspaceStatus.CANCELED, WorkspaceStatus.FAILED, WorkspaceStatus.STARTING, WorkspaceStatus.RUNNING).contains(workspaceWithAgent?.workspace?.latestBuild?.status)
211-
val inLoadingState = listOf(WorkspaceStatus.STARTING, WorkspaceStatus.CANCELING, WorkspaceStatus.DELETING, WorkspaceStatus.STOPPING).contains(workspaceWithAgent?.workspace?.latestBuild?.status)
205+
connections.forEach { workspaceProjectIDE ->
206+
val enableLinks = listOf(WorkspaceStatus.STOPPED, WorkspaceStatus.CANCELED, WorkspaceStatus.FAILED, WorkspaceStatus.STARTING, WorkspaceStatus.RUNNING).contains(workspaceWithAgent?.workspace?.latestBuild?.status)
207+
val inLoadingState = listOf(WorkspaceStatus.STARTING, WorkspaceStatus.CANCELING, WorkspaceStatus.DELETING, WorkspaceStatus.STOPPING).contains(workspaceWithAgent?.workspace?.latestBuild?.status)
212208

213-
val actionLink = ActionLink(workspaceProjectIDE.projectPathDisplay) {
214-
withoutNull(deployment?.client, workspaceWithAgent?.workspace) { client, workspace ->
215-
CoderRemoteConnectionHandle().connect {
216-
if (listOf(WorkspaceStatus.STOPPED, WorkspaceStatus.CANCELED, WorkspaceStatus.FAILED).contains(workspace.latestBuild.status)) {
217-
client.startWorkspace(workspace)
218-
}
219-
workspaceProjectIDE
220-
}
221-
GatewayUI.getInstance().reset()
222-
}
223-
}
224-
225-
if (!enableLinks) {
226-
actionLink.foreground = Color.GRAY
227-
actionLink.actionListeners.forEach { actionLink.removeActionListener(it) }
228-
}
229-
230-
row {
231-
if (inLoadingState) {
232-
icon(AnimatedIcon.Default())
233-
}
234-
label(workspaceWithAgent?.status?.description.orEmpty())
209+
row {
210+
if (inLoadingState) {
211+
icon(AnimatedIcon.Default())
235212
}
213+
label(workspaceWithAgent?.status?.description.orEmpty())
214+
}
236215

237-
row {
238-
icon(workspaceProjectIDE.ideProduct.icon)
216+
row {
217+
icon(workspaceProjectIDE.ideProduct.icon)
218+
if (enableLinks) {
239219
cell(
240-
actionLink,
241-
)
242-
label("").resizableColumn().align(AlignX.FILL)
243-
label(workspaceProjectIDE.ideName).applyToComponent {
244-
foreground = JBUI.CurrentTheme.ContextHelp.FOREGROUND
245-
font = ComponentPanelBuilder.getCommentFont(font)
246-
}
247-
label(workspaceProjectIDE.lastOpened.toString()).applyToComponent {
248-
foreground = JBUI.CurrentTheme.ContextHelp.FOREGROUND
249-
font = ComponentPanelBuilder.getCommentFont(font)
250-
}
251-
actionButton(
252-
object : DumbAwareAction(
253-
CoderGatewayBundle.message("gateway.connector.recent-connections.remove.button.tooltip"),
254-
"",
255-
CoderIcons.DELETE,
256-
) {
257-
override fun actionPerformed(e: AnActionEvent) {
258-
recentConnectionsService.removeConnection(workspaceProjectIDE.toRecentWorkspaceConnection())
259-
updateRecentView()
220+
ActionLink(workspaceProjectIDE.projectPathDisplay) {
221+
withoutNull(deployment?.client, workspaceWithAgent?.workspace) { client, workspace ->
222+
CoderRemoteConnectionHandle().connect {
223+
if (listOf(WorkspaceStatus.STOPPED, WorkspaceStatus.CANCELED, WorkspaceStatus.FAILED).contains(workspace.latestBuild.status)) {
224+
client.startWorkspace(workspace)
225+
}
226+
workspaceProjectIDE
227+
}
228+
GatewayUI.getInstance().reset()
260229
}
261230
},
262231
)
232+
} else {
233+
label(workspaceProjectIDE.projectPathDisplay).applyToComponent {
234+
foreground = Color.GRAY
235+
}
236+
}
237+
label("").resizableColumn().align(AlignX.FILL)
238+
label(workspaceProjectIDE.ideName).applyToComponent {
239+
foreground = JBUI.CurrentTheme.ContextHelp.FOREGROUND
240+
font = ComponentPanelBuilder.getCommentFont(font)
241+
}
242+
label(workspaceProjectIDE.lastOpened.toString()).applyToComponent {
243+
foreground = JBUI.CurrentTheme.ContextHelp.FOREGROUND
244+
font = ComponentPanelBuilder.getCommentFont(font)
263245
}
246+
actionButton(
247+
object : DumbAwareAction(
248+
CoderGatewayBundle.message("gateway.connector.recent-connections.remove.button.tooltip"),
249+
"",
250+
CoderIcons.DELETE,
251+
) {
252+
override fun actionPerformed(e: AnActionEvent) {
253+
recentConnectionsService.removeConnection(workspaceProjectIDE.toRecentWorkspaceConnection())
254+
updateRecentView()
255+
}
256+
},
257+
)
264258
}
265-
259+
}
266260
}
267261
}
268262
}.apply {

0 commit comments

Comments
 (0)