From 73e687e50aeae1391ddc12fcfc7fd18d22930fb9 Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Fri, 30 Nov 2018 19:39:45 +0300 Subject: [PATCH] IDEA-196053 Plugins: counter on Updates page appears only on opening the tab --- .../plugins/PluginManagerConfigurableNew.java | 2 +- ...PluginManagerConfigurableTreeRenderer.java | 2 +- .../newui/DetailsPagePluginComponent.java | 4 +++- .../plugins/newui/PluginUpdatesService.java | 22 +++++++++---------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java index 48f80e72bd70..9177d77f75c4 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java @@ -465,7 +465,7 @@ public class PluginManagerConfigurableNew myTabHeaderComponent.addTab(myUpdatesTabName = new CountTabName(myTabHeaderComponent, "Updates")); myPluginUpdatesServiceCallback = - PluginUpdatesService.connectConfigurableTab(countValue -> myUpdatesTabName.setCount(countValue == null ? 0 : countValue)); + PluginUpdatesService.connectConfigurable(countValue -> myUpdatesTabName.setCount(countValue == null ? 0 : countValue)); createSearchPanels(); diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableTreeRenderer.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableTreeRenderer.java index 370e07e929a8..cf758911bd51 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableTreeRenderer.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableTreeRenderer.java @@ -37,7 +37,7 @@ public class PluginManagerConfigurableTreeRenderer implements ConfigurableTreeRe if (myTree == null) { PluginUpdatesService.connectTreeRenderer(tree, countValue -> { String oldCountValue = myCountValue; - myCountValue = countValue == null || countValue == 0 ? null : countValue.toString(); + myCountValue = countValue == null || countValue <= 0 ? null : countValue.toString(); if (myTree != null && !StringUtil.equals(oldCountValue, myCountValue)) { myTree.repaint(); } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/DetailsPagePluginComponent.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/DetailsPagePluginComponent.java index 9cdb046cb6c7..17dd2321f28f 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/DetailsPagePluginComponent.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/DetailsPagePluginComponent.java @@ -70,7 +70,9 @@ public class DetailsPagePluginComponent extends OpaquePanel { myCenterPanel = createCenterPanel(update); header.add(myCenterPanel); - createTagPanel(); + if (!update) { + createTagPanel(); + } createMetricsPanel(); createErrorPanel(); createProgressPanel(!update); diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java index 3c751fba8262..025003742c94 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginUpdatesService.java @@ -47,7 +47,7 @@ public class PluginUpdatesService { } @Nullable - public static Runnable connectConfigurableTab(@NotNull Consumer callback) { + public static Runnable connectConfigurable(@NotNull Consumer callback) { assert SwingUtilities.isEventDispatchThread(); Runnable disposer = myCreate ? () -> dispose() : null; @@ -82,7 +82,7 @@ public class PluginUpdatesService { PluginDownloader downloader = I.next(); if (downloader.getDescriptor() == descriptor) { I.remove(); - doCountCallback(); + runCallbacks(getCount()); return; } } @@ -90,8 +90,9 @@ public class PluginUpdatesService { public static void recalculateUpdates() { assert SwingUtilities.isEventDispatchThread(); - assert !myPreparing; + + runCallbacks(-1); calculateUpdates(); } @@ -118,11 +119,6 @@ public class PluginUpdatesService { } } - @Nullable - private static Integer getCount() { - return myCache == null ? null : new Integer(myCache.size()); - } - private static void calculateUpdates() { assert SwingUtilities.isEventDispatchThread(); @@ -142,7 +138,7 @@ public class PluginUpdatesService { myPrepared = true; myCache = updates; - doCountCallback(); + runCallbacks(getCount()); if (myPanelCallbacks != null) { for (Consumer> callback : myPanelCallbacks) { @@ -154,8 +150,12 @@ public class PluginUpdatesService { }); } - private static void doCountCallback() { - Integer countValue = getCount(); + @Nullable + private static Integer getCount() { + return myCache == null ? null : new Integer(myCache.size()); + } + + private static void runCallbacks(@Nullable Integer countValue) { if (myTreeCallback != null) { myTreeCallback.accept(countValue); }