From 38cacee708606512ab9d75cfb91c70e0058e371b Mon Sep 17 00:00:00 2001 From: serge-rider Date: Wed, 4 Apr 2018 22:24:21 +0300 Subject: [PATCH] Connection editor fix (folder list ordering) --- .../connection/ConnectionPageGeneral.java | 4 ++-- .../src/org/jkiss/dbeaver/model/DBUtils.java | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java index 90954e8d1a..a08986f02e 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageGeneral.java @@ -544,7 +544,7 @@ class ConnectionPageGeneral extends ActiveWizardPage { connectionFolderCombo.add(CoreMessages.toolbar_datasource_selector_empty); connectionFolders.clear(); connectionFolders.add(null); - for (DBPDataSourceFolder folder : getWizard().getDataSourceRegistry().getRootFolders()) { + for (DBPDataSourceFolder folder : DBUtils.makeOrderedObjectList(getWizard().getDataSourceRegistry().getRootFolders())) { loadConnectionFolder(0, folder); } } @@ -557,7 +557,7 @@ class ConnectionPageGeneral extends ActiveWizardPage { connectionFolders.add(folder); connectionFolderCombo.add(prefix + folder.getName()); - for (DBPDataSourceFolder child : folder.getChildren()) { + for (DBPDataSourceFolder child : DBUtils.makeOrderedObjectList(folder.getChildren())) { loadConnectionFolder(level + 1, child); } } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java index 8d391aed4a..43a7c2256b 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java @@ -1432,8 +1432,20 @@ public final class DBUtils { return Comparator.comparingInt(DBSAttributeBase::getOrdinalPosition); } - public static void orderObjects(@NotNull List objects) - { + public static List makeOrderedObjectList(@NotNull Collection objects) { + List ordered = new ArrayList<>(objects); + orderObjects(ordered); + return ordered; + } + + public static List makeOrderedObjectList(@NotNull T[] objects) { + List ordered = new ArrayList<>(); + Collections.addAll(ordered, objects); + orderObjects(ordered); + return ordered; + } + + public static void orderObjects(@NotNull List objects) { objects.sort((o1, o2) -> { String name1 = o1.getName(); String name2 = o2.getName(); -- GitLab