diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverTreeViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverTreeViewer.java index d3b6692639eeebfb5c5351c68809679cc3014ab6..40b0aadc3587e69e9510abc68d990321e702138e 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverTreeViewer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverTreeViewer.java @@ -89,6 +89,22 @@ public class DriverTreeViewer extends TreeViewer implements ISelectionChangedLis { return name.hashCode(); } + + public DBPImage getImage() { + DBPImage driverImage = null; + for (DriverDescriptor driver : getDrivers()) { + if (driverImage == null) { + driverImage = driver.getPlainIcon(); + } else if (!driverImage.equals(driver.getPlainIcon())) { + driverImage = null; + break; + } + } + if (driverImage != null) { + return driverImage; + } + return DBIcon.TREE_DATABASE_CATEGORY; + } } public DriverTreeViewer(Composite parent, int style) { @@ -336,19 +352,17 @@ public class DriverTreeViewer extends TreeViewer implements ISelectionChangedLis return null; } DBPImage defImage = DBIcon.TREE_PAGE; + DBPImage icon = null; if (obj instanceof DataSourceProviderDescriptor) { - DBPImage icon = ((DataSourceProviderDescriptor) obj).getIcon(); - if (icon != null) { - return icon; - } + icon = ((DataSourceProviderDescriptor) obj).getIcon(); defImage = DBIcon.TREE_FOLDER; } else if (obj instanceof DriverCategory) { - return DBIcon.TREE_DATABASE_CATEGORY; + icon = ((DriverCategory)obj).getImage(); } else if (obj instanceof DriverDescriptor) { - DBPImage icon = ((DriverDescriptor) obj).getIcon(); - if (icon != null) { - return icon; - } + icon = ((DriverDescriptor) obj).getIcon(); + } + if (icon != null) { + return icon; } return defImage; diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBIcon.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBIcon.java index e906ee847dfd700bb54b0a979b120c9d2574a8fc..52aaf95b87ce58fafca8dbb969f918890c2b1681 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBIcon.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBIcon.java @@ -225,4 +225,6 @@ public class DBIcon implements DBPImage public String toString() { return token + ":" + path; } + + }