提交 6c937032 编写于 作者: J jurgen

Driver files download wizard

Former-commit-id: ab5cf90f
上级 04f1b8d9
......@@ -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;
......
......@@ -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())) {
......
......@@ -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();
}
......
......@@ -283,13 +283,13 @@
<fileSource url="http://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html" name="Oracle 11g drivers">
<file name="ojdbc6.jar" description="JDBC driver"/>
<file name="orai18n.jar" description="NLS classes"/>
<file name="xdb6.jar" description="SQLXML support"/>
<file name="orai18n.jar" optional="true" description="NLS classes"/>
<file name="xdb6.jar" optional="true" description="SQLXML support"/>
</fileSource>
<fileSource url="http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html" name="Oracle 12g drivers">
<file name="ojdbc7.jar" description="JDBC driver"/>
<file name="orai18n.jar" description="NLS classes"/>
<file name="xdb6.jar" description="SQLXML support"/>
<file name="orai18n.jar" optional="true" description="NLS classes"/>
<file name="xdb6.jar" optional="true" description="SQLXML support"/>
</fileSource>
</driver>
</drivers>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册