From c519c32006da14978ebdd2db58b00641a4c0e9ca Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 20 Nov 2018 12:14:14 +0100 Subject: [PATCH] don't load project view nesting rules in , remove unnecessary sorting --- .../impl/FileNestingInProjectViewDialog.java | 5 +++-- .../impl/ProjectViewFileNestingService.java | 12 +++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/FileNestingInProjectViewDialog.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/FileNestingInProjectViewDialog.java index 825110656c95..3ca9a86760e5 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/FileNestingInProjectViewDialog.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/FileNestingInProjectViewDialog.java @@ -11,6 +11,7 @@ import com.intellij.ui.ToolbarDecorator; import com.intellij.ui.components.JBCheckBox; import com.intellij.ui.table.TableView; import com.intellij.util.Consumer; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -141,7 +142,7 @@ public class FileNestingInProjectViewDialog extends DialogWrapper { return new Action[]{new DialogWrapperAction(IdeBundle.message("file.nesting.reset.to.default.button")) { @Override protected void doAction(ActionEvent e) { - resetTable(Arrays.asList(ProjectViewFileNestingService.DEFAULT_NESTING_RULES)); + resetTable(ProjectViewFileNestingService.loadDefaultNestingRules()); } }}; } @@ -188,7 +189,7 @@ public class FileNestingInProjectViewDialog extends DialogWrapper { private void resetTable(@NotNull final List rules) { final SortedMap result = new TreeMap<>(); - for (NestingRule rule : rules) { + for (NestingRule rule : ContainerUtil.sorted(rules, ProjectViewFileNestingService.RULE_COMPARATOR)) { final CombinedNestingRule r = result.get(rule.getParentFileSuffix()); if (r == null) { result.put(rule.getParentFileSuffix(), new CombinedNestingRule(rule.getParentFileSuffix(), rule.getChildFileSuffix())); diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewFileNestingService.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewFileNestingService.java index 863e17d8e40f..151638f0113a 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewFileNestingService.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewFileNestingService.java @@ -14,7 +14,7 @@ import com.intellij.util.xmlb.annotations.Attribute; import com.intellij.util.xmlb.annotations.XCollection; import org.jetbrains.annotations.NotNull; -import java.util.Arrays; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -34,8 +34,6 @@ public class ProjectViewFileNestingService implements PersistentStateComponent

RULE_COMPARATOR = Comparator.comparing(o -> o.getParentFileSuffix() + " " + o.getChildFileSuffix()); - static final NestingRule[] DEFAULT_NESTING_RULES = loadDefaultNestingRules(); - private MyState myState = new MyState(); private long myModCount; @@ -45,8 +43,8 @@ public class ProjectViewFileNestingService implements PersistentStateComponent

result = new SortedList<>(RULE_COMPARATOR); + static List loadDefaultNestingRules() { + List result = new ArrayList<>(); final ProjectViewNestingRulesProvider.Consumer consumer = (parentFileSuffix, childFileSuffix) -> { LOG.assertTrue(!parentFileSuffix.isEmpty() && !childFileSuffix.isEmpty(), "file suffix must not be empty"); @@ -58,7 +56,7 @@ public class ProjectViewFileNestingService implements PersistentStateComponent

myRules = new SortedList<>(Comparator.comparing(o -> o.getParentFileSuffix())); public MyState() { - myRules.addAll(Arrays.asList(DEFAULT_NESTING_RULES)); + myRules.addAll(loadDefaultNestingRules()); } }