use of org.jkiss.dbeaver.model.connection.DBPDriverLibrary in project dbeaver by serge-rider.
the class DriverEditDialog method changeLibContent.
private void changeLibContent() {
libTable.setInput(driver.getEnabledDriverLibraries());
boolean hasFiles = false, hasDownloads = false;
for (DBPDriverLibrary library : driver.getDriverLibraries()) {
final File localFile = library.getLocalFile();
hasFiles = hasFiles || (!library.isDisabled() && localFile != null && localFile.exists());
if (!hasFiles && !library.isDisabled()) {
final Collection<DriverDescriptor.DriverFileInfo> files = driver.getLibraryFiles(library);
if (files != null) {
for (DriverDescriptor.DriverFileInfo file : files) {
if (file.getFile() != null && file.getFile().exists()) {
hasFiles = true;
}
}
}
}
if (!library.isDisabled() && library.isDownloadable()) {
hasDownloads = true;
}
}
findClassButton.setEnabled(provider.isDriversManagable() && hasFiles);
updateVersionButton.setEnabled(hasDownloads);
}
use of org.jkiss.dbeaver.model.connection.DBPDriverLibrary in project dbeaver by serge-rider.
the class DriverDownloadAutoPage method downloadLibraryFiles.
private void downloadLibraryFiles(final DBRProgressMonitor monitor) throws InterruptedException {
if (!acceptDriverLicenses()) {
return;
}
boolean processUnsecure = false;
List<DBPDriverDependencies.DependencyNode> nodes = getWizard().getDependencies().getLibraryList();
for (int i = 0, filesSize = nodes.size(); i < filesSize; ) {
final DBPDriverLibrary lib = nodes.get(i).library;
if (!processUnsecure && !lib.isSecureDownload(monitor)) {
boolean process = new UIConfirmation() {
@Override
protected Boolean runTask() {
MessageBox messageBox = new MessageBox(getShell(), SWT.ICON_WARNING | SWT.YES | SWT.NO);
messageBox.setText(UIConnectionMessages.dialog_driver_download_auto_page_driver_security_warning);
messageBox.setMessage(NLS.bind(UIConnectionMessages.dialog_driver_download_auto_page_driver_security_warning_msg, lib.getDisplayName(), lib.getExternalURL(monitor)));
int response = messageBox.open();
return (response == SWT.YES);
}
}.execute();
if (process) {
processUnsecure = true;
} else {
break;
}
}
int result = IDialogConstants.OK_ID;
try {
lib.downloadLibraryFile(monitor, getWizard().isForceDownload(), NLS.bind(UIConnectionMessages.dialog_driver_download_auto_page_download_rate, (i + 1), filesSize));
} catch (final IOException e) {
if (lib.getType() == DBPDriverLibrary.FileType.license) {
result = IDialogConstants.OK_ID;
} else {
result = new UITask<Integer>() {
@Override
protected Integer runTask() {
DownloadErrorDialog dialog = new DownloadErrorDialog(null, lib.getDisplayName(), UIConnectionMessages.dialog_driver_download_auto_page_download_failed_msg, e);
return dialog.open();
}
}.execute();
}
}
switch(result) {
case IDialogConstants.CANCEL_ID:
case IDialogConstants.ABORT_ID:
return;
case IDialogConstants.RETRY_ID:
continue;
case IDialogConstants.OK_ID:
case IDialogConstants.IGNORE_ID:
i++;
break;
}
}
((DriverDescriptor) getWizard().getDriver()).setModified(true);
// DataSourceProviderRegistry.getInstance().saveDrivers();
}
use of org.jkiss.dbeaver.model.connection.DBPDriverLibrary in project dbeaver by serge-rider.
the class DriverLibraryDetailsDialog method createDependenciesTab.
private void createDependenciesTab(TabFolder tabs) {
Composite paramsGroup = new Composite(tabs, SWT.NONE);
paramsGroup.setLayout(new GridLayout(1, false));
final Set<DBPDriverLibrary> libList = Collections.singleton(library);
DriverDependencies dependencies = new DriverDependencies(libList);
final DriverDependenciesTree depsTree = new DriverDependenciesTree(paramsGroup, UIUtils.getDefaultRunnableContext(), dependencies, driver, libList, false);
depsTree.resolveLibraries();
UIUtils.asyncExec(new Runnable() {
@Override
public void run() {
depsTree.resizeTree();
}
});
TabItem depsTab = new TabItem(tabs, SWT.NONE);
depsTab.setText(UIConnectionMessages.dialog_edit_driver_tab_depencencies);
depsTab.setToolTipText(UIConnectionMessages.dialog_edit_driver_tab_depencencies_tooltip);
depsTab.setControl(paramsGroup);
}
Aggregations