From 7bc320196a5579ef1468960e886e7bc59668af8d Mon Sep 17 00:00:00 2001 From: jurgen Date: Sat, 17 Oct 2015 13:57:00 +0000 Subject: [PATCH] Driver editor fix. Former-commit-id: e38892844ab0c3ae25b6c33a09829a66d92befc3 --- .../registry/driver/DriverDescriptor.java | 10 ++++++++++ .../ui/dialogs/driver/DriverEditDialog.java | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java index e982dd4cb5..c6459a79fb 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java @@ -618,6 +618,16 @@ public class DriverDescriptor extends AbstractDescriptor implements DBPDriver return libraries; } + public List getEnabledDriverLibraries() { + List filtered = new ArrayList<>(); + for (DBPDriverLibrary lib : libraries) { + if (!lib.isDisabled()) { + filtered.add(lib); + } + } + return filtered; + } + public DBPDriverLibrary getDriverLibrary(String path) { for (DBPDriverLibrary lib : libraries) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java index d2b7010bae..eb337dbc4f 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverEditDialog.java @@ -614,10 +614,17 @@ public class DriverEditDialog extends HelpEnabledDialog private void changeLibContent() { - libTable.setInput(new ArrayList<>(driver.getDriverLibraries())); - int itemCount = libTable.getTable().getItemCount(); - findClassButton.setEnabled(provider.isDriversManagable() && itemCount > 0); - updateVersionButton.setEnabled(itemCount > 0); + libTable.setInput(driver.getEnabledDriverLibraries()); + boolean hasFiles = false, hasDownloads = false; + for (DBPDriverLibrary library : driver.getDriverLibraries()) { + if (library.isDownloadable()) { + hasDownloads = true; + break; + } + hasFiles = true; + } + findClassButton.setEnabled(provider.isDriversManagable() && hasFiles); + updateVersionButton.setEnabled(hasDownloads); } private void changeLibSelection() @@ -656,7 +663,7 @@ public class DriverEditDialog extends HelpEnabledDialog resetLibraries(); } if (libTable != null) { - libTable.setInput(new ArrayList<>(driver.getDriverLibraries())); + libTable.setInput(driver.getEnabledDriverLibraries()); changeLibContent(); changeLibSelection(); } @@ -688,6 +695,7 @@ public class DriverEditDialog extends HelpEnabledDialog private void resetLibraries() { // Set libraries for (DBPDriverLibrary lib : CommonUtils.safeCollection(origLibList)) { + lib.setDisabled(false); driver.addDriverLibrary(lib); } for (DBPDriverLibrary lib : CommonUtils.copyList(driver.getDriverLibraries())) { -- GitLab