Search in sources :

Example 21 with DBSObjectFilter

use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by dbeaver.

the class DataSourceSerializerModern method readObjectFiler.

private static DBSObjectFilter readObjectFiler(Map<String, Object> map) {
    DBSObjectFilter filter = new DBSObjectFilter();
    filter.setName(JSONUtils.getString(map, RegistryConstants.ATTR_NAME));
    filter.setDescription(JSONUtils.getString(map, RegistryConstants.ATTR_DESCRIPTION));
    filter.setEnabled(JSONUtils.getBoolean(map, RegistryConstants.ATTR_ENABLED));
    filter.setInclude(JSONUtils.deserializeStringList(map, RegistryConstants.TAG_INCLUDE));
    filter.setExclude(JSONUtils.deserializeStringList(map, RegistryConstants.TAG_EXCLUDE));
    return filter;
}
Also used : DBSObjectFilter(org.jkiss.dbeaver.model.struct.DBSObjectFilter)

Example 22 with DBSObjectFilter

use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by dbeaver.

the class DataSourceSerializerModern method saveDataSources.

@Override
public void saveDataSources(DBRProgressMonitor monitor, DBPDataSourceConfigurationStorage configurationStorage, List<DataSourceDescriptor> localDataSources, File configFile) throws DBException {
    ByteArrayOutputStream dsConfigBuffer = new ByteArrayOutputStream(10000);
    try (OutputStreamWriter osw = new OutputStreamWriter(dsConfigBuffer, StandardCharsets.UTF_8)) {
        try (JsonWriter jsonWriter = CONFIG_GSON.newJsonWriter(osw)) {
            jsonWriter.setIndent("\t");
            jsonWriter.beginObject();
            // Save folders
            if (configurationStorage.isDefault()) {
                jsonWriter.name("folders");
                jsonWriter.beginObject();
                // Folders (only for default storage)
                for (DataSourceFolder folder : registry.getAllFolders()) {
                    saveFolder(jsonWriter, folder);
                }
                jsonWriter.endObject();
            }
            Map<String, DBVModel> virtualModels = new LinkedHashMap<>();
            Map<String, DBPConnectionType> connectionTypes = new LinkedHashMap<>();
            Map<String, Map<String, DBPDriver>> drivers = new LinkedHashMap<>();
            {
                // Save connections
                jsonWriter.name("connections");
                jsonWriter.beginObject();
                for (DataSourceDescriptor dataSource : localDataSources) {
                    // Skip temporary
                    if (!dataSource.isDetached()) {
                        saveDataSource(jsonWriter, dataSource);
                        if (dataSource.getVirtualModel().hasValuableData()) {
                            virtualModels.put(dataSource.getVirtualModel().getId(), dataSource.getVirtualModel());
                        }
                        DBPConnectionType connectionType = dataSource.getConnectionConfiguration().getConnectionType();
                        /*if (!connectionType.isPredefined()) */
                        {
                            connectionTypes.put(connectionType.getId(), connectionType);
                        }
                        DBPDriver driver = dataSource.getDriver();
                        if (driver.isCustom() && !driver.getProviderDescriptor().isTemporary()) {
                            Map<String, DBPDriver> driverMap = drivers.computeIfAbsent(driver.getProviderId(), s -> new LinkedHashMap<>());
                            driverMap.put(driver.getId(), driver);
                        }
                    }
                }
                jsonWriter.endObject();
            }
            if (configurationStorage.isDefault()) {
                if (!virtualModels.isEmpty()) {
                    // Save virtual models
                    jsonWriter.name("virtual-models");
                    jsonWriter.beginObject();
                    for (DBVModel model : virtualModels.values()) {
                        model.serialize(monitor, jsonWriter);
                    }
                    jsonWriter.endObject();
                }
                // Network profiles
                List<DBWNetworkProfile> profiles = registry.getNetworkProfiles();
                if (!CommonUtils.isEmpty(profiles)) {
                    jsonWriter.name("network-profiles");
                    jsonWriter.beginObject();
                    for (DBWNetworkProfile np : profiles) {
                        jsonWriter.name(np.getProfileId());
                        jsonWriter.beginObject();
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_NAME, np.getProfileName());
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_DESCRIPTION, np.getProfileDescription());
                        jsonWriter.name("handlers");
                        jsonWriter.beginObject();
                        for (DBWHandlerConfiguration configuration : np.getConfigurations()) {
                            if (configuration.hasValuableInfo()) {
                                saveNetworkHandlerConfiguration(jsonWriter, null, np, configuration);
                            }
                        }
                        jsonWriter.endObject();
                        jsonWriter.endObject();
                    }
                    jsonWriter.endObject();
                }
                // Auth profiles
                List<DBAAuthProfile> authProfiles = registry.getAllAuthProfiles();
                if (!CommonUtils.isEmpty(authProfiles)) {
                    jsonWriter.name("auth-profiles");
                    jsonWriter.beginObject();
                    for (DBAAuthProfile authProfile : authProfiles) {
                        jsonWriter.name(authProfile.getProfileId());
                        jsonWriter.beginObject();
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_NAME, authProfile.getProfileName());
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_DESCRIPTION, authProfile.getProfileDescription());
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_AUTH_MODEL, authProfile.getAuthModelId());
                        if (authProfile.isSavePassword()) {
                            JSONUtils.field(jsonWriter, RegistryConstants.ATTR_SAVE_PASSWORD, authProfile.isSavePassword());
                        }
                        // Save all auth properties in secure storage
                        saveSecuredCredentials(null, authProfile, null, new SecureCredentials(authProfile));
                        jsonWriter.endObject();
                    }
                    jsonWriter.endObject();
                }
                // Filters
                List<DBSObjectFilter> savedFilters = registry.getSavedFilters();
                if (!CommonUtils.isEmpty(savedFilters)) {
                    jsonWriter.name("saved-filters");
                    jsonWriter.beginArray();
                    for (DBSObjectFilter cf : savedFilters) {
                        if (!cf.isEmpty()) {
                            saveObjectFiler(jsonWriter, null, null, cf);
                        }
                    }
                    jsonWriter.endArray();
                }
                // Connection types
                if (!CommonUtils.isEmpty(connectionTypes)) {
                    jsonWriter.name("connection-types");
                    jsonWriter.beginObject();
                    for (DBPConnectionType ct : connectionTypes.values()) {
                        jsonWriter.name(ct.getId());
                        jsonWriter.beginObject();
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_NAME, ct.getName());
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_COLOR, ct.getColor());
                        JSONUtils.fieldNE(jsonWriter, RegistryConstants.ATTR_DESCRIPTION, ct.getDescription());
                        JSONUtils.field(jsonWriter, "auto-commit", ct.isAutocommit());
                        JSONUtils.field(jsonWriter, "confirm-execute", ct.isConfirmExecute());
                        JSONUtils.field(jsonWriter, "confirm-data-change", ct.isConfirmDataChange());
                        serializeModifyPermissions(jsonWriter, ct);
                        jsonWriter.endObject();
                    }
                    jsonWriter.endObject();
                }
                // Drivers
                if (!CommonUtils.isEmpty(drivers)) {
                    jsonWriter.name("drivers");
                    jsonWriter.beginObject();
                    for (Map.Entry<String, Map<String, DBPDriver>> dmap : drivers.entrySet()) {
                        jsonWriter.name(dmap.getKey());
                        jsonWriter.beginObject();
                        for (DBPDriver driver : dmap.getValue().values()) {
                            ((DriverDescriptor) driver).serialize(jsonWriter, true);
                        }
                        jsonWriter.endObject();
                    }
                    jsonWriter.endObject();
                }
            }
            jsonWriter.endObject();
            jsonWriter.flush();
        }
    } catch (IOException e) {
        log.error("IO error while saving datasources json", e);
    }
    String jsonString = new String(dsConfigBuffer.toByteArray(), StandardCharsets.UTF_8);
    boolean encryptProject = CommonUtils.toBoolean(registry.getProject().getProjectProperty(DBPProject.PROP_SECURE_PROJECT));
    saveConfigFile(configFile, jsonString, false, encryptProject);
    {
        saveSecureCredentialsFile(monitor.getNestedMonitor(), configFile.getParentFile(), configurationStorage);
    }
}
Also used : DBWorkbench(org.jkiss.dbeaver.runtime.DBWorkbench) DBPDataSourceConfigurationStorage(org.jkiss.dbeaver.model.DBPDataSourceConfigurationStorage) java.util(java.util) TypeToken(com.google.gson.reflect.TypeToken) DBPDataSourceOrigin(org.jkiss.dbeaver.model.DBPDataSourceOrigin) Nullable(org.jkiss.code.Nullable) GsonBuilder(com.google.gson.GsonBuilder) NotNull(org.jkiss.code.NotNull) DBAAuthProfile(org.jkiss.dbeaver.model.access.DBAAuthProfile) DBWHandlerConfiguration(org.jkiss.dbeaver.model.net.DBWHandlerConfiguration) NetworkHandlerDescriptor(org.jkiss.dbeaver.registry.network.NetworkHandlerDescriptor) DBPDataSourcePermission(org.jkiss.dbeaver.model.DBPDataSourcePermission) Gson(com.google.gson.Gson) DBWNetworkProfile(org.jkiss.dbeaver.model.net.DBWNetworkProfile) DBASecureStorage(org.jkiss.dbeaver.model.app.DBASecureStorage) IOUtils(org.jkiss.utils.IOUtils) Log(org.jkiss.dbeaver.Log) DBRProgressMonitor(org.jkiss.dbeaver.model.runtime.DBRProgressMonitor) ContentEncrypter(org.jkiss.dbeaver.runtime.encode.ContentEncrypter) DBPProject(org.jkiss.dbeaver.model.app.DBPProject) DBVModel(org.jkiss.dbeaver.model.virtual.DBVModel) JsonWriter(com.google.gson.stream.JsonWriter) JSONUtils(org.jkiss.dbeaver.model.data.json.JSONUtils) DBRShellCommand(org.jkiss.dbeaver.model.runtime.DBRShellCommand) NetworkHandlerRegistry(org.jkiss.dbeaver.registry.network.NetworkHandlerRegistry) CommonUtils(org.jkiss.utils.CommonUtils) SimplePreferenceStore(org.jkiss.dbeaver.model.impl.preferences.SimplePreferenceStore) DBSObjectFilter(org.jkiss.dbeaver.model.struct.DBSObjectFilter) ContentUtils(org.jkiss.dbeaver.utils.ContentUtils) DBPDataSourcePermissionOwner(org.jkiss.dbeaver.model.DBPDataSourcePermissionOwner) ArrayUtils(org.jkiss.utils.ArrayUtils) DriverDescriptor(org.jkiss.dbeaver.registry.driver.DriverDescriptor) StandardCharsets(java.nio.charset.StandardCharsets) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) java.io(java.io) DBException(org.jkiss.dbeaver.DBException) org.jkiss.dbeaver.model.connection(org.jkiss.dbeaver.model.connection) DBPDataSourceRegistry(org.jkiss.dbeaver.model.app.DBPDataSourceRegistry) ISecurePreferences(org.eclipse.equinox.security.storage.ISecurePreferences) DBWNetworkProfile(org.jkiss.dbeaver.model.net.DBWNetworkProfile) DBSObjectFilter(org.jkiss.dbeaver.model.struct.DBSObjectFilter) DriverDescriptor(org.jkiss.dbeaver.registry.driver.DriverDescriptor) DBVModel(org.jkiss.dbeaver.model.virtual.DBVModel) JsonWriter(com.google.gson.stream.JsonWriter) DBAAuthProfile(org.jkiss.dbeaver.model.access.DBAAuthProfile) DBWHandlerConfiguration(org.jkiss.dbeaver.model.net.DBWHandlerConfiguration)

