提交 1587aefd 编写于 作者: J jurgen

Driver files download wizard

上级 ab5cf90f
......@@ -77,45 +77,7 @@ class DriverDownloadAutoPage extends DriverDownloadPage {
infoText.setText(message.toString());
infoText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
//UIUtils.createHorizontalLine(composite);
UIUtils.createPlaceholder(composite, 1).setLayoutData(new GridData(GridData.FILL_BOTH));
{
Composite linksGroup = UIUtils.createPlaceholder(composite, 2);
((GridLayout)linksGroup.getLayout()).makeColumnsEqualWidth = true;
linksGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
// Vendor site
if (!CommonUtils.isEmpty(driver.getWebURL())) {
Link link = UIUtils.createLink(
linksGroup,
"<a>Vendor's website</a>",
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
RuntimeUtils.openWebBrowser(driver.getWebURL());
}
});
link.setToolTipText(driver.getWebURL());
link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING));
} else {
UIUtils.createPlaceholder(linksGroup, 1).setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
}
Link link = UIUtils.createLink(
linksGroup,
"<a>Download configuration</a>",
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
UIUtils.showPreferencesFor(
DBeaverUI.getActiveWorkbenchShell(),
null,
PrefPageDrivers.PAGE_ID);
}
});
link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_END));
}
createLinksPanel(composite);
setControl(composite);
}
......
......@@ -92,6 +92,7 @@ public class DriverDownloadDialog extends WizardDialog
public static boolean downloadDriverFiles(Shell shell, DriverDescriptor driver, List<DriverFileDescriptor> files) {
DriverDownloadDialog dialog = new DriverDownloadDialog(shell, driver, files);
//dialog.setPageSize(1,1);
dialog.open();
return dialog.doDownload;
}
......
......@@ -22,17 +22,16 @@ import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.registry.DriverDescriptor;
import org.jkiss.dbeaver.registry.DriverFileSource;
import org.jkiss.dbeaver.runtime.RuntimeUtils;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.preferences.PrefPageDrivers;
import org.jkiss.utils.CommonUtils;
class DriverDownloadManualPage extends DriverDownloadPage {
private DriverFileSource fileSource;
private Table filesTable;
DriverDownloadManualPage() {
super("Configure driver files", "Download driver files", null);
......@@ -42,7 +41,6 @@ class DriverDownloadManualPage extends DriverDownloadPage {
@Override
public void createControl(Composite parent) {
final DriverDescriptor driver = getWizard().getDriver();
fileSource = driver.getDriverFileSources().get(0);
setMessage("Download & configure " + driver.getFullName() + " driver files");
......@@ -54,9 +52,6 @@ class DriverDownloadManualPage extends DriverDownloadPage {
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());
}
Text infoText = new Text(composite, SWT.MULTI | SWT.READ_ONLY | SWT.WRAP);
infoText.setText(message.toString());
......@@ -68,61 +63,49 @@ class DriverDownloadManualPage extends DriverDownloadPage {
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.verticalIndent = 10;
filesGroup.setLayoutData(gd);
Table filesTable = new Table(filesGroup, SWT.BORDER | SWT.FULL_SELECTION);
final Combo sourceCombo = new Combo(filesGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
sourceCombo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
selectFileSource(driver.getDriverFileSources().get(sourceCombo.getSelectionIndex()));
}
});
for (DriverFileSource source : driver.getDriverFileSources()) {
sourceCombo.add(source.getName());
}
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");
sourceCombo.select(0);
selectFileSource(driver.getDriverFileSources().get(0));
UIUtils.packColumns(filesTable, true);
createLinksPanel(composite);
setControl(composite);
}
private void selectFileSource(DriverFileSource source) {
fileSource = source;
filesTable.removeAll();
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);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.verticalIndent = 10;
linksGroup.setLayoutData(gd);
// Vendor site
if (!CommonUtils.isEmpty(driver.getWebURL())) {
Link link = UIUtils.createLink(
linksGroup,
"<a>Vendor's website</a>",
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
RuntimeUtils.openWebBrowser(driver.getWebURL());
}
});
link.setToolTipText(driver.getWebURL());
link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING));
} else {
UIUtils.createPlaceholder(linksGroup, 1).setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
}
Link link = UIUtils.createLink(
linksGroup,
"<a>Download configuration</a>",
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
UIUtils.showPreferencesFor(
DBeaverUI.getActiveWorkbenchShell(),
null,
PrefPageDrivers.PAGE_ID);
}
});
link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_END));
}
setControl(composite);
}
@Override
public boolean isPageComplete() {
return fileSource != null;
}
@Override
void performFinish() {
......
......@@ -19,6 +19,17 @@ package org.jkiss.dbeaver.ui.dialogs.driver;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Link;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.registry.DriverDescriptor;
import org.jkiss.dbeaver.runtime.RuntimeUtils;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.preferences.PrefPageDrivers;
import org.jkiss.utils.CommonUtils;
abstract class DriverDownloadPage extends WizardPage {
......@@ -32,4 +43,46 @@ abstract class DriverDownloadPage extends WizardPage {
abstract void performFinish();
protected void createLinksPanel(Composite composite) {
final DriverDescriptor driver = getWizard().getDriver();
UIUtils.createPlaceholder(composite, 1).setLayoutData(new GridData(GridData.FILL_BOTH));
Composite linksGroup = UIUtils.createPlaceholder(composite, 2);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.verticalIndent = 10;
linksGroup.setLayoutData(gd);
// Vendor site
if (!CommonUtils.isEmpty(driver.getWebURL())) {
Link link = UIUtils.createLink(
linksGroup,
"<a>Vendor's website</a>",
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
RuntimeUtils.openWebBrowser(driver.getWebURL());
}
});
link.setToolTipText(driver.getWebURL());
link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING));
} else {
UIUtils.createPlaceholder(linksGroup, 1).setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
}
Link link = UIUtils.createLink(
linksGroup,
"<a>Download configuration</a>",
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
UIUtils.showPreferencesFor(
DBeaverUI.getActiveWorkbenchShell(),
null,
PrefPageDrivers.PAGE_ID);
}
});
link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_END));
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册