mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed sorting of frameworks in 'new project wizard'
This commit is contained in:
+9
-9
@@ -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<FrameworkSupportNodeBase> myChildren = new ArrayList<FrameworkSupportNodeBase>();
|
||||
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<FrameworkSupportNodeBase> nodes) {
|
||||
public static void sortByName(@Nullable List<FrameworkSupportNodeBase> nodes) {
|
||||
if (nodes == null) return;
|
||||
|
||||
Collections.sort(nodes, new Comparator<FrameworkSupportNodeBase>() {
|
||||
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<FrameworkSupportNodeBase> getChildren() {
|
||||
return myChildren;
|
||||
return children;
|
||||
}
|
||||
|
||||
public FrameworkSupportNodeBase getParentNode() {
|
||||
|
||||
Reference in New Issue
Block a user