Search in sources :

Example 11 with DBPDataSourceProviderDescriptor

use of org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor in project dbeaver by serge-rider.

the class SQLTemplateStore method readContributedTemplates.

private Collection<TemplatePersistenceData> readContributedTemplates() throws IOException {
    Collection<TemplatePersistenceData> templates = new ArrayList<>();
    readIncludedTemplates(SQLEditorActivator.PLUGIN_ID, templates, "templates/default-templates.xml", "$nl$/templates/default-templates.properties");
    // Read templates for DS providers
    for (DBPDataSourceProviderDescriptor provider : DBWorkbench.getPlatform().getDataSourceProviderRegistry().getDataSourceProviders()) {
        readIncludedTemplates(provider.getPluginId(), templates, "templates/" + provider.getId() + "-templates.xml", "$nl$/templates/" + provider.getId() + "-templates.properties");
    }
    return templates;
}
Also used : TemplatePersistenceData(org.eclipse.jface.text.templates.persistence.TemplatePersistenceData) ArrayList(java.util.ArrayList) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor)

Example 12 with DBPDataSourceProviderDescriptor

use of org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor in project dbeaver by serge-rider.

the class DashboardManagerDialog method createDialogArea.

@Override
protected Composite createDialogArea(Composite parent) {
    getShell().setMinimumSize(300, 300);
    Composite dialogArea = super.createDialogArea(parent);
    Composite group = UIUtils.createPlaceholder(dialogArea, 2);
    group.setLayoutData(new GridData(GridData.FILL_BOTH));
    {
        treeViewer = new TreeViewer(group, SWT.BORDER);
        GridData gd = new GridData(GridData.FILL_BOTH);
        gd.heightHint = 300;
        gd.widthHint = 300;
        treeViewer.getControl().setLayoutData(gd);
        treeViewer.getTree().setHeaderVisible(true);
        UIUtils.createTreeColumn(treeViewer.getTree(), SWT.LEFT, UIDashboardMessages.dialog_dashboard_manager_treecolumn_name);
        // UIUtils.createTreeColumn(treeViewer.getTree(), SWT.LEFT, "Description");
        treeViewer.setContentProvider(new TreeContentProvider() {

            @Override
            public Object[] getChildren(Object parentElement) {
                List<? extends DBPNamedObject> result = null;
                if (parentElement instanceof List) {
                    result = (List) parentElement;
                } else if (parentElement instanceof DBPDataSourceProviderDescriptor) {
                    result = DashboardRegistry.getInstance().getDashboards((DBPDataSourceProviderDescriptor) parentElement, false);
                } else if (parentElement instanceof DBPDriver) {
                    result = DashboardRegistry.getInstance().getDashboards((DBPDriver) parentElement, false);
                }
                if (result == null) {
                    return new Object[0];
                }
                result.sort(DBUtils.nameComparator());
                return result.toArray();
            }

            @Override
            public boolean hasChildren(Object element) {
                if (element instanceof DashboardDescriptor) {
                    return false;
                }
                return true;
            }
        });
        treeViewer.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {
                DBPNamedObject element = (DBPNamedObject) cell.getElement();
                if (cell.getColumnIndex() == 0) {
                    cell.setText(element.getName());
                    if (element instanceof DBPDriver) {
                        cell.setImage(DBeaverIcons.getImage(((DBPDriver) element).getIcon()));
                    } else if (element instanceof DBPDataSourceProviderDescriptor) {
                        cell.setImage(DBeaverIcons.getImage(((DBPDataSourceProviderDescriptor) element).getIcon()));
                    } else if (element instanceof DashboardDescriptor) {
                        DashboardDescriptor dashboardDescriptor = (DashboardDescriptor) element;
                        DBPImage icon;
                        if (dashboardDescriptor.isCustom()) {
                            icon = DBIcon.TYPE_OBJECT;
                        } else {
                            icon = dashboardDescriptor.getDefaultViewType().getIcon();
                        }
                        if (icon != null) {
                            cell.setImage(DBeaverIcons.getImage(icon));
                        }
                    }
                } else {
                    if (element instanceof DBPDriver) {
                        cell.setText(CommonUtils.notEmpty(((DBPDriver) element).getDescription()));
                    } else if (element instanceof DBPDataSourceProviderDescriptor) {
                        cell.setText(((DBPDataSourceProviderDescriptor) element).getDescription());
                    }
                }
            }
        });
        treeViewer.setInput(DashboardRegistry.getInstance().getAllSupportedSources());
        treeViewer.addDoubleClickListener(event -> {
            if (selectedDashboard != null) {
                editDashboard();
            }
        });
        treeViewer.addSelectionChangedListener(event -> {
            this.selectedDashboard = null;
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
                if (selectedObject instanceof DashboardDescriptor) {
                    this.selectedDashboard = (DashboardDescriptor) selectedObject;
                }
            }
            this.updateButtons();
        });
        UIUtils.asyncExec(() -> {
            treeViewer.expandAll();
            UIUtils.packColumns(treeViewer.getTree(), true, null);
        });
    }
    {
        Composite buttonBar = new Composite(group, SWT.TOP);
        buttonBar.setLayout(new GridLayout(1, false));
        GridData gd = new GridData(GridData.FILL_VERTICAL);
        buttonBar.setLayoutData(gd);
        newButton = UIUtils.createPushButton(buttonBar, UIDashboardMessages.dialog_dashboard_manager_button_new, null, new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                createDashboard();
            }
        });
        newButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        copyButton = UIUtils.createPushButton(buttonBar, UIDashboardMessages.dialog_dashboard_manager_button_copy, null, new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                copyDashboard();
            }
        });
        copyButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        editButton = UIUtils.createPushButton(buttonBar, UIDashboardMessages.dialog_dashboard_manager_button_edit, null, new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                editDashboard();
            }
        });
        editButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        deleteButton = UIUtils.createPushButton(buttonBar, UIDashboardMessages.dialog_dashboard_manager_button_delete, null, new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                deleteDashboard();
            }
        });
        deleteButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    }
    UIUtils.createInfoLabel(dialogArea, UIDashboardMessages.dialog_dashboard_manager_infolabel_predifined_dashboard);
    this.updateButtons();
    return group;
}
Also used : UIDashboardMessages(org.jkiss.dbeaver.ui.dashboard.internal.UIDashboardMessages) UIDashboardActivator(org.jkiss.dbeaver.ui.dashboard.internal.UIDashboardActivator) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) DBPImage(org.jkiss.dbeaver.model.DBPImage) BaseDialog(org.jkiss.dbeaver.ui.dialogs.BaseDialog) DBeaverIcons(org.jkiss.dbeaver.ui.DBeaverIcons) DBPDriver(org.jkiss.dbeaver.model.connection.DBPDriver) Composite(org.eclipse.swt.widgets.Composite) UIUtils(org.jkiss.dbeaver.ui.UIUtils) GridData(org.eclipse.swt.layout.GridData) TreeContentProvider(org.jkiss.dbeaver.ui.controls.TreeContentProvider) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) DashboardRegistry(org.jkiss.dbeaver.ui.dashboard.registry.DashboardRegistry) CommonUtils(org.jkiss.utils.CommonUtils) Shell(org.eclipse.swt.widgets.Shell) Button(org.eclipse.swt.widgets.Button) NLS(org.eclipse.osgi.util.NLS) DBUtils(org.jkiss.dbeaver.model.DBUtils) org.eclipse.jface.viewers(org.eclipse.jface.viewers) List(java.util.List) DBIcon(org.jkiss.dbeaver.model.DBIcon) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor) DashboardDescriptor(org.jkiss.dbeaver.ui.dashboard.registry.DashboardDescriptor) SWT(org.eclipse.swt.SWT) SelectionEvent(org.eclipse.swt.events.SelectionEvent) DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) GridLayout(org.eclipse.swt.layout.GridLayout) DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) DBPImage(org.jkiss.dbeaver.model.DBPImage) TreeContentProvider(org.jkiss.dbeaver.ui.controls.TreeContentProvider) GridLayout(org.eclipse.swt.layout.GridLayout) DashboardDescriptor(org.jkiss.dbeaver.ui.dashboard.registry.DashboardDescriptor) DBPDriver(org.jkiss.dbeaver.model.connection.DBPDriver) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) List(java.util.List) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor)

