From 04d5d3505dd72c4ee9f56dffe2e88921fca1ab31 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 23 Jul 2014 17:02:39 +0200 Subject: [PATCH] cleanup --- .../impl/settings/DebuggerConfigurable.java | 60 ++++++++++++++++--- .../DebuggerConfigurableProvider.java | 59 +----------------- .../settings/SubCompositeConfigurable.java | 2 +- 3 files changed, 55 insertions(+), 66 deletions(-) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurable.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurable.java index 09396f04c73d..97d64206ca55 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurable.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurable.java @@ -20,18 +20,17 @@ import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.SmartList; +import com.intellij.util.containers.ContainerUtil; import com.intellij.xdebugger.XDebuggerBundle; import com.intellij.xdebugger.impl.DebuggerSupport; +import com.intellij.xdebugger.settings.XDebuggerSettings; import com.intellij.xdebugger.settings.XDebuggerSettings.Category; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; -import java.util.Locale; +import java.util.*; /** * @author Eugene Belyaev & Eugene Zhuravlev @@ -72,7 +71,7 @@ public class DebuggerConfigurable implements SearchableConfigurable.Parent { return; } - List providers = DebuggerConfigurableProvider.getSortedProviders(); + List providers = getSortedProviders(); List configurables = new SmartList(); configurables.add(new DataViewsConfigurable()); @@ -95,7 +94,7 @@ public class DebuggerConfigurable implements SearchableConfigurable.Parent { private static void computeMergedConfigurables(@NotNull List providers, @NotNull List result) { for (Category category : MERGED_CATEGORIES) { - List configurables = DebuggerConfigurableProvider.getConfigurables(category, providers); + List configurables = getConfigurables(category, providers); if (!configurables.isEmpty()) { String id = category.name().toLowerCase(Locale.ENGLISH); result.add(new MergedCompositeConfigurable("debugger." + id, XDebuggerBundle.message("debugger." + id + ".display.name"), @@ -121,7 +120,7 @@ public class DebuggerConfigurable implements SearchableConfigurable.Parent { } } - List rootConfigurables = DebuggerConfigurableProvider.getConfigurables(Category.ROOT, providers); + List rootConfigurables = getConfigurables(Category.ROOT, providers); if (rootConfigurables.isEmpty()) { return deprecatedRootConfigurable; } @@ -202,4 +201,51 @@ public class DebuggerConfigurable implements SearchableConfigurable.Parent { public String getId() { return "project.propDebugger"; } + + @NotNull + private static List getSortedProviders() { + List providers = null; + for (DebuggerSupport support : DebuggerSupport.getDebuggerSupports()) { + DebuggerSettingsPanelProvider provider = support.getSettingsPanelProvider(); + if (providers == null) { + providers = new SmartList(); + } + providers.add(provider); + } + + if (ContainerUtil.isEmpty(providers)) { + return Collections.emptyList(); + } + + if (providers.size() > 1) { + Collections.sort(providers, new Comparator() { + @Override + public int compare(DebuggerSettingsPanelProvider o1, DebuggerSettingsPanelProvider o2) { + return o2.getPriority() - o1.getPriority(); + } + }); + } + return providers; + } + + @NotNull + static List getConfigurables(@NotNull XDebuggerSettings.Category category) { + List providers = getSortedProviders(); + return providers.isEmpty() ? Collections.emptyList() : getConfigurables(category, providers); + } + + @NotNull + private static List getConfigurables(@NotNull XDebuggerSettings.Category category, @NotNull List providers) { + List configurables = null; + for (DebuggerSettingsPanelProvider provider : providers) { + Collection providerConfigurables = provider.getConfigurable(category); + if (!providerConfigurables.isEmpty()) { + if (configurables == null) { + configurables = new SmartList(); + } + configurables.addAll(providerConfigurables); + } + } + return ContainerUtil.notNullize(configurables); + } } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurableProvider.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurableProvider.java index 80651cadc830..f52309db8cd6 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurableProvider.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DebuggerConfigurableProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,70 +17,13 @@ package com.intellij.xdebugger.impl.settings; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurableProvider; -import com.intellij.util.SmartList; -import com.intellij.util.containers.ContainerUtil; -import com.intellij.xdebugger.impl.DebuggerSupport; -import com.intellij.xdebugger.settings.XDebuggerSettings; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; /** * @author nik */ public class DebuggerConfigurableProvider extends ConfigurableProvider { - @NotNull - static List getSortedProviders() { - List providers = null; - for (DebuggerSupport support : DebuggerSupport.getDebuggerSupports()) { - DebuggerSettingsPanelProvider provider = support.getSettingsPanelProvider(); - if (providers == null) { - providers = new SmartList(); - } - providers.add(provider); - } - - if (ContainerUtil.isEmpty(providers)) { - return Collections.emptyList(); - } - - if (providers.size() > 1) { - Collections.sort(providers, new Comparator() { - @Override - public int compare(DebuggerSettingsPanelProvider o1, DebuggerSettingsPanelProvider o2) { - return o2.getPriority() - o1.getPriority(); - } - }); - } - return providers; - } - @Override public Configurable createConfigurable() { return new DebuggerConfigurable(); } - - @NotNull - static List getConfigurables(@NotNull XDebuggerSettings.Category category) { - List providers = getSortedProviders(); - return providers.isEmpty() ? Collections.emptyList() : getConfigurables(category, providers); - } - - @NotNull - static List getConfigurables(@NotNull XDebuggerSettings.Category category, @NotNull List providers) { - List configurables = null; - for (DebuggerSettingsPanelProvider provider : providers) { - Collection providerConfigurables = provider.getConfigurable(category); - if (!providerConfigurables.isEmpty()) { - if (configurables == null) { - configurables = new SmartList(); - } - configurables.addAll(providerConfigurables); - } - } - return ContainerUtil.notNullize(configurables); - } } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/SubCompositeConfigurable.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/SubCompositeConfigurable.java index 489e4bd80307..4875c755915f 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/SubCompositeConfigurable.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/SubCompositeConfigurable.java @@ -86,7 +86,7 @@ abstract class SubCompositeConfigurable implements SearchableConfigurable.Parent @Override public final Configurable[] getConfigurables() { if (children == null) { - List configurables = DebuggerConfigurableProvider.getConfigurables(getCategory()); + List configurables = DebuggerConfigurable.getConfigurables(getCategory()); children = configurables.toArray(new Configurable[configurables.size()]); } return isChildrenMerged() ? DebuggerConfigurable.EMPTY_CONFIGURABLES : children;