Example 23 with DBSObjectFilter

use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by dbeaver.

the class EditObjectFilterDialog method createDialogArea.

@Override
protected Control createDialogArea(Composite parent) {
    getShell().setText(NLS.bind(UINavigatorMessages.dialog_filter_title, objectTitle));
    // getShell().setImage(DBIcon.EVENT.getImage());
    Composite composite = (Composite) super.createDialogArea(parent);
    Composite topPanel = UIUtils.createPlaceholder(composite, globalFilter ? 1 : 2);
    topPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    enableButton = UIUtils.createCheckbox(topPanel, UIMessages.button_enable, false);
    enableButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            filter.setEnabled(enableButton.getSelection());
            enableFiltersContent();
        }
    });
    enableButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    enableButton.setSelection(filter.isEnabled());
    if (!globalFilter) {
        Link globalLink = UIUtils.createLink(topPanel, UINavigatorMessages.dialog_filter_global_link, new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                setReturnCode(SHOW_GLOBAL_FILTERS_ID);
                close();
            }
        });
        globalLink.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
    }
    blockControl = UIUtils.createPlaceholder(composite, 1);
    blockControl.setLayoutData(new GridData(GridData.FILL_BOTH));
    includeTable = StringEditorTable.createEditableList(blockControl, UINavigatorMessages.dialog_filter_list_include, filter.getInclude(), null, null);
    excludeTable = StringEditorTable.createEditableList(blockControl, UINavigatorMessages.dialog_filter_list_exclude, filter.getExclude(), null, null);
    UIUtils.createInfoLabel(blockControl, UINavigatorMessages.dialog_filter_hint_text);
    {
        Group sfGroup = UIUtils.createControlGroup(composite, UINavigatorMessages.dialog_filter_save_label, 4, GridData.FILL_HORIZONTAL, 0);
        namesCombo = UIUtils.createLabelCombo(sfGroup, UINavigatorMessages.dialog_filter_name_label, SWT.DROP_DOWN);
        namesCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        namesCombo.add(NULL_FILTER_NAME);
        List<String> sfNames = new ArrayList<>();
        for (DBSObjectFilter sf : dsRegistry.getSavedFilters()) {
            sfNames.add(sf.getName());
        }
        Collections.sort(sfNames);
        for (String sfName : sfNames) {
            namesCombo.add(sfName);
        }
        namesCombo.setText(CommonUtils.notEmpty(filter.getName()));
        namesCombo.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                changeSavedFilter();
            }
        });
        Button saveButton = UIUtils.createPushButton(sfGroup, UINavigatorMessages.dialog_filter_save_button, null);
        saveButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                namesCombo.add(namesCombo.getText());
                saveConfigurations();
            }
        });
        Button removeButton = UIUtils.createPushButton(sfGroup, UINavigatorMessages.dialog_filter_remove_button, null);
        removeButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                dsRegistry.removeSavedFilter(namesCombo.getText());
                namesCombo.remove(namesCombo.getText());
                namesCombo.setText(NULL_FILTER_NAME);
            }
        });
    }
    enableFiltersContent();
    return composite;
}
Also used : DBSObjectFilter(org.jkiss.dbeaver.model.struct.DBSObjectFilter) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ArrayList(java.util.ArrayList) List(java.util.List)

