From fe9f836b967771f44f90386de9c64436faa0afb2 Mon Sep 17 00:00:00 2001 From: Andrew Kozlov Date: Tue, 13 Jul 2021 16:06:14 +0000 Subject: [PATCH] [plugins] performance tests fixed #IDEA-270430 GitOrigin-RevId: c239333f3fc77476ae95d3051243442f24cba557 --- .../plugins/InstalledPluginsTableModel.java | 21 ++++++++++++------- .../ide/plugins/newui/MyPluginModel.java | 6 +++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java index f31ee71180ae..daf815ff4f82 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java @@ -19,7 +19,7 @@ import java.util.function.BiConsumer; public class InstalledPluginsTableModel { - private static final boolean HIDE_IMPLEMENTATION_DETAILS = !Boolean.getBoolean("startup.performance.framework"); + protected static final boolean HIDE_IMPLEMENTATION_DETAILS = !Boolean.getBoolean("startup.performance.framework"); private static final InstalledPluginsState ourState = InstalledPluginsState.getInstance(); protected final List view = new ArrayList<>(); @@ -121,11 +121,8 @@ public class InstalledPluginsTableModel { for (final IdeaPluginDescriptor rootDescriptor : view) { final PluginId pluginId = rootDescriptor.getPluginId(); myDependentToRequiredListMap.remove(pluginId); - if (rootDescriptor instanceof IdeaPluginDescriptorImpl && ((IdeaPluginDescriptorImpl)rootDescriptor).isDeleted()) { - continue; - } - - if (isDisabled(pluginId)) { + if (isDeleted(rootDescriptor) || + isDisabled(pluginId)) { continue; } @@ -363,8 +360,16 @@ public class InstalledPluginsTableModel { return enabledMap.get(pluginId) != null; } + protected static boolean isDeleted(@NotNull IdeaPluginDescriptor descriptor) { + return descriptor instanceof IdeaPluginDescriptorImpl && ((IdeaPluginDescriptorImpl)descriptor).isDeleted(); + } + + protected static boolean isHiddenImplementationDetail(@NotNull IdeaPluginDescriptor descriptor) { + return HIDE_IMPLEMENTATION_DETAILS && descriptor.isImplementationDetail(); + } + protected static boolean isHidden(@NotNull IdeaPluginDescriptor descriptor) { - return (descriptor instanceof IdeaPluginDescriptorImpl) && ((IdeaPluginDescriptorImpl)descriptor).isDeleted() || - HIDE_IMPLEMENTATION_DETAILS && descriptor.isImplementationDetail(); + return isDeleted(descriptor) || + isHiddenImplementationDetail(descriptor); } } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java index 6f18a07a3ee4..838cac717160 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/MyPluginModel.java @@ -219,8 +219,8 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE PluginEnabledState oldState = pair.getSecond(); PluginEnabledState newState = getState(pluginId); - if ((descriptor instanceof IdeaPluginDescriptorImpl) && ((IdeaPluginDescriptorImpl)descriptor).isDeleted() || - (descriptor.isImplementationDetail() && !newState.isEnabled()) || + if (isDeleted(descriptor) || + (isHiddenImplementationDetail(descriptor) && newState.isDisabled()) || !isLoaded(pluginId) /* if enableMap contains null for id => enable/disable checkbox don't touch */) { continue; } @@ -1024,7 +1024,7 @@ public class MyPluginModel extends InstalledPluginsTableModel implements PluginE public @NotNull List getErrors(@NotNull IdeaPluginDescriptor descriptor) { PluginId pluginId = descriptor.getPluginId(); - if (descriptor instanceof IdeaPluginDescriptorImpl && ((IdeaPluginDescriptorImpl)descriptor).isDeleted() || + if (isDeleted(descriptor) || InstalledPluginsState.getInstance().wasUninstalledWithoutRestart(pluginId) || InstalledPluginsState.getInstance().wasInstalledWithoutRestart(pluginId)) { // we'll actually install the plugin when the configurable is closed; at this time we don't know if there's any loadingError