diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java index a3aacea2c453ed6762b8921b7386c1c09cc740c8..041e1385ac8e9de4058e30aeffb7dbddc6b47f53 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreMessages.java @@ -432,6 +432,7 @@ public class CoreMessages extends NLS { public static String pref_page_connection_types_label_delete_connection_type; public static String pref_page_connection_types_label_delete_connection_type_description; public static String pref_page_connection_types_group_settings; + public static String pref_page_connection_types_label_id; public static String pref_page_connection_types_label_name; public static String pref_page_connection_types_label_description; public static String pref_page_connection_types_label_color; diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties index d5b402588e5ee3bbe40942ee1d260ad35b173316..be95d7f1cf72424515f594afa6f4706b8425ce88 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources.properties @@ -416,6 +416,7 @@ pref_page_connection_types_label_table_column_description = Description pref_page_connection_types_label_delete_connection_type = Delete connection type pref_page_connection_types_label_delete_connection_type_description = Are you sure you want to delete connection type "{0}" ?\n All connections of this type will be reset to default type ({1}) pref_page_connection_types_group_settings = Settings +pref_page_connection_types_label_id=Identifier pref_page_connection_types_label_name = Name pref_page_connection_types_label_description = Description pref_page_connection_types_label_color = Color diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_ru.properties b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_ru.properties index 9ffd07378381fca90ebf07c03d2c678007c5ddeb..0e696112e29e2b406cd8cbc5c683d53ab1281fe8 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_ru.properties +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreResources_ru.properties @@ -420,6 +420,7 @@ pref_page_connection_types_label_table_column_description = \u041E\u043F\u0438\u pref_page_connection_types_label_delete_connection_type = \u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u0438\u043F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F pref_page_connection_types_label_delete_connection_type_description = \u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u0438\u043F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F "{0}" ?\n\u0412\u0441\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0442\u0438\u043F\u0430 \u0431\u0443\u0434\u0443\u0442 \u0441\u0431\u0440\u043E\u0448\u0435\u043D\u044B \u043D\u0430 \u0442\u0438\u043F \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E ({1}) pref_page_connection_types_group_settings = \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 +pref_page_connection_types_label_id=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 pref_page_connection_types_label_name = \u0418\u043C\u044F pref_page_connection_types_label_description = \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 pref_page_connection_types_label_color = \u0426\u0432\u0435\u0442 diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnectionTypes.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnectionTypes.java index 915025f16b561c4c22090272cf093d8660df183f..f4d8c7e5296734a29a2ec52d3aea9f297b79d088 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnectionTypes.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnectionTypes.java @@ -58,6 +58,7 @@ public class PrefPageConnectionTypes extends AbstractPrefPage implements IWorkbe public static final String PAGE_ID = "org.jkiss.dbeaver.preferences.connectionTypes"; //$NON-NLS-1$ private Table typeTable; + private Text typeId; private Text typeName; private Text typeDescription; private ColorSelector colorPicker; @@ -120,7 +121,7 @@ public class PrefPageConnectionTypes extends AbstractPrefPage implements IWorkbe } } DBPConnectionType newType = new DBPConnectionType( - SecurityUtils.generateUniqueId(), + name.toLowerCase(), name, "255,255,255", "New type", @@ -158,11 +159,15 @@ public class PrefPageConnectionTypes extends AbstractPrefPage implements IWorkbe Group groupSettings = UIUtils.createControlGroup(composite, CoreMessages.pref_page_connection_types_group_settings, 2, GridData.VERTICAL_ALIGN_BEGINNING, 300); groupSettings.setLayoutData(new GridData(GridData.FILL_BOTH)); + typeId = UIUtils.createLabelText(groupSettings, CoreMessages.pref_page_connection_types_label_id, null); + typeId.addModifyListener(e -> { + getSelectedType().setId(typeId.getText()); + updateTableInfo(); + }); typeName = UIUtils.createLabelText(groupSettings, CoreMessages.pref_page_connection_types_label_name, null); typeName.addModifyListener(e -> { getSelectedType().setName(typeName.getText()); updateTableInfo(); - }); typeDescription = UIUtils.createLabelText(groupSettings, CoreMessages.pref_page_connection_types_label_description, null); typeDescription.addModifyListener(e -> { @@ -274,6 +279,8 @@ public class PrefPageConnectionTypes extends AbstractPrefPage implements IWorkbe colorPicker.setColorValue(colorPicker.getButton().getBackground().getRGB()); } + typeId.setText(connectionType.getId()); + typeId.setEnabled(changedInfo.get(connectionType) == connectionType); typeName.setText(connectionType.getName()); typeDescription.setText(connectionType.getDescription()); autocommitCheck.setSelection(connectionType.isAutocommit()); @@ -347,6 +354,8 @@ public class PrefPageConnectionTypes extends AbstractPrefPage implements IWorkbe @Override public boolean performOk() { + typeId.setEnabled(false); + DataSourceProviderRegistry registry = DataSourceProviderRegistry.getInstance(); List toRemove = new ArrayList<>(); for (DBPConnectionType type : registry.getConnectionTypes()) { @@ -363,15 +372,27 @@ public class PrefPageConnectionTypes extends AbstractPrefPage implements IWorkbe changedSet.add(connectionType); } - for (DBPConnectionType changed : changedInfo.keySet()) { + for (Map.Entry entry : changedInfo.entrySet()) { boolean hasChanges = false; - DBPConnectionType source = changedInfo.get(changed); + DBPConnectionType changed = entry.getKey(); + DBPConnectionType source = entry.getValue(); if (source == changed) { // New type + if (CommonUtils.isEmpty(changed.getId())) { + changed.setId(SecurityUtils.generateUniqueId()); + } + for (DBPConnectionType type : changedInfo.keySet()) { + if (type != changed && type.getId().equals(changed.getId())) { + changed.setId(SecurityUtils.generateUniqueId()); + break; + } + } + entry.setValue(new DBPConnectionType(source)); registry.addConnectionType(changed); hasChanges = true; } else if (!source.equals(changed)) { // Changed type + source.setId(changed.getId()); source.setName(changed.getName()); source.setDescription(changed.getDescription()); source.setAutocommit(changed.isAutocommit()); diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java index 0ef8cbfe7e6b025161548020e1573051fbe89361..664ba730fe4c18a77047c05ffd119c85e87e2b75 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConnections.java @@ -49,6 +49,7 @@ public class PrefPageConnections extends TargetPrefPage DBPConnectionConfiguration.VARIABLE_USER, DBPConnectionConfiguration.VARIABLE_PASSWORD, DBPConnectionConfiguration.VARIABLE_URL, + DBPConnectionConfiguration.VARIABLE_CONN_TYPE, DBConstants.VAR_CONTEXT_NAME, DBConstants.VAR_CONTEXT_ID, diff --git a/plugins/org.jkiss.dbeaver.data.transfer.ui/src/org/jkiss/dbeaver/tools/transfer/ui/pages/stream/StreamConsumerPageOutput.java b/plugins/org.jkiss.dbeaver.data.transfer.ui/src/org/jkiss/dbeaver/tools/transfer/ui/pages/stream/StreamConsumerPageOutput.java index 8e798032469f0161823f579c1524171b6adf7b6d..970973ca1f2dd6888cfb8ac99692f87746b2268c 100644 --- a/plugins/org.jkiss.dbeaver.data.transfer.ui/src/org/jkiss/dbeaver/tools/transfer/ui/pages/stream/StreamConsumerPageOutput.java +++ b/plugins/org.jkiss.dbeaver.data.transfer.ui/src/org/jkiss/dbeaver/tools/transfer/ui/pages/stream/StreamConsumerPageOutput.java @@ -102,7 +102,8 @@ public class StreamConsumerPageOutput extends ActiveWizardPage { settings.setOutputFilePattern(fileNameText.getText()); @@ -119,6 +120,7 @@ public class StreamConsumerPageOutput extends ActiveWizardPage