Example 13 with DBPDataSourceProviderDescriptor

use of org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor in project dbeaver by serge-rider.

the class DashboardDescriptor method getSupportedSources.

public List<DBPNamedObject> getSupportedSources() {
    DBPPlatform platform = DBWorkbench.getPlatform();
    List<DBPNamedObject> results = new ArrayList<>();
    for (DataSourceMapping dsm : dataSourceMappings) {
        if (dsm.dataSourceProvider != null) {
            DBPDataSourceProviderDescriptor provider = platform.getDataSourceProviderRegistry().getDataSourceProvider(dsm.dataSourceProvider);
            if (provider != null) {
                results.add(provider);
            }
        } else if (dsm.driverId != null) {
            DBPDriver driver = platform.getDataSourceProviderRegistry().findDriver(dsm.driverId);
            if (driver != null) {
                results.add(driver);
            }
        }
    }
    return results;
}
Also used : DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) DBPDriver(org.jkiss.dbeaver.model.connection.DBPDriver) ArrayList(java.util.ArrayList) DBPPlatform(org.jkiss.dbeaver.model.app.DBPPlatform) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor)

Example 14 with DBPDataSourceProviderDescriptor

use of org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor in project dbeaver by serge-rider.

the class DashboardDatabaseSelectDialog method createDialogArea.

