11package org.digma.intellij.plugin.ui.common
22
3+ import com.intellij.openapi.application.ApplicationManager
34import com.intellij.openapi.diagnostic.Logger
45import com.intellij.openapi.observable.properties.AtomicProperty
56import com.intellij.openapi.options.ShowSettingsUtil
@@ -11,6 +12,7 @@ import org.digma.intellij.plugin.log.Log
1112import org.digma.intellij.plugin.posthog.ActivityMonitor
1213import org.digma.intellij.plugin.ui.panels.DigmaResettablePanel
1314import org.digma.intellij.plugin.updates.AggressiveUpdateService
15+ import org.digma.intellij.plugin.updates.UpdateButtonClickedEvent
1416import org.digma.intellij.plugin.updates.UpdateState
1517import org.digma.intellij.plugin.updates.UpdatesService
1618import 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