@@ -10,24 +10,24 @@ import com.intellij.openapi.actionSystem.ActionManager
10
10
import com.intellij.openapi.project.Project
11
11
import com.intellij.ui.SimpleTextAttributes
12
12
import software.aws.toolkits.jetbrains.ToolkitPlaces
13
- import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
14
13
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeCatalystConnection
15
- import software.aws.toolkits.jetbrains.core.credentials.sono.isSono
16
14
import software.aws.toolkits.jetbrains.core.explorer.actions.AnActionTreeNode
17
15
import software.aws.toolkits.jetbrains.core.explorer.devToolsTab.nodes.actions.OpenWorkspaceInGateway
16
+ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.ActiveConnection
17
+ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.ActiveConnectionType
18
+ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.BearerTokenFeatureSet
19
+ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.checkBearerConnectionValidity
18
20
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
19
21
import software.aws.toolkits.resources.message
20
22
21
23
class CawsRootNode (private val nodeProject : Project ) : AbstractTreeNode<String>(nodeProject, CawsServiceNode .NODE_NAME ), PinnedConnectionNode {
22
24
override fun getChildren (): Collection <AbstractTreeNode <* >> {
23
- val connectionManager = ToolkitConnectionManager .getInstance(project)
24
- val conn = connectionManager.activeConnectionForFeature(CodeCatalystConnection .getInstance())
25
- val groupId = if (conn != null ) {
26
- " aws.caws.devtools.actions.loggedin"
27
- } else {
28
- " aws.caws.devtools.actions.loggedout"
25
+ val connection = checkBearerConnectionValidity(project, BearerTokenFeatureSet .CODECATALYST )
26
+ val groupId = when (connection) {
27
+ is ActiveConnection .NotConnected -> CAWS_SIGNED_OUT_ACTION_GROUP
28
+ is ActiveConnection .ValidBearer -> CAWS_SIGNED_IN_ACTION_GROUP
29
+ else -> CAWS_EXPIRED_TOKEN_ACTION_GROUP
29
30
}
30
-
31
31
val actions = ActionManager .getInstance().getAction(groupId) as ActionGroup
32
32
return actions.getChildren(null ).mapNotNull {
33
33
if (it is OpenWorkspaceInGateway && isRunningOnRemoteBackend()) {
@@ -40,19 +40,26 @@ class CawsRootNode(private val nodeProject: Project) : AbstractTreeNode<String>(
40
40
41
41
override fun update (presentation : PresentationData ) {
42
42
presentation.addText(value, SimpleTextAttributes .REGULAR_ATTRIBUTES )
43
-
44
- val connection = ToolkitConnectionManager .getInstance(project).activeConnectionForFeature( CodeCatalystConnection .getInstance())
45
- if (connection != null ) {
46
- val msgId = if (connection.isSono() ) {
47
- " caws.connected.builder_id"
48
- } else {
49
- " caws.connected.identity_center "
43
+ val connection = checkBearerConnectionValidity(project, BearerTokenFeatureSet . CODECATALYST )
44
+ val connectionText = when (connection) {
45
+ is ActiveConnection . ValidBearer -> {
46
+ when (connection.connectionType ) {
47
+ ActiveConnectionType . BUILDER_ID -> message( " caws.connected.builder_id" )
48
+ else -> message( " caws.connected.identity_center " )
49
+ }
50
50
}
51
- presentation.addText(message(msgId), SimpleTextAttributes .GRAY_ATTRIBUTES )
51
+ is ActiveConnection .NotConnected -> null
52
+ else -> message(" caws.expired.connection" )
52
53
}
54
+ presentation.addText(connectionText, SimpleTextAttributes .GRAY_ATTRIBUTES )
53
55
}
54
56
55
57
override fun feature () = CodeCatalystConnection .getInstance()
58
+ companion object {
59
+ const val CAWS_SIGNED_IN_ACTION_GROUP = " aws.caws.devtools.actions.loggedin"
60
+ const val CAWS_SIGNED_OUT_ACTION_GROUP = " aws.caws.devtools.actions.loggedout"
61
+ const val CAWS_EXPIRED_TOKEN_ACTION_GROUP = " aws.caws.devtools.actions.expired"
62
+ }
56
63
}
57
64
58
65
class CawsServiceNode : DevToolsServiceNode {
0 commit comments