@Override
protected Composite createDialogArea(Composite parent) {
    Composite dialogArea = super.createDialogArea(parent);
    {
        treeViewer = DialogUtils.createFilteredTree(dialogArea, SWT.BORDER, new NamedObjectPatternFilter(), null);
        GridData gd = new GridData(GridData.FILL_BOTH);
        gd.heightHint = 300;
        gd.widthHint = 300;
        treeViewer.getControl().setLayoutData(gd);
        treeViewer.getTree().setHeaderVisible(true);
        UIUtils.createTreeColumn(treeViewer.getTree(), SWT.LEFT, UIDashboardMessages.dialog_dashboard_database_select_column_name);
        UIUtils.createTreeColumn(treeViewer.getTree(), SWT.LEFT, UIDashboardMessages.dialog_dashboard_database_select_column_description);
        treeViewer.setContentProvider(new TreeContentProvider() {

            @Override
            public Object[] getChildren(Object parentElement) {
                List<? extends DBPNamedObject> result = null;
                if (parentElement instanceof List) {
                    result = (List) parentElement;
                } else if (parentElement instanceof DBPDataSourceProviderDescriptor) {
                    result = ((DBPDataSourceProviderDescriptor) parentElement).getEnabledDrivers();
                    if (result.size() <= 1) {
                        result = null;
                    }
                }
                if (result == null) {
                    return new Object[0];
                }
                result.sort(DBUtils.nameComparator());
                return result.toArray();
            }

            @Override
            public boolean hasChildren(Object element) {
                if (element instanceof DBPDriver) {
                    return false;
                }
                return ((DBPDataSourceProviderDescriptor) element).getEnabledDrivers().size() > 1;
            }
        });
        treeViewer.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {
                DBPNamedObject element = (DBPNamedObject) cell.getElement();
                if (cell.getColumnIndex() == 0) {
                    cell.setText(element.getName());
                    DBPImage icon = null;
                    if (element instanceof DBPDriver) {
                        icon = ((DBPDriver) element).getIcon();
                    } else if (element instanceof DBPDataSourceProviderDescriptor) {
                        icon = ((DBPDataSourceProviderDescriptor) element).getIcon();
                    }
                    if (icon != null) {
                        cell.setImage(DBeaverIcons.getImage(icon));
                    }
                } else {
                    if (element instanceof DBPDriver) {
                        cell.setText(CommonUtils.notEmpty(((DBPDriver) element).getDescription()));
                    } else if (element instanceof DBPDataSourceProviderDescriptor) {
                        cell.setText(((DBPDataSourceProviderDescriptor) element).getDescription());
                    }
                }
            }
        });
        treeViewer.setInput(DBWorkbench.getPlatform().getDataSourceProviderRegistry().getDataSourceProviders());
        treeViewer.addDoubleClickListener(event -> {
            if (target != null) {
                okPressed();
            }
        });
        treeViewer.addSelectionChangedListener(event -> {
            this.target = null;
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
                if (selectedObject instanceof DBPNamedObject) {
                    this.target = (DBPNamedObject) selectedObject;
                }
            }
            this.updateButtons();
        });
        UIUtils.asyncExec(() -> {
            treeViewer.expandAll();
            UIUtils.packColumns(treeViewer.getTree(), true, null);
        });
    }
    return dialogArea;
}
Also used : DBWorkbench(org.jkiss.dbeaver.runtime.DBWorkbench) TreeContentProvider(org.jkiss.dbeaver.ui.controls.TreeContentProvider) CommonUtils(org.jkiss.utils.CommonUtils) Shell(org.eclipse.swt.widgets.Shell) UIDashboardMessages(org.jkiss.dbeaver.ui.dashboard.internal.UIDashboardMessages) DBUtils(org.jkiss.dbeaver.model.DBUtils) UIDashboardActivator(org.jkiss.dbeaver.ui.dashboard.internal.UIDashboardActivator) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) DBPImage(org.jkiss.dbeaver.model.DBPImage) org.eclipse.jface.viewers(org.eclipse.jface.viewers) BaseDialog(org.jkiss.dbeaver.ui.dialogs.BaseDialog) List(java.util.List) DBeaverIcons(org.jkiss.dbeaver.ui.DBeaverIcons) DBPDriver(org.jkiss.dbeaver.model.connection.DBPDriver) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor) Composite(org.eclipse.swt.widgets.Composite) UIUtils(org.jkiss.dbeaver.ui.UIUtils) SWT(org.eclipse.swt.SWT) DialogUtils(org.jkiss.dbeaver.ui.dialogs.DialogUtils) GridData(org.eclipse.swt.layout.GridData) Control(org.eclipse.swt.widgets.Control) DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) NamedObjectPatternFilter(org.jkiss.dbeaver.ui.controls.NamedObjectPatternFilter) DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) Composite(org.eclipse.swt.widgets.Composite) NamedObjectPatternFilter(org.jkiss.dbeaver.ui.controls.NamedObjectPatternFilter) DBPImage(org.jkiss.dbeaver.model.DBPImage) TreeContentProvider(org.jkiss.dbeaver.ui.controls.TreeContentProvider) DBPDriver(org.jkiss.dbeaver.model.connection.DBPDriver) GridData(org.eclipse.swt.layout.GridData) DBPNamedObject(org.jkiss.dbeaver.model.DBPNamedObject) List(java.util.List) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor)

