mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-215635 fix: update separators in the processes popup when the user closes analyzing banner
GitOrigin-RevId: 21117e2dd3d969f1a4bb1facfee83b4fcc45aefe
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bfda838e41
commit
57c56eb8da
+2
-2
@@ -15,13 +15,13 @@ import java.awt.Component
|
||||
import javax.swing.JPanel
|
||||
|
||||
// Places analyzing progress indicator on top, adds a banner under it
|
||||
internal class AnalyzingBannerDecorator(private val panel: JPanel, revalidatePanel: Runnable) {
|
||||
internal class AnalyzingBannerDecorator(private val panel: JPanel, onBannerClose: Runnable) {
|
||||
|
||||
// component of analyzing progress,
|
||||
// placed above banner
|
||||
private var analyzingComponent: Component? = null
|
||||
|
||||
private val banner: Component = createBanner(revalidatePanel)
|
||||
private val banner: Component = createBanner(onBannerClose)
|
||||
|
||||
|
||||
fun indicatorAdded(indicator: ProgressComponent) {
|
||||
|
||||
@@ -55,7 +55,10 @@ final class ProcessPopup {
|
||||
}
|
||||
|
||||
myTasksFinishedDecorator = new TasksFinishedDecorator(myIndicatorPanel);
|
||||
myAnalyzingBannerDecorator = new AnalyzingBannerDecorator(myIndicatorPanel, () -> revalidateAll());
|
||||
myAnalyzingBannerDecorator = new AnalyzingBannerDecorator(myIndicatorPanel, () -> {
|
||||
SeparatorDecorator.placeSeparators(myIndicatorPanel);
|
||||
revalidateAll();
|
||||
});
|
||||
mySeparatorDecorator = new SeparatorDecorator(myIndicatorPanel);
|
||||
|
||||
myContentPanel = new JBScrollPane(myIndicatorPanel, VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER);
|
||||
|
||||
+15
-12
@@ -14,28 +14,31 @@ import javax.swing.JPanel
|
||||
*/
|
||||
internal class SeparatorDecorator(private val panel: JPanel) {
|
||||
fun indicatorAdded() {
|
||||
placeSeparators()
|
||||
placeSeparators(panel)
|
||||
}
|
||||
|
||||
fun indicatorRemoved() {
|
||||
placeSeparators()
|
||||
placeSeparators(panel)
|
||||
}
|
||||
|
||||
fun handlePopupClose() {
|
||||
placeSeparators()
|
||||
placeSeparators(panel)
|
||||
}
|
||||
|
||||
|
||||
private fun placeSeparators() {
|
||||
var previousComponentIsIndicator = false
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun placeSeparators(panel: JPanel) {
|
||||
var previousComponentIsIndicator = false
|
||||
|
||||
for (component in panel.components) {
|
||||
if (isProgressIndicator(component)) {
|
||||
component.updateSeparator(isShown = previousComponentIsIndicator)
|
||||
previousComponentIsIndicator = true
|
||||
}
|
||||
else {
|
||||
previousComponentIsIndicator = false
|
||||
for (component in panel.components) {
|
||||
if (isProgressIndicator(component)) {
|
||||
component.updateSeparator(isShown = previousComponentIsIndicator)
|
||||
previousComponentIsIndicator = true
|
||||
}
|
||||
else {
|
||||
previousComponentIsIndicator = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user