Skip to content

Commit b2e0b95

Browse files
authored
Merge pull request #2645 from digma-ai/close-update-panel-when-button-clicked
close update panel on all projects when button clicked Closes #2630
2 parents a9b76d1 + c8227bb commit b2e0b95

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.digma.intellij.plugin.updates
2+
3+
import com.intellij.util.messages.Topic
4+
5+
6+
interface UpdateButtonClickedEvent {
7+
8+
companion object {
9+
@JvmField
10+
@Topic.AppLevel
11+
val UPDATE_BUTTON_CLICKED_EVENT_TOPIC: Topic<UpdateButtonClickedEvent> =
12+
Topic.create("UPDATE_BUTTON_CLICKED_EVENT_TOPIC", UpdateButtonClickedEvent::class.java)
13+
}
14+
15+
16+
fun updateButtonClicked()
17+
}

src/main/kotlin/org/digma/intellij/plugin/ui/common/UpdateVersionPanel.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.digma.intellij.plugin.ui.common
22

3+
import com.intellij.openapi.application.ApplicationManager
34
import com.intellij.openapi.diagnostic.Logger
45
import com.intellij.openapi.observable.properties.AtomicProperty
56
import com.intellij.openapi.options.ShowSettingsUtil
@@ -11,6 +12,7 @@ import org.digma.intellij.plugin.log.Log
1112
import org.digma.intellij.plugin.posthog.ActivityMonitor
1213
import org.digma.intellij.plugin.ui.panels.DigmaResettablePanel
1314
import org.digma.intellij.plugin.updates.AggressiveUpdateService
15+
import org.digma.intellij.plugin.updates.UpdateButtonClickedEvent
1416
import org.digma.intellij.plugin.updates.UpdateState
1517
import org.digma.intellij.plugin.updates.UpdatesService
1618
import org.digma.intellij.plugin.updates.ui.UIVersioningService
@@ -44,7 +46,20 @@ class UpdateVersionPanel(
4446
layout = BoxLayout(this, BoxLayout.X_AXIS)
4547
isVisible = false
4648
buildItemsInPanel()
49+
50+
51+
//when user clicks on the update button in one project , all visible panels in other projects need to hide.
52+
ApplicationManager.getApplication().messageBus.connect().subscribe(UpdateButtonClickedEvent.UPDATE_BUTTON_CLICKED_EVENT_TOPIC,
53+
object : UpdateButtonClickedEvent{
54+
override fun updateButtonClicked() {
55+
Log.log(logger::debug, "update button clicked on project {}, setting isVisible to false",project.name)
56+
isVisible = false
57+
}
58+
})
59+
4760
changeState()
61+
62+
4863
}
4964

5065
private fun changeState() {
@@ -136,6 +151,10 @@ class UpdateVersionPanel(
136151
}
137152

138153
this.isVisible = false
154+
155+
156+
ApplicationManager.getApplication().messageBus.syncPublisher(UpdateButtonClickedEvent.UPDATE_BUTTON_CLICKED_EVENT_TOPIC).updateButtonClicked()
157+
139158
}, 100)
140159
}
141160

0 commit comments

Comments
 (0)