Example 15 with DBPDataSourceProviderDescriptor

use of org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor in project dbeaver by serge-rider.

the class DriverManagerDialog method undeleteDrivers.

private boolean undeleteDrivers() {
    List<DriverDescriptor> drivers = new ArrayList<>();
    BaseDialog dialog = new BaseDialog(getShell(), "Restore deleted driver(s)", null) {

        @Override
        protected Composite createDialogArea(Composite parent) {
            final Composite composite = super.createDialogArea(parent);
            Table driverTable = new Table(composite, SWT.CHECK | SWT.FULL_SELECTION | SWT.BORDER);
            driverTable.setLayoutData(new GridData(GridData.FILL_BOTH));
            for (DBPDataSourceProviderDescriptor dspd : DataSourceProviderRegistry.getInstance().getEnabledDataSourceProviders()) {
                for (DBPDriver dd : dspd.getDrivers()) {
                    if (dd.isDisabled()) {
                        TableItem item = new TableItem(driverTable, SWT.NONE);
                        item.setImage(DBeaverIcons.getImage(dd.getIcon()));
                        item.setText(dd.getName());
                        item.setData(dd);
                    }
                }
            }
            driverTable.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    if (((TableItem) e.item).getChecked()) {
                        drivers.add((DriverDescriptor) e.item.getData());
                    } else {
                        drivers.remove((DriverDescriptor) e.item.getData());
                    }
                }
            });
            return super.createDialogArea(parent);
        }
    };
    if (dialog.open() == IDialogConstants.OK_ID) {
        for (DriverDescriptor dd : drivers) {
            dd.setDisabled(false);
            dd.getProviderDescriptor().getRegistry().saveDrivers();
        }
        return true;
    }
    return false;
}
Also used : BaseDialog(org.jkiss.dbeaver.ui.dialogs.BaseDialog) DriverDescriptor(org.jkiss.dbeaver.registry.driver.DriverDescriptor) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) ArrayList(java.util.ArrayList) DBPDriver(org.jkiss.dbeaver.model.connection.DBPDriver) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) DBPDataSourceProviderDescriptor(org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor)

Aggregations

DBPDataSourceProviderDescriptor (org.jkiss.dbeaver.model.connection.DBPDataSourceProviderDescriptor)22 DBPDriver (org.jkiss.dbeaver.model.connection.DBPDriver)14 GridData (org.eclipse.swt.layout.GridData)10 ArrayList (java.util.ArrayList)8 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)6 SelectionEvent (org.eclipse.swt.events.SelectionEvent)6 DBPNamedObject (org.jkiss.dbeaver.model.DBPNamedObject)6 BaseDialog (org.jkiss.dbeaver.ui.dialogs.BaseDialog)6 List (java.util.List)4 IDialogConstants (org.eclipse.jface.dialogs.IDialogConstants)4 IDialogSettings (org.eclipse.jface.dialogs.IDialogSettings)4 org.eclipse.jface.viewers (org.eclipse.jface.viewers)4 SWT (org.eclipse.swt.SWT)4 GridLayout (org.eclipse.swt.layout.GridLayout)4 Composite (org.eclipse.swt.widgets.Composite)4 Shell (org.eclipse.swt.widgets.Shell)4 DBPImage (org.jkiss.dbeaver.model.DBPImage)4 DBUtils (org.jkiss.dbeaver.model.DBUtils)4 DataSourceProviderDescriptor (org.jkiss.dbeaver.registry.DataSourceProviderDescriptor)4 DriverDescriptor (org.jkiss.dbeaver.registry.driver.DriverDescriptor)4