Search in sources :

Example 21 with DBPDriverLibrary

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);
}
Also used : DriverDescriptor(org.jkiss.dbeaver.registry.driver.DriverDescriptor) DBPDriverLibrary(org.jkiss.dbeaver.model.connection.DBPDriverLibrary) File(java.io.File)

Example 22 with DBPDriverLibrary

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();
}
Also used : DriverDescriptor(org.jkiss.dbeaver.registry.driver.DriverDescriptor) UIConfirmation(org.jkiss.dbeaver.ui.UIConfirmation) IOException(java.io.IOException) DBPDriverLibrary(org.jkiss.dbeaver.model.connection.DBPDriverLibrary)

Example 23 with DBPDriverLibrary

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);
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) DriverDependencies(org.jkiss.dbeaver.registry.driver.DriverDependencies) DBPDriverLibrary(org.jkiss.dbeaver.model.connection.DBPDriverLibrary)

Aggregations

DBPDriverLibrary (org.jkiss.dbeaver.model.connection.DBPDriverLibrary)23 File (java.io.File)8 IOException (java.io.IOException)6 DriverDescriptor (org.jkiss.dbeaver.registry.driver.DriverDescriptor)5 InvocationTargetException (java.lang.reflect.InvocationTargetException)4 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)4 SelectionEvent (org.eclipse.swt.events.SelectionEvent)4 GridData (org.eclipse.swt.layout.GridData)4 GridLayout (org.eclipse.swt.layout.GridLayout)4 DBException (org.jkiss.dbeaver.DBException)3 DBPDriver (org.jkiss.dbeaver.model.connection.DBPDriver)3 XMLBuilder (org.jkiss.utils.xml.XMLBuilder)3 MalformedURLException (java.net.MalformedURLException)2 URL (java.net.URL)2 URLClassLoader (java.net.URLClassLoader)2 java.util (java.util)2 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 JarFile (java.util.jar.JarFile)2