Example 24 with DBSObjectFilter

use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by dbeaver.

the class EditObjectFilterDialog method changeSavedFilter.

private void changeSavedFilter() {
    String filterName = namesCombo.getText();
    if (CommonUtils.equalObjects(filterName, filter.getName())) {
        return;
    }
    if (CommonUtils.isEmpty(filterName)) {
        // Reset filter
        StringEditorTable.fillFilterValues(includeTable, null, null);
        StringEditorTable.fillFilterValues(excludeTable, null, null);
    } else {
        // Find saved filter
        DBSObjectFilter savedFilter = dsRegistry.getSavedFilter(filterName);
        if (savedFilter != null) {
            StringEditorTable.fillFilterValues(includeTable, savedFilter.getInclude(), null);
            StringEditorTable.fillFilterValues(excludeTable, savedFilter.getExclude(), null);
        }
    }
    filter.setName(filterName);
}
Also used : DBSObjectFilter(org.jkiss.dbeaver.model.struct.DBSObjectFilter)

Example 25 with DBSObjectFilter

use of org.jkiss.dbeaver.model.struct.DBSObjectFilter in project dbeaver by dbeaver.

the class ObjectPropertyTester method test.

@SuppressWarnings("unchecked")
@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
    if (!(receiver instanceof DBNNode)) {
        return false;
    }
    Display display = Display.getCurrent();
    if (display == null) {
        return false;
    }
    DBNNode node = (DBNNode) receiver;
    switch(property) {
        case PROP_CAN_OPEN:
            return node.isPersisted();
        case PROP_CAN_CREATE_SINGLE:
            {
                return canCreateObject(node, true);
            }
        case PROP_CAN_CREATE_MULTI:
            {
                return canCreateObject(node, false);
            }
        case PROP_CAN_PASTE:
            {
                /*
                Clipboard clipboard = new Clipboard(display);
                try {
                    if (clipboard.getContents(TreeNodeTransfer.getInstance()) == null) {
                        return false;
                    }
                } finally {
                    clipboard.dispose();
                }
*/
                if (node instanceof DBNResource) {
                    return property.equals(PROP_CAN_PASTE);
                }
                return canCreateObject(node, null);
            // Do not check PASTE command state. It requires clipboard contents check
            // which means UI interaction which can break menu popup [RedHat]
            // and also is a slow operation. So let paste be always enabled.
            /*
            // Check objects in clipboard
            Collection<DBNNode> cbNodes = TreeNodeTransfer.getFromClipboard();
            if (cbNodes == null) {
                return false;
            }
            for (DBNNode nodeObject : cbNodes) {
                if (nodeObject.isManagable() && nodeObject instanceof DBSWrapper) {
                    DBSObject pasteObject = ((DBSWrapper)nodeObject).getObject();
                    if (pasteObject == null || objectType != pasteObject.getClass()) {
                        return false;
                    }
                } else {
                    return false;
                }
            }
*/
            }
        case PROP_CAN_DELETE:
            {
                if (node instanceof DBNDataSource || node instanceof DBNLocalFolder) {
                    return true;
                }
                if (DBNUtils.isReadOnly(node)) {
                    return false;
                }
                if (node instanceof DBSWrapper) {
                    DBSObject object = ((DBSWrapper) node).getObject();
                    if (object == null || DBUtils.isReadOnly(object) || !(node.getParentNode() instanceof DBNContainer)) {
                        return false;
                    }
                    DBEObjectMaker objectMaker = getObjectManager(object.getClass(), DBEObjectMaker.class);
                    return objectMaker != null && objectMaker.canDeleteObject(object);
                } else if (node instanceof DBNResource) {
                    if ((((DBNResource) node).getFeatures() & DBPResourceHandler.FEATURE_DELETE) != 0) {
                        return true;
                    }
                }
                break;
            }
        case PROP_CAN_RENAME:
            {
                if (node.supportsRename()) {
                    return true;
                }
                if (node instanceof DBNDatabaseNode) {
                    if (DBNUtils.isReadOnly(node)) {
                        return false;
                    }
                    DBSObject object = ((DBNDatabaseNode) node).getObject();
                    return object != null && !DBUtils.isReadOnly(object) && object.isPersisted() && node.getParentNode() instanceof DBNContainer && getObjectManager(object.getClass(), DBEObjectRenamer.class) != null;
                }
                break;
            }
        case PROP_CAN_MOVE_UP:
        case PROP_CAN_MOVE_DOWN:
            {
                if (node instanceof DBNDatabaseNode) {
                    if (DBNUtils.isReadOnly(node)) {
                        return false;
                    }
                    DBSObject object = ((DBNDatabaseNode) node).getObject();
                    if (object instanceof DBPOrderedObject) {
                        DBEObjectReorderer objectReorderer = getObjectManager(object.getClass(), DBEObjectReorderer.class);
                        if (objectReorderer != null) {
                            final int position = ((DBPOrderedObject) object).getOrdinalPosition();
                            if (property.equals(PROP_CAN_MOVE_UP)) {
                                return position > objectReorderer.getMinimumOrdinalPosition(object);
                            }
                            return position < objectReorderer.getMaximumOrdinalPosition(object);
                        }
                    }
                }
                break;
            }
        case PROP_CAN_FILTER:
            {
                if (node instanceof DBNDatabaseItem) {
                    node = node.getParentNode();
                }
                if (node instanceof DBNDatabaseFolder && ((DBNDatabaseFolder) node).getItemsMeta() != null) {
                    return true;
                }
                break;
            }
        case PROP_CAN_FILTER_OBJECT:
            {
                if (node.getParentNode() instanceof DBNDatabaseFolder && ((DBNDatabaseFolder) node.getParentNode()).getItemsMeta() != null) {
                    return true;
                }
                break;
            }
        case PROP_HAS_FILTER:
            {
                if (node instanceof DBNDatabaseItem) {
                    node = node.getParentNode();
                }
                if (node instanceof DBNDatabaseFolder && ((DBNDatabaseFolder) node).getItemsMeta() != null) {
                    DBSObjectFilter filter = ((DBNDatabaseFolder) node).getNodeFilter(((DBNDatabaseFolder) node).getItemsMeta(), true);
                    if ("defined".equals(expectedValue)) {
                        return filter != null && !filter.isEmpty();
                    } else {
                        return filter != null && !filter.isNotApplicable();
                    }
                }
                break;
            }
    }
    return false;
}
Also used : DBSObjectFilter(org.jkiss.dbeaver.model.struct.DBSObjectFilter) DBSWrapper(org.jkiss.dbeaver.model.struct.DBSWrapper) DBPOrderedObject(org.jkiss.dbeaver.model.DBPOrderedObject) DBEObjectRenamer(org.jkiss.dbeaver.model.edit.DBEObjectRenamer) DBEObjectMaker(org.jkiss.dbeaver.model.edit.DBEObjectMaker) DBSObject(org.jkiss.dbeaver.model.struct.DBSObject) DBEObjectReorderer(org.jkiss.dbeaver.model.edit.DBEObjectReorderer) Display(org.eclipse.swt.widgets.Display)

