From 6c93703209d4aaa32691e62d2a7aa045a7aa5f0d Mon Sep 17 00:00:00 2001 From: jurgen Date: Sun, 13 Sep 2015 20:13:46 +0000 Subject: [PATCH] Driver files download wizard Former-commit-id: ab5cf90fde38314e2d10e96dfe74423e8a8ebde3 --- .../dbeaver/registry/DriverFileSource.java | 7 +++ .../driver/DriverDownloadManualPage.java | 43 +++++++++++-------- .../dialogs/driver/DriverDownloadWizard.java | 2 +- .../org.jkiss.dbeaver.ext.oracle/plugin.xml | 8 ++-- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java index da120bd331..ae3a9f0ffd 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DriverFileSource.java @@ -20,6 +20,7 @@ package org.jkiss.dbeaver.registry; import org.eclipse.core.runtime.IConfigurationElement; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.model.DBPDriverFile; +import org.jkiss.utils.CommonUtils; import java.util.ArrayList; import java.util.List; @@ -34,10 +35,12 @@ public class DriverFileSource implements DBPDriverFile.FileSource public static class FileInfo { private final String name; private final String description; + private final boolean optional; FileInfo(IConfigurationElement config) { this.name = config.getAttribute(RegistryConstants.ATTR_NAME); this.description = config.getAttribute(RegistryConstants.ATTR_DESCRIPTION); + this.optional = CommonUtils.getBoolean(config.getAttribute(RegistryConstants.ATTR_OPTIONAL), false); } public String getName() { @@ -47,6 +50,10 @@ public class DriverFileSource implements DBPDriverFile.FileSource public String getDescription() { return description; } + + public boolean isOptional() { + return optional; + } } private final String url; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadManualPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadManualPage.java index cb3cffc803..adcb728f6f 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadManualPage.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadManualPage.java @@ -21,10 +21,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Link; -import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.*; import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.registry.DriverDescriptor; import org.jkiss.dbeaver.registry.DriverFileSource; @@ -33,8 +30,6 @@ import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.preferences.PrefPageDrivers; import org.jkiss.utils.CommonUtils; -import java.util.List; - class DriverDownloadManualPage extends DriverDownloadPage { private DriverFileSource fileSource; @@ -51,23 +46,17 @@ class DriverDownloadManualPage extends DriverDownloadPage { setMessage("Download & configure " + driver.getFullName() + " driver files"); - initializeDialogUnits(parent); - Composite composite = UIUtils.createPlaceholder(parent, 1); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); StringBuilder message = new StringBuilder(); - message.append("Driver ").append(driver.getFullName()); - message.append("files missing.\n\n" + - "According to vendor policy this driver isn''t publicly available and you have to download it manually from vendor''s web site.\n\n" + + message.append("").append(driver.getFullName()); + message.append(" driver files missing.\n\n" + + "According to vendor policy this driver isn't publicly available and you have to download it manually from vendor's web site.\n\n" + "After successful driver download you will need to add JAR files in DBeaver libraries list."); if (!CommonUtils.isEmpty(fileSource.getInstructions())) { message.append("\n").append(fileSource.getInstructions()); } - message.append("\n\nFiles to download: "); - for (DriverFileSource.FileInfo file : fileSource.getFiles()) { - message.append("\n\t").append(file.getName()); - } Text infoText = new Text(composite, SWT.MULTI | SWT.READ_ONLY | SWT.WRAP); infoText.setText(message.toString()); @@ -75,13 +64,29 @@ class DriverDownloadManualPage extends DriverDownloadPage { gd.widthHint = 200; infoText.setLayoutData(gd); - //UIUtils.createHorizontalLine(composite); - UIUtils.createPlaceholder(composite, 1).setLayoutData(new GridData(GridData.FILL_BOTH)); + Group filesGroup = UIUtils.createControlGroup(composite, "Driver files", 1, -1, -1); + gd = new GridData(GridData.FILL_HORIZONTAL); + gd.verticalIndent = 10; + filesGroup.setLayoutData(gd); + Table filesTable = new Table(filesGroup, SWT.BORDER | SWT.FULL_SELECTION); + filesTable.setHeaderVisible(true); + filesTable.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + UIUtils.createTableColumn(filesTable, SWT.LEFT, "File"); + UIUtils.createTableColumn(filesTable, SWT.LEFT, "Required"); + UIUtils.createTableColumn(filesTable, SWT.LEFT, "Description"); + for (DriverFileSource.FileInfo file : fileSource.getFiles()) { + new TableItem(filesTable, SWT.NONE).setText(new String[] { + file.getName(), + !file.isOptional() ? "Yes" : "No", + CommonUtils.notEmpty(file.getDescription()) }); + } + UIUtils.packColumns(filesTable, true); { Composite linksGroup = UIUtils.createPlaceholder(composite, 2); - ((GridLayout)linksGroup.getLayout()).makeColumnsEqualWidth = true; - linksGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + gd = new GridData(GridData.FILL_HORIZONTAL); + gd.verticalIndent = 10; + linksGroup.setLayoutData(gd); // Vendor site if (!CommonUtils.isEmpty(driver.getWebURL())) { diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java index c168e3a8cb..e94874dc81 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/driver/DriverDownloadWizard.java @@ -42,7 +42,7 @@ public class DriverDownloadWizard extends Wizard implements IExportWizard { this.driver = driver; this.files = files; setWindowTitle("Setup driver files"); - setNeedsProgressMonitor(true); + setNeedsProgressMonitor(hasPredefinedFiles()); loadSettings(); } diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml b/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml index 3f39e4a34c..1a837bab0d 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml +++ b/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml @@ -283,13 +283,13 @@ - - + + - - + + -- GitLab