From 220111758be9a26c66742e44eb2c1d89b7242eeb Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 7 May 2013 15:53:42 +0400 Subject: [PATCH] fixed sorting of frameworks in 'new project wizard' --- .../FrameworkSupportNodeBase.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportNodeBase.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportNodeBase.java index 91d2fe8748dc..fbbf28bb7106 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportNodeBase.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/FrameworkSupportNodeBase.java @@ -2,9 +2,9 @@ package com.intellij.ide.util.newProjectWizard; import com.intellij.ui.CheckedTreeNode; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -13,8 +13,7 @@ import java.util.List; * @author nik */ public abstract class FrameworkSupportNodeBase extends CheckedTreeNode { - protected final FrameworkSupportNodeBase myParentNode; - protected final List myChildren = new ArrayList(); + private final FrameworkSupportNodeBase myParentNode; public FrameworkSupportNodeBase(Object userObject, final FrameworkSupportNodeBase parentNode) { super(userObject); @@ -22,22 +21,23 @@ public abstract class FrameworkSupportNodeBase extends CheckedTreeNode { myParentNode = parentNode; if (parentNode != null) { parentNode.add(this); - parentNode.myChildren.add(this); } } - public static void sortByName(List nodes) { + public static void sortByName(@Nullable List nodes) { + if (nodes == null) return; + Collections.sort(nodes, new Comparator() { public int compare(final FrameworkSupportNodeBase o1, final FrameworkSupportNodeBase o2) { if (o1 instanceof FrameworkGroupNode && !(o2 instanceof FrameworkGroupNode)) return -1; if (o2 instanceof FrameworkGroupNode && !(o1 instanceof FrameworkGroupNode)) return 1; - if (o1.myChildren.size() < o2.myChildren.size()) return 1; - if (o2.myChildren.size() < o1.myChildren.size()) return -1; + if (o1.getChildCount() < o2.getChildCount()) return 1; + if (o1.getChildCount() > o2.getChildCount()) return -1; return o1.getTitle().compareToIgnoreCase(o2.getTitle()); } }); for (FrameworkSupportNodeBase node : nodes) { - sortByName(node.myChildren); + sortByName(node.children); } } @@ -48,7 +48,7 @@ public abstract class FrameworkSupportNodeBase extends CheckedTreeNode { public abstract Icon getIcon(); public List getChildren() { - return myChildren; + return children; } public FrameworkSupportNodeBase getParentNode() {