Aggregations

DBSObjectFilter (org.jkiss.dbeaver.model.struct.DBSObjectFilter)44 DBNDatabaseFolder (org.jkiss.dbeaver.model.navigator.DBNDatabaseFolder)12 DBXTreeItem (org.jkiss.dbeaver.model.navigator.meta.DBXTreeItem)12 DBException (org.jkiss.dbeaver.DBException)10 ArrayList (java.util.ArrayList)9 ISelection (org.eclipse.jface.viewers.ISelection)8 DBNDatabaseItem (org.jkiss.dbeaver.model.navigator.DBNDatabaseItem)8 DBNNode (org.jkiss.dbeaver.model.navigator.DBNNode)8 DBSObject (org.jkiss.dbeaver.model.struct.DBSObject)8 DBPDataSourceRegistry (org.jkiss.dbeaver.model.app.DBPDataSourceRegistry)7 JDBCResultSet (org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet)6 List (java.util.List)5 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)5 SelectionEvent (org.eclipse.swt.events.SelectionEvent)5 GridData (org.eclipse.swt.layout.GridData)5 TypeToken (com.google.gson.reflect.TypeToken)4 SQLException (java.sql.SQLException)4 NotNull (org.jkiss.code.NotNull)4 Nullable (org.jkiss.code.Nullable)4 DBPDataSource (org.jkiss.dbeaver.model.DBPDataSource)4