提交 6896402b 编写于 作者: S Serge Rider 提交者: GitHub

Merge pull request #3594 from dbeaver/3218-Mock-Data-i10n

#3218 Mock Data extension internationalization

Former-commit-id: a0b49841
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.jkiss.dbeaver.ext.mockdata.nls</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: mockdata extension NLS
Bundle-SymbolicName: org.jkiss.dbeaver.ext.mockdata.nls
Bundle-Version: 0.0.1
Bundle-Release-Date: 20180606
Fragment-Host: org.jkiss.dbeaver.ext.mockdata
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-Vendor: JKISS
#Properties file for org.jkiss.dbeaver.ext.mockdata
Bundle-Vendor = JKISS
Bundle-Name = DBeaver Mock Data Support
mockdata.extension.name=\u041C\u0430\u0441\u0442\u0435\u0440 \u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0414\u0430\u043D\u043D\u044B\u0445
command.mockdata.name=\u0413\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0435 \u0414\u0430\u043D\u043D\u044B\u0435
command.mockdata.description=\u0413\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440 \u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0414\u0430\u043D\u043D\u044B\u0445
generator.numeric.constant.label=\u0427\u0438\u0441\u043B\u043E
generator.numeric.constant.description=\u0427\u0438\u0441\u043B\u043E\u0432\u0430\u044F \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u0430
generator.numeric.constant.prop.value.label=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435
generator.numeric.random.label=\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0435 \u0427\u0438\u0441\u043B\u043E
generator.numeric.random.description=\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E
generator.numeric.sequence.label=\u0427\u0438\u0441\u043B\u043E\u0432\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C
generator.numeric.sequence.description=\u041F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0447\u0438\u0441\u0435\u043B \u0441 \u0437\u0430\u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u0441\u0442\u0430\u0440\u0442\u043E\u043C, \u0448\u0430\u0433\u043E\u043C \u0438 \u043F\u043E\u0440\u044F\u0434\u043A\u043E\u043C
generator.numeric.sequence.property.start.label=\u0421\u0442\u0430\u0440\u0442
generator.numeric.sequence.property.start.description=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435
generator.numeric.step.property.start.label=\u0428\u0430\u0433
generator.numeric.step.property.start.description=\u0428\u0430\u0433 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F
generator.numeric.sequence.property.reverse.label=\u041E\u0431\u0440\u0430\u0442\u043D\u044B\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A
generator.numeric.sequence.property.reverse.description=\u041E\u0431\u0440\u0430\u0442\u043D\u044B\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438
generator.boolean.constant.label=\u041B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0439
generator.boolean.constant.description=\u041B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u0430
generator.boolean.constant.property.value.label=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435
generator.boolean.sequence.label=\u041B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C
generator.boolean.sequence.description=\u041D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439
generator.boolean.sequence.property.initial.label=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435
generator.boolean.sequence.property.order.label=\u041F\u043E\u0440\u044F\u0434\u043E\u043A
generator.boolean.sequence.property.order.value.initial=\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u044B\u0439
generator.boolean.sequence.property.order.validValues=\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u044B\u0439,\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439
generator.date.constant.label=\u0414\u0430\u0442\u0430
generator.date.constant.description=\u0414\u0430\u0442\u0430-\u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u0430
generator.date.constant.property.value.label=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435
generator.date.constant.property.value.description=\u0424\u043E\u0440\u043C\u0430\u0442 \u0434\u0430\u0442\u044B: \u0414\u0414-\u041C\u041C-\u0413\u0413\u0413\u0413
generator.date.random.label=\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u0430\u044F \u0434\u0430\u0442\u0430
generator.date.random.description=\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u0438\u0437 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430
generator.date.random.property.start.label=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u0442\u0430
generator.date.random.property.start.description=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430 (\u0414\u0414-\u041C\u041C-\u0413\u0413\u0413\u0413)
generator.date.random.property.end.label=\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0434\u0430\u0442\u0430
generator.date.random.property.end.description=\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0434\u0430\u0442\u0430 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0430 (\u0414\u0414-\u041C\u041C-\u0413\u0413\u0413\u0413)
generator.date.sequence.label=\u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C
generator.date.sequence.description=\u041D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043C\u0430\u044F \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0434\u0430\u0442
generator.date.sequence.property.start.label=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u0430\u0442\u0430
generator.date.sequence.property.start.description=\u0421\u0442\u0430\u0440\u0442\u043E\u0432\u0430\u044F \u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 (\u0414\u0414-\u041C\u041C-\u0413\u0413\u0413\u0413)
generator.date.sequence.property.step.label=\u0428\u0430\u0433
generator.date.sequence.property.step.description=\u0428\u0430\u0433 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F (\u0434\u043D\u0435\u0439)
generator.date.sequence.property.reverse.label=\u041E\u0431\u0440\u0430\u0442\u043D\u044B\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A
generator.date.sequence.property.reverse.description=\u041E\u0431\u0440\u0430\u0442\u043D\u044B\u0439 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438
generator.fk.label=\u0412\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447
generator.fk.description=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0438\u0437 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u044B (\u043F\u043E \u043A\u043B\u044E\u0447\u0443)
generator.string.text.label=\u0422\u0435\u043A\u0441\u0442
generator.string.text.description=\u041F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0438 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0439 \u0434\u043B\u0438\u043D\u044B \u0438\u0437 \u0448\u0430\u0431\u043B\u043E\u043D\u0430
generator.string.text.property.template.label=\u0428\u0430\u0431\u043B\u043E\u043D
generator.string.text.property.template.description=\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A
generator.string.text.property.min.label=\u041C\u0438\u043D \u0434\u043B\u0438\u043D\u0430
generator.string.text.property.min.description=\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u043B\u0438\u043D\u0430 \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0438
generator.string.text.property.max.label=\u041C\u0430\u043A\u0441 \u0434\u043B\u0438\u043D\u0430
generator.string.text.property.max.description=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0434\u043B\u0438\u043D\u0430 \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0438 (0 \u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442 \u0434\u043B\u0438\u043D\u0443 \u043A\u043E\u043B\u043E\u043D\u043A\u0438)
generator.string.uuid.label=UUID
generator.string.uuid.description=\u0421\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F UUID
generator.zero.label=NULL
generator.zero.description=NULL-\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435
source.. = src/
output.. = target/classes/
bin.includes = .,\
META-INF/,\
OSGI-INF/
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jkiss.dbeaver</groupId>
<artifactId>dbeaver</artifactId>
<version>1.0.0</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.jkiss.dbeaver.ext.mockdata.nls</artifactId>
<version>1.0.17</version>
<packaging>eclipse-plugin</packaging>
</project>
tools_mockdata_message_title=\u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0435 \u0414\u0430\u043D\u043D\u044B\u0435
tools_mockdata_error_notconnected=\u041D\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u043A \u0431\u0430\u0437\u0435 \u0434\u0430\u043D\u043D\u044B\u0445
tools_mockdata_error_tableonly=\u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
tools_mockdata_prop_nulls_label=% NULL-\u043E\u0432
tools_mockdata_prop_nulls_description=\u0414\u043E\u043B\u044F NULL-\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 (%)
tools_mockdata_prop_lowercase_label=\u041D\u0438\u0436\u043D\u0438\u0439 \u0420\u0435\u0433\u0438\u0441\u0442\u0440
tools_mockdata_prop_uppercase_label=\u0412\u0435\u0440\u0445\u043D\u0438\u0439 \u0420\u0435\u0433\u0438\u0441\u0442\u0440
tools_mockdata_generator_boolean_sequence_prop_order_value_constant=\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u044B\u0439
tools_mockdata_generator_boolean_sequence_prop_order_value_alternately=\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0439
tools_mockdata_wizard_title=\u041C\u0430\u0441\u0442\u0435\u0440 \u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0414\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_page_name=\u0413\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440 \u0422\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0414\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_message_process_completed="{0}" \u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D
tools_mockdata_wizard_page_settings_group_settings=\u041E\u0431\u0449\u0438\u0435
tools_mockdata_wizard_page_settings_page_name=\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0433\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u0430 \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_page_settings_page_description=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432 \u0433\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u0430 \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_page_settings_checkbox_remove_old_data=\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0430\u0440\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435
tools_mockdata_wizard_page_settings_confirm_delete_old_data_message=\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 \u0441\u0442\u0430\u0440\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435?
tools_mockdata_wizard_page_settings_combo_rows=\u0421\u0442\u0440\u043E\u043A
tools_mockdata_wizard_page_settings_text_entity=\u0422\u0430\u0431\u043B\u0438\u0446\u0430
tools_mockdata_wizard_task_generate_data=\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_task_insert_data=\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u0434\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_page_settings_group_generators=\u0413\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u044B
tools_mockdata_wizard_page_settings_button_autoassign=\u041D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C \u0433\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u044B
tools_mockdata_wizard_page_settings_button_autoassign_confirm=\u0413\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0434\u043B\u044F \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u0431\u0443\u0434\u0443\u0442 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438. \u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C?
tools_mockdata_wizard_page_settings_generatorselector_attribute=\u041A\u043E\u043B\u043E\u043D\u043A\u0430
tools_mockdata_wizard_page_settings_generatorselector_generator=\u0413\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440
tools_mockdata_wizard_page_settings_button_reset=\u0421\u0431\u0440\u043E\u0441
tools_mockdata_wizard_page_settings_button_info_notfound=\u0413\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0434\u043B\u044F \u043F\u043E\u0434\u0441\u0432\u0435\u0447\u0435\u043D\u043D\u044B\u0445 \u043A\u0440\u0430\u0441\u043D\u044B\u043C \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B. \u0414\u0430\u043D\u043D\u044B\u0435 \u0434\u043B\u044F \u043D\u0438\u0445 \u043D\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B.
tools_mockdata_wizard_page_settings_button_info_noattributes=\u0412 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435\u0442 \u043A\u043E\u043B\u043E\u043D\u043E\u043A
tools_mockdata_wizard_page_settings_notfound=\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D
tools_mockdata_wizard_negative_numeric_error=\u0412\u0441\u0435 \u0447\u0438\u0441\u043B\u043E\u0432\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u043C\u0438.
tools_mockdata_wizard_log_removing_from=\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0430\u0440\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437 "{0}".\n
tools_mockdata_wizard_log_removing_error= \u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u0434\u0430\u043D\u043D\u044B\u0445:
tools_mockdata_wizard_log_rows_updated= \u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0441\u0442\u0440\u043E\u043A: {0}\n
tools_mockdata_wizard_log_duration= \u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C: {0}ms\n\n
tools_mockdata_wizard_log_cleaning=\u041E\u0447\u0438\u0441\u0442\u043A\u0430 \u0441\u0442\u0430\u0440\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445
tools_mockdata_wizard_log_not_removed=\u0421\u0442\u0430\u0440\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u044B.
tools_mockdata_wizard_log_inserting_into=\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0432 "{0}".\n
tools_mockdata_wizard_log_inserted_rows={0} \u0441\u0442\u0440\u043E\u043A \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043E
tools_mockdata_wizard_log_error_inserting= \u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445: {0}
tools_mockdata_wizard_log_error_generating= \u041E\u0448\u0438\u0431\u043A\u0430 \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043E\u0432\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445: {0}
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.jkiss.dbeaver.ext.mockdata.nls.feature</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.pde.FeatureBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.FeatureNature</nature>
</natures>
</projectDescription>
featureName=DBeaver MockData Extension NL Support
providerName=JKISS
description=DBeaver MockData Extension national language support pack.
copyright=(c) JKISS, 2016-2017
licenseURL=../../docs/licenses/dbeaver_license.txt
license=\
Apache License\n\
Version 2.0, January 2004\n\
http://www.apache.org/licenses/\n\
\n\
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\
\n\
1. Definitions.\n\
\n\
"License" shall mean the terms and conditions for use, reproduction,\n\
and distribution as defined by Sections 1 through 9 of this document.\n\
\n\
"Licensor" shall mean the copyright owner or entity authorized by\n\
the copyright owner that is granting the License.\n\
\n\
"Legal Entity" shall mean the union of the acting entity and all\n\
other entities that control, are controlled by, or are under common\n\
control with that entity. For the purposes of this definition,\n\
"control" means (i) the power, direct or indirect, to cause the\n\
direction or management of such entity, whether by contract or\n\
otherwise, or (ii) ownership of fifty percent (50%) or more of the\n\
outstanding shares, or (iii) beneficial ownership of such entity.\n\
\n\
"You" (or "Your") shall mean an individual or Legal Entity\n\
exercising permissions granted by this License.\n\
\n\
"Source" form shall mean the preferred form for making modifications,\n\
including but not limited to software source code, documentation\n\
source, and configuration files.\n\
\n\
"Object" form shall mean any form resulting from mechanical\n\
transformation or translation of a Source form, including but\n\
not limited to compiled object code, generated documentation,\n\
and conversions to other media types.\n\
\n\
"Work" shall mean the work of authorship, whether in Source or\n\
Object form, made available under the License, as indicated by a\n\
copyright notice that is included in or attached to the work\n\
(an example is provided in the Appendix below).\n\
\n\
"Derivative Works" shall mean any work, whether in Source or Object\n\
form, that is based on (or derived from) the Work and for which the\n\
editorial revisions, annotations, elaborations, or other modifications\n\
represent, as a whole, an original work of authorship. For the purposes\n\
of this License, Derivative Works shall not include works that remain\n\
separable from, or merely link (or bind by name) to the interfaces of,\n\
the Work and Derivative Works thereof.\n\
\n\
"Contribution" shall mean any work of authorship, including\n\
the original version of the Work and any modifications or additions\n\
to that Work or Derivative Works thereof, that is intentionally\n\
submitted to Licensor for inclusion in the Work by the copyright owner\n\
or by an individual or Legal Entity authorized to submit on behalf of\n\
the copyright owner. For the purposes of this definition, "submitted"\n\
means any form of electronic, verbal, or written communication sent\n\
to the Licensor or its representatives, including but not limited to\n\
communication on electronic mailing lists, source code control systems,\n\
and issue tracking systems that are managed by, or on behalf of, the\n\
Licensor for the purpose of discussing and improving the Work, but\n\
excluding communication that is conspicuously marked or otherwise\n\
designated in writing by the copyright owner as "Not a Contribution."\n\
\n\
"Contributor" shall mean Licensor and any individual or Legal Entity\n\
on behalf of whom a Contribution has been received by Licensor and\n\
subsequently incorporated within the Work.\n\
\n\
2. Grant of Copyright License. Subject to the terms and conditions of\n\
this License, each Contributor hereby grants to You a perpetual,\n\
worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n\
copyright license to reproduce, prepare Derivative Works of,\n\
publicly display, publicly perform, sublicense, and distribute the\n\
Work and such Derivative Works in Source or Object form.\n\
\n\
3. Grant of Patent License. Subject to the terms and conditions of\n\
this License, each Contributor hereby grants to You a perpetual,\n\
worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n\
(except as stated in this section) patent license to make, have made,\n\
use, offer to sell, sell, import, and otherwise transfer the Work,\n\
where such license applies only to those patent claims licensable\n\
by such Contributor that are necessarily infringed by their\n\
Contribution(s) alone or by combination of their Contribution(s)\n\
with the Work to which such Contribution(s) was submitted. If You\n\
institute patent litigation against any entity (including a\n\
cross-claim or counterclaim in a lawsuit) alleging that the Work\n\
or a Contribution incorporated within the Work constitutes direct\n\
or contributory patent infringement, then any patent licenses\n\
granted to You under this License for that Work shall terminate\n\
as of the date such litigation is filed.\n\
\n\
4. Redistribution. You may reproduce and distribute copies of the\n\
Work or Derivative Works thereof in any medium, with or without\n\
modifications, and in Source or Object form, provided that You\n\
meet the following conditions:\n\
\n\
(a) You must give any other recipients of the Work or\n\
Derivative Works a copy of this License; and\n\
\n\
(b) You must cause any modified files to carry prominent notices\n\
stating that You changed the files; and\n\
\n\
(c) You must retain, in the Source form of any Derivative Works\n\
that You distribute, all copyright, patent, trademark, and\n\
attribution notices from the Source form of the Work,\n\
excluding those notices that do not pertain to any part of\n\
the Derivative Works; and\n\
\n\
(d) If the Work includes a "NOTICE" text file as part of its\n\
distribution, then any Derivative Works that You distribute must\n\
include a readable copy of the attribution notices contained\n\
within such NOTICE file, excluding those notices that do not\n\
pertain to any part of the Derivative Works, in at least one\n\
of the following places: within a NOTICE text file distributed\n\
as part of the Derivative Works; within the Source form or\n\
documentation, if provided along with the Derivative Works; or,\n\
within a display generated by the Derivative Works, if and\n\
wherever such third-party notices normally appear. The contents\n\
of the NOTICE file are for informational purposes only and\n\
do not modify the License. You may add Your own attribution\n\
notices within Derivative Works that You distribute, alongside\n\
or as an addendum to the NOTICE text from the Work, provided\n\
that such additional attribution notices cannot be construed\n\
as modifying the License.\n\
\n\
You may add Your own copyright statement to Your modifications and\n\
may provide additional or different license terms and conditions\n\
for use, reproduction, or distribution of Your modifications, or\n\
for any such Derivative Works as a whole, provided Your use,\n\
reproduction, and distribution of the Work otherwise complies with\n\
the conditions stated in this License.\n\
\n\
5. Submission of Contributions. Unless You explicitly state otherwise,\n\
any Contribution intentionally submitted for inclusion in the Work\n\
by You to the Licensor shall be under the terms and conditions of\n\
this License, without any additional terms or conditions.\n\
Notwithstanding the above, nothing herein shall supersede or modify\n\
the terms of any separate license agreement you may have executed\n\
with Licensor regarding such Contributions.\n\
\n\
6. Trademarks. This License does not grant permission to use the trade\n\
names, trademarks, service marks, or product names of the Licensor,\n\
except as required for reasonable and customary use in describing the\n\
origin of the Work and reproducing the content of the NOTICE file.\n\
\n\
7. Disclaimer of Warranty. Unless required by applicable law or\n\
agreed to in writing, Licensor provides the Work (and each\n\
Contributor provides its Contributions) on an "AS IS" BASIS,\n\
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n\
implied, including, without limitation, any warranties or conditions\n\
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n\
PARTICULAR PURPOSE. You are solely responsible for determining the\n\
appropriateness of using or redistributing the Work and assume any\n\
risks associated with Your exercise of permissions under this License.\n\
\n\
8. Limitation of Liability. In no event and under no legal theory,\n\
whether in tort (including negligence), contract, or otherwise,\n\
unless required by applicable law (such as deliberate and grossly\n\
negligent acts) or agreed to in writing, shall any Contributor be\n\
liable to You for damages, including any direct, indirect, special,\n\
incidental, or consequential damages of any character arising as a\n\
result of this License or out of the use or inability to use the\n\
Work (including but not limited to damages for loss of goodwill,\n\
work stoppage, computer failure or malfunction, or any and all\n\
other commercial damages or losses), even if such Contributor\n\
has been advised of the possibility of such damages.\n\
\n\
9. Accepting Warranty or Additional Liability. While redistributing\n\
the Work or Derivative Works thereof, You may choose to offer,\n\
and charge a fee for, acceptance of support, warranty, indemnity,\n\
or other liability obligations and/or rights consistent with this\n\
License. However, in accepting such obligations, You may act only\n\
on Your own behalf and on Your sole responsibility, not on behalf\n\
of any other Contributor, and only if You agree to indemnify,\n\
defend, and hold each Contributor harmless for any liability\n\
incurred by, or claims asserted against, such Contributor by reason\n\
of your accepting any such warranty or additional liability.\n\
\n\
END OF TERMS AND CONDITIONS\n\
\n\
APPENDIX: How to apply the Apache License to your work.\n\
\n\
To apply the Apache License to your work, attach the following\n\
boilerplate notice, with the fields enclosed by brackets "[]"\n\
replaced with your own identifying information. (Don't include\n\
the brackets!) The text should be enclosed in the appropriate\n\
comment syntax for the file format. We also recommend that a\n\
file or class name and description of purpose be included on the\n\
same "printed page" as the copyright notice for easier\n\
identification within third-party archives.\n\
\n\
Copyright [yyyy] [name of copyright owner]\n\
\n\
Licensed under the Apache License, Version 2.0 (the "License");\n\
you may not use this file except in compliance with the License.\n\
You may obtain a copy of the License at\n\
\n\
http://www.apache.org/licenses/LICENSE-2.0\n\
\n\
Unless required by applicable law or agreed to in writing, software\n\
distributed under the License is distributed on an "AS IS" BASIS,\n\
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\
See the License for the specific language governing permissions and\n\
limitations under the License.\n\
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.jkiss.dbeaver.ext.mockdata.nls.feature"
label="%featureName"
version="1.0.17"
provider-name="%providerName">
<description>
%description
</description>
<copyright>
%copyright
</copyright>
<license url="%licenseURL">
%license
</license>
<url>
<update label="DBeaver Universal Database Manager" url="https://dbeaver.io/"/>
</url>
<plugin
id="org.jkiss.dbeaver.ext.mockdata.nls"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
</feature>
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jkiss.dbeaver</groupId>
<artifactId>dbeaver</artifactId>
<version>1.0.0</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.jkiss.dbeaver.ext.mockdata.nls.feature</artifactId>
<version>1.0.17</version>
<packaging>eclipse-feature</packaging>
</project>
#Properties file for org.jkiss.dbeaver.ext.mockdata #Properties file for org.jkiss.dbeaver.ext.mockdata
Bundle-Vendor = JKISS Bundle-Vendor = JKISS
Bundle-Name = DBeaver Mock Data Support Bundle-Name = DBeaver Mock Data Support
\ No newline at end of file
mockdata.extension.name=Mock data generator
command.mockdata.name=Generate Mock Data
command.mockdata.description=Mock Data Generator
generator.numeric.constant.label=Numeric Constant
generator.numeric.constant.description=Constant numeric value
generator.numeric.constant.prop.value.label=Value
generator.numeric.random.label=Numeric Random
generator.numeric.random.description=Random numeric value
generator.numeric.sequence.label=Numeric Sequence
generator.numeric.sequence.description=Sequence of numbers with adjustable start, step and order
generator.numeric.sequence.property.start.label=Start value
generator.numeric.sequence.property.start.description=Initial sequence value
generator.numeric.sequence.property.step.label=Step
generator.numeric.sequence.property.step.description=Sequence increment step
generator.numeric.sequence.property.reverse.label=Reverse order
generator.numeric.sequence.property.reverse.description=Reverse sequence order
generator.boolean.constant.label=Boolean Constant
generator.boolean.constant.description=Constant boolean value
generator.boolean.constant.property.value.label=Value
generator.boolean.sequence.label=Boolean Sequence
generator.boolean.sequence.description=Adjustable sequence of boolean values
generator.boolean.sequence.property.initial.label=Initial
generator.boolean.sequence.property.order.label=Order
generator.boolean.sequence.property.order.value.initial=Constant
generator.boolean.sequence.property.order.validValues=Constant,Alternately
generator.date.constant.label=Date Constant
generator.date.constant.description=Date constant value
generator.date.constant.property.value.label=Value
generator.date.constant.property.value.description=Date format: DD-MM-YYYY
generator.date.random.label=Date Random
generator.date.random.description=Random date value from range
generator.date.random.property.start.label=Start date
generator.date.random.property.start.description=Date range start (DD-MM-YYYY)
generator.date.random.property.end.label=End date
generator.date.random.property.end.description=Date range end (DD-MM-YYYY)
generator.date.sequence.label=Date Sequence
generator.date.sequence.description=Adjustable sequence of dates
generator.date.sequence.property.start.label=Start date
generator.date.sequence.property.start.description=Sequence start date (DD-MM-YYYY)
generator.date.sequence.property.step.label=Step
generator.date.sequence.property.step.description=Sequence increment step (days)
generator.date.sequence.property.reverse.label=Reverse order
generator.date.sequence.property.reverse.description=Reverse sequence order
generator.fk.label=FK
generator.fk.description=Value from associated table (FK)
generator.string.text.label=Text
generator.string.text.description=Random length substrings from the template text
generator.string.text.property.template.label=Template
generator.string.text.property.template.description=Source of substrings
generator.string.text.property.template.value=Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
generator.string.text.property.min.label=Min Length
generator.string.text.property.min.description=Minimum substring length
generator.string.text.property.max.label=Max Length
generator.string.text.property.max.description=Maximum length (0 means the column length)
generator.string.uuid.label=UUID
generator.string.uuid.description=UUID random value
generator.zero.label=NULL
generator.zero.description=NULL value
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<plugin> <plugin>
<extension-point id="org.jkiss.dbeaver.mockGenerator" name="Mock data generator" schema="schema/org.jkiss.dbeaver.mockGenerator.exsd"/> <extension-point id="org.jkiss.dbeaver.mockGenerator" name="%mockdata.extension.name" schema="schema/org.jkiss.dbeaver.mockGenerator.exsd"/>
<extension point="org.eclipse.ui.handlers"> <extension point="org.eclipse.ui.handlers">
<handler commandId="org.jkiss.dbeaver.ext.mockdata.resultset.mockdata" class="org.jkiss.dbeaver.ext.mockdata.handlers.ResultSetMockDataHandler"> <handler commandId="org.jkiss.dbeaver.ext.mockdata.resultset.mockdata" class="org.jkiss.dbeaver.ext.mockdata.handlers.ResultSetMockDataHandler">
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
class="org.jkiss.dbeaver.ext.mockdata.MockDataGenerateTool" class="org.jkiss.dbeaver.ext.mockdata.MockDataGenerateTool"
description="Mock Data" description="Mock Data"
id="org.jkiss.dbeaver.ext.mockdata.MockDataGenerateTool" id="org.jkiss.dbeaver.ext.mockdata.MockDataGenerateTool"
label="Generate Mock Data" label="%command.mockdata.name"
singleton="false"> singleton="false">
<objectType name="org.jkiss.dbeaver.model.struct.DBSDataManipulator" forceCheck="true"/> <objectType name="org.jkiss.dbeaver.model.struct.DBSDataManipulator" forceCheck="true"/>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</extension> </extension>
<extension point="org.eclipse.ui.commands"> <extension point="org.eclipse.ui.commands">
<command id="org.jkiss.dbeaver.ext.mockdata.resultset.mockdata" name="Generate Mock Data" description="Mock Data Generator" categoryId="org.jkiss.dbeaver.core.rs"/> <command id="org.jkiss.dbeaver.ext.mockdata.resultset.mockdata" name="%command.mockdata.name" description="%command.mockdata.description" categoryId="org.jkiss.dbeaver.core.rs"/>
</extension> </extension>
<extension point="org.eclipse.ui.commandImages"> <extension point="org.eclipse.ui.commandImages">
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<menuContribution allPopups="false" locationURI="popup:org.eclipse.ui.popup.any?after=results_export"> <menuContribution allPopups="false" locationURI="popup:org.eclipse.ui.popup.any?after=results_export">
<command <command
commandId="org.jkiss.dbeaver.ext.mockdata.resultset.mockdata" commandId="org.jkiss.dbeaver.ext.mockdata.resultset.mockdata"
label="Generate Mock Data"> label="%command.mockdata.name">
<visibleWhen checkEnabled="true"/> <visibleWhen checkEnabled="true"/>
</command> </command>
</menuContribution> </menuContribution>
...@@ -64,48 +64,48 @@ ...@@ -64,48 +64,48 @@
<generator <generator
id="numericConstantGenerator" id="numericConstantGenerator"
label="Numeric Constant" label="%generator.numeric.constant.label"
description="Constant numeric value" description="%generator.numeric.constant.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.ConstantGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.ConstantGenerator">
<type kind="NUMERIC"/> <type kind="NUMERIC"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="value" label="Value" type="numeric" defaultValue="0"/> <property id="value" label="%generator.numeric.constant.prop.value.label" type="numeric" defaultValue="0"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="numericRandomGenerator" id="numericRandomGenerator"
label="Numeric Random" label="%generator.numeric.random.label"
description="Random numeric values" description="%generator.numeric.random.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.NumericRandomGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.NumericRandomGenerator">
<type kind="NUMERIC"/> <type kind="NUMERIC"/>
</generator> </generator>
<generator <generator
id="numericSequenceGenerator" id="numericSequenceGenerator"
label="Numeric Sequence" label="%generator.numeric.sequence.label"
description="Sequence of numbers with adjustable start, step and order" description="%generator.numeric.sequence.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.NumericSequenceGenerator" class="org.jkiss.dbeaver.ext.mockdata.generator.NumericSequenceGenerator"
tags="id,number,order"> tags="id,number,order">
<type kind="NUMERIC"/> <type kind="NUMERIC"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="start" label="Start value" type="long" defaultValue="1" description="Initial sequence value"/> <property id="start" label="%generator.numeric.sequence.property.start.label" type="long" defaultValue="1" description="%generator.numeric.sequence.property.start.description"/>
<property id="step" label="Increment step" type="long" defaultValue="1" description="Sequence increment step"/> <property id="step" label="%generator.numeric.sequence.property.step.label" type="long" defaultValue="1" description="%generator.numeric.sequence.property.step.description"/>
<property id="reverse" label="Reverse order" type="boolean" defaultValue="FALSE" description="Reverse the sequence order"/> <property id="reverse" label="%generator.numeric.sequence.property.reverse.label" type="boolean" defaultValue="FALSE" description="%generator.numeric.sequence.property.reverse.description"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="booleanConstantGenerator" id="booleanConstantGenerator"
label="Boolean Constant" label="%generator.boolean.constant.label"
description="Constant boolean value" description="%generator.boolean.constant.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.ConstantGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.ConstantGenerator">
<type kind="BOOLEAN"/> <type kind="BOOLEAN"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="value" label="Value" type="boolean" defaultValue="TRUE"/> <property id="value" label="%generator.boolean.constant.property.value.label" type="boolean" defaultValue="TRUE"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
...@@ -119,60 +119,60 @@ ...@@ -119,60 +119,60 @@
<generator <generator
id="booleanSequenceGenerator" id="booleanSequenceGenerator"
label="Boolean Sequence" label="%generator.boolean.sequence.label"
description="Adjustable sequence of boolean values" description="%generator.boolean.sequence.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.BooleanSequenceGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.BooleanSequenceGenerator">
<type kind="BOOLEAN"/> <type kind="BOOLEAN"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="initial" label="Initial" type="boolean" defaultValue="TRUE"/> <property id="initial" label="%generator.boolean.sequence.property.initial.label" type="boolean" defaultValue="TRUE"/>
<property id="order" label="Order" type="string" defaultValue="CONSTANT" validValues="ALTERNATELY,CONSTANT"/> <property id="order" label="%generator.boolean.sequence.property.order.label" type="string" defaultValue="%generator.boolean.sequence.property.order.value.initial" validValues="%generator.boolean.sequence.property.order.validValues"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="dateConstantGenerator" id="dateConstantGenerator"
label="Date Constant" label="%generator.date.constant.label"
description="Constant date value" description="%generator.date.constant.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.ConstantGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.ConstantGenerator">
<type kind="DATETIME"/> <type kind="DATETIME"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="value" label="Value" type="string" description="Date format: DD-MM-YYYY"/> <property id="value" label="%generator.date.constant.property.value.label" type="string" description="%generator.date.constant.property.value.description"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="dateRandomGenerator" id="dateRandomGenerator"
label="Date Random" label="%generator.date.random.label"
description="Random date values" description="%generator.date.random.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.DateRandomGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.DateRandomGenerator">
<type kind="DATETIME"/> <type kind="DATETIME"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="startDate" label="Start date" type="string" description="Date range start (DD-MM-YYYY)"/> <property id="startDate" label="%generator.date.random.property.start.label" type="string" description="%generator.date.random.property.start.description"/>
<property id="endDate" label="End date" type="string" description="Date range end (DD-MM-YYYY)"/> <property id="endDate" label="%generator.date.random.property.end.label" type="string" description="%generator.date.random.property.end.description"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="dateSequenceGenerator" id="dateSequenceGenerator"
label="Date Sequence" label="%generator.date.sequence.label"
description="Adjustable sequence of dates" description="%generator.date.sequence.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.DateSequenceGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.DateSequenceGenerator">
<type kind="DATETIME"/> <type kind="DATETIME"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="startDate" label="Start date" type="string" defaultValue="${now as dd-MM-yyyy}" description="Sequence start date (DD-MM-YYYY)"/> <property id="startDate" label="%generator.date.sequence.property.start.label" type="string" defaultValue="${now as dd-MM-yyyy}" description="%generator.date.sequence.property.start.description"/>
<property id="step" label="Increment step" type="integer" defaultValue="1" description="Sequence increment step (days)"/> <property id="step" label="%generator.date.sequence.property.step.label" type="integer" defaultValue="1" description="%generator.date.sequence.property.step.description"/>
<property id="reverse" label="Reverse order" type="boolean" defaultValue="FALSE" description="Reverse sequence order"/> <property id="reverse" label="%generator.date.sequence.property.reverse.label" type="boolean" defaultValue="FALSE" description="%generator.date.sequence.property.reverse.description"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="fkGenerator" id="fkGenerator"
label="FK" label="%generator.fk.label"
description="Values from associated table (FK)" description="%generator.fk.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.FKGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.FKGenerator">
<!-- <!--
<propertyGroup label="General"> <propertyGroup label="General">
...@@ -195,24 +195,24 @@ ...@@ -195,24 +195,24 @@
<generator <generator
id="stringTextGenerator" id="stringTextGenerator"
label="Text" label="%generator.string.text.label"
description="Random length substrings from the 'Lorem ipsum' text" description="%generator.string.text.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.StringTextGenerator" class="org.jkiss.dbeaver.ext.mockdata.generator.StringTextGenerator"
tags="text,paragraph,chapter"> tags="text,paragraph,chapter">
<type kind="STRING"/> <type kind="STRING"/>
<propertyGroup label="General"> <propertyGroup label="General">
<property id="template" label="Template" type="string" description="Source of substrings" <property id="template" label="%generator.string.text.property.template.label" type="string" description="%generator.string.text.property.template.description"
defaultValue="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."/> defaultValue="%generator.string.text.property.template.value"/>
<property id="minLength" label="Min Length" type="integer" defaultValue="1" description="Minimum length"/> <property id="minLength" label="%generator.string.text.property.min.label" type="integer" defaultValue="1" description="%generator.string.text.property.min.description"/>
<property id="maxLength" label="Max Length" type="integer" defaultValue="100" description="Maximum length (0 means the column length)"/> <property id="maxLength" label="%generator.string.text.property.max.label" type="integer" defaultValue="100" description="%generator.string.text.property.max.description"/>
</propertyGroup> </propertyGroup>
</generator> </generator>
<generator <generator
id="stringUuidGenerator" id="stringUuidGenerator"
label="UUID" label="%generator.string.uuid.label"
description="UUID random values" description="%generator.string.uuid.label"
class="org.jkiss.dbeaver.ext.mockdata.generator.StringUuidGenerator" class="org.jkiss.dbeaver.ext.mockdata.generator.StringUuidGenerator"
tags="id,uuid"> tags="id,uuid">
<type kind="STRING"/> <type kind="STRING"/>
...@@ -220,8 +220,8 @@ ...@@ -220,8 +220,8 @@
<generator <generator
id="zeroGenerator" id="zeroGenerator"
label="NULL" label="%generator.zero.label"
description="NULL values" description="%generator.zero.description"
class="org.jkiss.dbeaver.ext.mockdata.generator.NullGenerator"> class="org.jkiss.dbeaver.ext.mockdata.generator.NullGenerator">
<type kind="BOOLEAN"/> <type kind="BOOLEAN"/>
<type kind="DATETIME"/> <type kind="DATETIME"/>
......
...@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.mockdata; ...@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.mockdata;
import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IImportWizard;
import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbench;
...@@ -153,7 +154,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -153,7 +154,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
public boolean executeProcess(DBRProgressMonitor monitor, DBSDataManipulator dataManipulator) throws IOException { public boolean executeProcess(DBRProgressMonitor monitor, DBSDataManipulator dataManipulator) throws IOException {
DBCExecutionContext context = dataManipulator.getDataSource().getDefaultContext(true); DBCExecutionContext context = dataManipulator.getDataSource().getDefaultContext(true);
try (DBCSession session = context.openSession(monitor, DBCExecutionPurpose.USER, MockDataMessages.tools_mockdata_generate_data_task)) { try (DBCSession session = context.openSession(monitor, DBCExecutionPurpose.USER, MockDataMessages.tools_mockdata_wizard_task_generate_data)) {
DBCTransactionManager txnManager = DBUtils.getTransactionManager(session.getExecutionContext()); DBCTransactionManager txnManager = DBUtils.getTransactionManager(session.getExecutionContext());
boolean autoCommit; boolean autoCommit;
try { try {
...@@ -165,11 +166,11 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -165,11 +166,11 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
AbstractExecutionSource executionSource = new AbstractExecutionSource(dataManipulator, session.getExecutionContext(), this); AbstractExecutionSource executionSource = new AbstractExecutionSource(dataManipulator, session.getExecutionContext(), this);
boolean success = true; boolean success = true;
monitor.beginTask("Generate Mock Data", 3); monitor.beginTask(MockDataMessages.tools_mockdata_wizard_task_generate_data, 3);
ArrayList<DBEPersistAction> persistActions = new ArrayList<>(); ArrayList<DBEPersistAction> persistActions = new ArrayList<>();
if (mockDataSettings.isRemoveOldData()) { if (mockDataSettings.isRemoveOldData()) {
logPage.appendLog("Removing old data from the '" + dataManipulator.getName() + "'.\n"); logPage.appendLog(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_removing_from, dataManipulator.getName()));
monitor.subTask("Cleanup old data"); monitor.subTask(MockDataMessages.tools_mockdata_wizard_log_cleaning);
DBCStatistics deleteStats = new DBCStatistics(); DBCStatistics deleteStats = new DBCStatistics();
try { try {
dataManipulator.truncateData(session, executionSource); dataManipulator.truncateData(session, executionSource);
...@@ -178,7 +179,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -178,7 +179,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
} }
} catch (Exception e) { } catch (Exception e) {
success = false; success = false;
String message = " Error removing the data: " + e.getMessage(); String message = NLS.bind(MockDataMessages.tools_mockdata_wizard_log_removing_error, e.getMessage());
log.error(message, e); log.error(message, e);
logPage.appendLog(message + "\n\n", true); logPage.appendLog(message + "\n\n", true);
} }
...@@ -189,10 +190,10 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -189,10 +190,10 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
false); false);
logPage.appendLog(" The insert data script:\n " + scriptText + "\n\n"); logPage.appendLog(" The insert data script:\n " + scriptText + "\n\n");
} }
logPage.appendLog(" Rows updated: " + deleteStats.getRowsUpdated() + "\n"); // logPage.appendLog(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_rows_updated, deleteStats.getRowsUpdated())); no reason because trancate
logPage.appendLog(" Duration: " + deleteStats.getExecuteTime() + "ms\n\n"); logPage.appendLog(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_duration, deleteStats.getExecuteTime()));
} else { } else {
logPage.appendLog("Old data isn't removed.\n\n"); logPage.appendLog(MockDataMessages.tools_mockdata_wizard_log_not_removed);
} }
if (!success) { if (!success) {
...@@ -200,9 +201,9 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -200,9 +201,9 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
} }
try { try {
monitor.subTask("Insert data"); monitor.subTask(MockDataMessages.tools_mockdata_wizard_task_insert_data);
logPage.appendLog("Inserting mock data into the '" + dataManipulator.getName() + "'.\n"); logPage.appendLog(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_inserting_into, dataManipulator.getName()));
DBCStatistics insertStats = new DBCStatistics(); DBCStatistics insertStats = new DBCStatistics();
persistActions = new ArrayList<>(); persistActions = new ArrayList<>();
...@@ -234,7 +235,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -234,7 +235,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
} }
int counter = 0; int counter = 0;
monitor.beginTask("Insert data", (int) rowsNumber); monitor.beginTask(MockDataMessages.tools_mockdata_wizard_task_insert_data, (int) rowsNumber);
boolean hasMiltiUniqs = false; boolean hasMiltiUniqs = false;
Set<String> miltiUniqColumns = new HashSet<>(); Set<String> miltiUniqColumns = new HashSet<>();
...@@ -263,7 +264,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -263,7 +264,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
txnManager.commit(session); txnManager.commit(session);
} }
monitor.subTask(String.valueOf(counter) + " rows inserted"); monitor.subTask(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_inserted_rows, String.valueOf(counter)));
monitor.worked(BATCH_SIZE); monitor.worked(BATCH_SIZE);
} }
...@@ -356,11 +357,11 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -356,11 +357,11 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
false); false);
logPage.appendLog(" The insert data script:\n " + scriptText + "\n\n"); logPage.appendLog(" The insert data script:\n " + scriptText + "\n\n");
} }
logPage.appendLog(" Rows updated: " + insertStats.getRowsUpdated() + "\n"); logPage.appendLog(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_rows_updated, insertStats.getRowsUpdated()));
logPage.appendLog(" Duration: " + insertStats.getExecuteTime() + "ms\n\n"); logPage.appendLog(NLS.bind(MockDataMessages.tools_mockdata_wizard_log_duration, insertStats.getExecuteTime()));
} catch (DBException e) { } catch (DBException e) {
String message = " Error inserting mock data: " + e.getMessage(); String message = NLS.bind(MockDataMessages.tools_mockdata_wizard_log_error_inserting, e.getMessage());
log.error(message, e); log.error(message, e);
logPage.appendLog(message + "\n\n", true); logPage.appendLog(message + "\n\n", true);
} }
...@@ -373,7 +374,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato ...@@ -373,7 +374,7 @@ public class MockDataExecuteWizard extends AbstractToolWizard<DBSDataManipulato
} }
private void processGeneratorException(Exception e) { private void processGeneratorException(Exception e) {
String message = " Error generating mock data: " + e.getMessage(); String message = NLS.bind(MockDataMessages.tools_mockdata_wizard_log_error_generating, e.getMessage());
log.error(message, e); log.error(message, e);
logPage.appendLog(message + "\n\n", true); logPage.appendLog(message + "\n\n", true);
} }
......
...@@ -54,7 +54,7 @@ public class MockDataGenerateTool implements IExternalTool { ...@@ -54,7 +54,7 @@ public class MockDataGenerateTool implements IExternalTool {
return; return;
} }
if (mockDataSettings.isRemoveOldData()) { if (mockDataSettings.isRemoveOldData()) {
if (!UIUtils.confirmAction(getShell(), MockDataMessages.tools_mockdata_wizard_title, MockDataMessages.tools_mockdata_confirm_delete_old_data_message)) { if (!UIUtils.confirmAction(getShell(), MockDataMessages.tools_mockdata_wizard_title, MockDataMessages.tools_mockdata_wizard_page_settings_confirm_delete_old_data_message)) {
return; return;
} }
} }
...@@ -78,7 +78,7 @@ public class MockDataGenerateTool implements IExternalTool { ...@@ -78,7 +78,7 @@ public class MockDataGenerateTool implements IExternalTool {
private boolean validateProperties(IWizardPage currentPage) { private boolean validateProperties(IWizardPage currentPage) {
if (currentPage instanceof MockDataWizardPageSettings) { if (currentPage instanceof MockDataWizardPageSettings) {
if (!((MockDataWizardPageSettings) currentPage).validateProperties()) { if (!((MockDataWizardPageSettings) currentPage).validateProperties()) {
this.setErrorMessage("All numeric properties should be positive."); this.setErrorMessage(MockDataMessages.tools_mockdata_wizard_negative_numeric_error);
return true; return true;
} }
} }
......
...@@ -30,17 +30,55 @@ public class MockDataMessages extends NLS { ...@@ -30,17 +30,55 @@ public class MockDataMessages extends NLS {
public MockDataMessages() { public MockDataMessages() {
} }
public static String tools_mockdata_generate_data_task; public static String tools_mockdata_message_title;
public static String tools_mockdata_error_notconnected;
public static String tools_mockdata_error_tableonly;
public static String tools_mockdata_prop_nulls_label;
public static String tools_mockdata_prop_nulls_description;
public static String tools_mockdata_prop_lowercase_label;
public static String tools_mockdata_prop_uppercase_label;
public static String tools_mockdata_generator_boolean_sequence_prop_order_value_constant;
public static String tools_mockdata_generator_boolean_sequence_prop_order_value_alternately;
public static String tools_mockdata_wizard_title; public static String tools_mockdata_wizard_title;
public static String tools_mockdata_wizard_page_name; public static String tools_mockdata_wizard_page_name;
public static String tools_mockdata_wizard_message_process_completed; public static String tools_mockdata_wizard_message_process_completed;
public static String tools_mockdata_wizard_page_settings_group_settings; public static String tools_mockdata_wizard_task_generate_data;
public static String tools_mockdata_wizard_task_insert_data;
public static String tools_mockdata_wizard_page_settings_page_name; public static String tools_mockdata_wizard_page_settings_page_name;
public static String tools_mockdata_wizard_page_settings_page_description; public static String tools_mockdata_wizard_page_settings_page_description;
public static String tools_mockdata_wizard_page_settings_group_settings;
public static String tools_mockdata_wizard_page_settings_checkbox_remove_old_data; public static String tools_mockdata_wizard_page_settings_checkbox_remove_old_data;
public static String tools_mockdata_wizard_page_settings_confirm_delete_old_data_message;
public static String tools_mockdata_wizard_page_settings_combo_rows;
public static String tools_mockdata_wizard_page_settings_text_entity;
public static String tools_mockdata_wizard_page_settings_group_generators;
public static String tools_mockdata_wizard_page_settings_button_autoassign;
public static String tools_mockdata_wizard_page_settings_button_autoassign_confirm;
public static String tools_mockdata_wizard_page_settings_generatorselector_attribute;
public static String tools_mockdata_wizard_page_settings_generatorselector_generator;
public static String tools_mockdata_wizard_page_settings_button_reset;
public static String tools_mockdata_wizard_page_settings_button_info_notfound;
public static String tools_mockdata_wizard_page_settings_button_info_noattributes;
public static String tools_mockdata_wizard_page_settings_notfound;
public static String tools_mockdata_confirm_delete_old_data_message; public static String tools_mockdata_wizard_negative_numeric_error;
public static String tools_mockdata_wizard_log_removing_from;
public static String tools_mockdata_wizard_log_removing_error;
public static String tools_mockdata_wizard_log_rows_updated;
public static String tools_mockdata_wizard_log_duration;
public static String tools_mockdata_wizard_log_cleaning;
public static String tools_mockdata_wizard_log_not_removed;
public static String tools_mockdata_wizard_log_inserting_into;
public static String tools_mockdata_wizard_log_inserted_rows;
public static String tools_mockdata_wizard_log_error_inserting;
public static String tools_mockdata_wizard_log_error_generating;
} }
tools_mockdata_message_title=Mock Data
tools_mockdata_error_notconnected=Not connected to a database
tools_mockdata_error_tableonly=Mock Data can be generated for a table only
tools_mockdata_prop_nulls_label=% of NULLs
tools_mockdata_prop_nulls_description=NULL values (%)
tools_mockdata_prop_lowercase_label=Lower Case
tools_mockdata_prop_uppercase_label=Upper Case
tools_mockdata_generator_boolean_sequence_prop_order_value_constant=Constant
tools_mockdata_generator_boolean_sequence_prop_order_value_alternately=Alternately
tools_mockdata_wizard_title=Mock Data Wizard tools_mockdata_wizard_title=Mock Data Wizard
tools_mockdata_wizard_page_name=Mock Data Generator tools_mockdata_wizard_page_name=Mock Data Generator
...@@ -6,5 +17,30 @@ tools_mockdata_wizard_page_settings_group_settings=General ...@@ -6,5 +17,30 @@ tools_mockdata_wizard_page_settings_group_settings=General
tools_mockdata_wizard_page_settings_page_name=Mock data generator configuration tools_mockdata_wizard_page_settings_page_name=Mock data generator configuration
tools_mockdata_wizard_page_settings_page_description=Set mock data generator settings tools_mockdata_wizard_page_settings_page_description=Set mock data generator settings
tools_mockdata_wizard_page_settings_checkbox_remove_old_data=Remove Old Data tools_mockdata_wizard_page_settings_checkbox_remove_old_data=Remove Old Data
tools_mockdata_generate_data_task=Generate Mock Data tools_mockdata_wizard_page_settings_confirm_delete_old_data_message=Are you sure you want to delete old data?
tools_mockdata_confirm_delete_old_data_message=Are you sure you want to delete old data? tools_mockdata_wizard_page_settings_combo_rows=Rows
tools_mockdata_wizard_page_settings_text_entity=Entity
tools_mockdata_wizard_task_generate_data=Generate Mock Data
tools_mockdata_wizard_task_insert_data=Insert data
tools_mockdata_wizard_page_settings_group_generators=Generators
tools_mockdata_wizard_page_settings_button_autoassign=Auto assign generators
tools_mockdata_wizard_page_settings_button_autoassign_confirm=The generators will be assigned automatically. Proceed?
tools_mockdata_wizard_page_settings_generatorselector_attribute=Attribute
tools_mockdata_wizard_page_settings_generatorselector_generator=Generator
tools_mockdata_wizard_page_settings_button_reset=Reset
tools_mockdata_wizard_page_settings_button_info_notfound=Generators for the red highlighted attributes aren't found. So, no data will be generated for them.
tools_mockdata_wizard_page_settings_button_info_noattributes=No attributes in the table
tools_mockdata_wizard_page_settings_notfound=Not found
tools_mockdata_wizard_negative_numeric_error=All numeric properties should be positive.
tools_mockdata_wizard_log_removing_from=Removing old data from the "{0}".\n
tools_mockdata_wizard_log_removing_error= Error removing the data:
tools_mockdata_wizard_log_rows_updated= Rows updated: {0}\n
tools_mockdata_wizard_log_duration= Duration: {0}ms\n\n
tools_mockdata_wizard_log_cleaning=Cleanup old data
tools_mockdata_wizard_log_not_removed=Old data isn't removed.
tools_mockdata_wizard_log_inserting_into=Inserting mock data into the "{0}".\n
tools_mockdata_wizard_log_inserted_rows={0} rows inserted
tools_mockdata_wizard_log_error_inserting= Error inserting mock data: {0}
tools_mockdata_wizard_log_error_generating= Error generating mock data: {0}
...@@ -94,7 +94,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -94,7 +94,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
}; };
Composite entityPlaceholder = UIUtils.createPlaceholder(composite, 2); Composite entityPlaceholder = UIUtils.createPlaceholder(composite, 2);
this.entityNameText = UIUtils.createLabelText(entityPlaceholder, "Entity", "", SWT.NONE | SWT.READ_ONLY); this.entityNameText = UIUtils.createLabelText(entityPlaceholder, MockDataMessages.tools_mockdata_wizard_page_settings_text_entity, "", SWT.NONE | SWT.READ_ONLY);
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.widthHint = 230; gd.widthHint = 230;
gd.verticalIndent = 5; gd.verticalIndent = 5;
...@@ -115,7 +115,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -115,7 +115,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
removeOldDataCheck.addSelectionListener(changeListener); removeOldDataCheck.addSelectionListener(changeListener);
this.rowsText = UIUtils.createLabelText( this.rowsText = UIUtils.createLabelText(
settingsGroup, "Rows ", String.valueOf(mockDataSettings.getRowsNumber()), SWT.BORDER, settingsGroup, MockDataMessages.tools_mockdata_wizard_page_settings_combo_rows, String.valueOf(mockDataSettings.getRowsNumber()), SWT.BORDER,
new GridData(110, SWT.DEFAULT)); new GridData(110, SWT.DEFAULT));
rowsText.addSelectionListener(changeListener); rowsText.addSelectionListener(changeListener);
rowsText.addVerifyListener(UIUtils.getLongVerifyListener(rowsText)); rowsText.addVerifyListener(UIUtils.getLongVerifyListener(rowsText));
...@@ -128,7 +128,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -128,7 +128,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
} }
{ {
Group generatorsGroup = UIUtils.createControlGroup(composite, "Generators", 5, GridData.FILL_BOTH, 0); Group generatorsGroup = UIUtils.createControlGroup(composite, MockDataMessages.tools_mockdata_wizard_page_settings_group_generators, 5, GridData.FILL_BOTH, 0);
GridData gd = new GridData(GridData.FILL_BOTH); GridData gd = new GridData(GridData.FILL_BOTH);
gd.verticalIndent = 5; gd.verticalIndent = 5;
generatorsGroup.setLayoutData(gd); generatorsGroup.setLayoutData(gd);
...@@ -139,12 +139,12 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -139,12 +139,12 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
placeholder.setLayoutData(gd); placeholder.setLayoutData(gd);
Button autoAssignButton = new Button(placeholder, SWT.PUSH); Button autoAssignButton = new Button(placeholder, SWT.PUSH);
autoAssignButton.setText("Auto assign generators"); autoAssignButton.setText(MockDataMessages.tools_mockdata_wizard_page_settings_button_autoassign);
autoAssignButton.setImage(DBeaverIcons.getImage(UIIcon.OBJ_REFRESH)); autoAssignButton.setImage(DBeaverIcons.getImage(UIIcon.OBJ_REFRESH));
autoAssignButton.addSelectionListener(new SelectionAdapter() { autoAssignButton.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
if (UIUtils.confirmAction(getShell(), MockDataMessages.tools_mockdata_wizard_title, "The generators will be assigned automatically. Proceed?")) { if (UIUtils.confirmAction(getShell(), MockDataMessages.tools_mockdata_wizard_title, MockDataMessages.tools_mockdata_wizard_page_settings_button_autoassign_confirm)) {
autoAssignGenerators(); autoAssignGenerators();
} }
} }
...@@ -207,12 +207,12 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -207,12 +207,12 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
TableViewerColumn attributeColumn = new TableViewerColumn(generatorsTableViewer, SWT.LEFT); TableViewerColumn attributeColumn = new TableViewerColumn(generatorsTableViewer, SWT.LEFT);
attributeColumn.setLabelProvider(labelProvider); attributeColumn.setLabelProvider(labelProvider);
attributeColumn.getColumn().setText("Attribute"); attributeColumn.getColumn().setText(MockDataMessages.tools_mockdata_wizard_page_settings_generatorselector_attribute);
TableViewerColumn generatorColumn = new TableViewerColumn(generatorsTableViewer, SWT.LEFT); TableViewerColumn generatorColumn = new TableViewerColumn(generatorsTableViewer, SWT.LEFT);
generatorColumn.setLabelProvider(labelProvider); generatorColumn.setLabelProvider(labelProvider);
TableColumn column = generatorColumn.getColumn(); TableColumn column = generatorColumn.getColumn();
column.setText("Generator"); column.setText(MockDataMessages.tools_mockdata_wizard_page_settings_generatorselector_generator);
generatorColumn.setEditingSupport(new EditingSupport(generatorsTableViewer) { generatorColumn.setEditingSupport(new EditingSupport(generatorsTableViewer) {
@Override @Override
...@@ -317,7 +317,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -317,7 +317,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
generatorDescriptionLink.setLayoutData(gd); generatorDescriptionLink.setLayoutData(gd);
Button resetButton = new Button(labelCombo, SWT.PUSH); Button resetButton = new Button(labelCombo, SWT.PUSH);
resetButton.setText("Reset"); resetButton.setText(MockDataMessages.tools_mockdata_wizard_page_settings_button_reset);
resetButton.addSelectionListener(new SelectionAdapter() { resetButton.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
...@@ -338,7 +338,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -338,7 +338,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
propsEditor.getControl().setLayoutData(gd); propsEditor.getControl().setLayoutData(gd);
noGeneratorInfoLabel = UIUtils.createInfoLabel(composite, noGeneratorInfoLabel = UIUtils.createInfoLabel(composite,
"Generators for the red highlighted attributes aren't found. So, no data will be generated for them."); MockDataMessages.tools_mockdata_wizard_page_settings_button_info_notfound);
//noGeneratorInfoLabel.setForeground(generatorsTableViewer.getDisplay().getSystemColor(SWT.COLOR_RED)); //noGeneratorInfoLabel.setForeground(generatorsTableViewer.getDisplay().getSystemColor(SWT.COLOR_RED));
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.horizontalSpan = 2; gd.horizontalSpan = 2;
...@@ -437,7 +437,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -437,7 +437,7 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
event.type = SWT.Selection; event.type = SWT.Selection;
table.notifyListeners(SWT.Selection, event); table.notifyListeners(SWT.Selection, event);
} else { } else {
noGeneratorInfoLabel.setText("No attributes in the table"); noGeneratorInfoLabel.setText(MockDataMessages.tools_mockdata_wizard_page_settings_button_info_noattributes);
noGeneratorInfoLabel.setVisible(true); noGeneratorInfoLabel.setVisible(true);
} }
...@@ -536,8 +536,8 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute ...@@ -536,8 +536,8 @@ public class MockDataWizardPageSettings extends ActiveWizardPage<MockDataExecute
generatorDescriptionLink.setVisible(true); generatorDescriptionLink.setVisible(true);
} }
} else { } else {
generatorCombo.setItems(new String[] {"Not found"}); generatorCombo.setItems(new String[] {MockDataMessages.tools_mockdata_wizard_page_settings_notfound});
generatorCombo.setText("Not found"); generatorCombo.setText(MockDataMessages.tools_mockdata_wizard_page_settings_notfound);
generatorCombo.setEnabled(false); generatorCombo.setEnabled(false);
generatorDescriptionLabel.setText(""); generatorDescriptionLabel.setText("");
} }
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
package org.jkiss.dbeaver.ext.mockdata.generator; package org.jkiss.dbeaver.ext.mockdata.generator;
import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.mockdata.MockDataMessages;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSAttributeBase; import org.jkiss.dbeaver.model.struct.DBSAttributeBase;
import org.jkiss.dbeaver.model.struct.DBSDataManipulator; import org.jkiss.dbeaver.model.struct.DBSDataManipulator;
...@@ -30,7 +31,28 @@ public class BooleanSequenceGenerator extends AbstractMockValueGenerator { ...@@ -30,7 +31,28 @@ public class BooleanSequenceGenerator extends AbstractMockValueGenerator {
private boolean value; private boolean value;
private enum ORDER { private enum ORDER {
ALTERNATELY, CONSTANT ALTERNATELY (MockDataMessages.tools_mockdata_generator_boolean_sequence_prop_order_value_alternately),
CONSTANT (MockDataMessages.tools_mockdata_generator_boolean_sequence_prop_order_value_constant);
private String label;
ORDER(String label) {
this.label = label;
}
@Override
public String toString() {
return label;
}
public static ORDER find(String label) {
for (ORDER order : values()) {
if (order.label.equalsIgnoreCase(label)) {
return order;
}
}
return null;
}
} }
private ORDER order; private ORDER order;
...@@ -40,7 +62,7 @@ public class BooleanSequenceGenerator extends AbstractMockValueGenerator { ...@@ -40,7 +62,7 @@ public class BooleanSequenceGenerator extends AbstractMockValueGenerator {
String o = (String) properties.get("order"); //$NON-NLS-1$ String o = (String) properties.get("order"); //$NON-NLS-1$
if (o != null) { if (o != null) {
this.order = ORDER.valueOf(o); this.order = ORDER.find(o);
} }
Boolean initial = (Boolean) properties.get("initial"); //$NON-NLS-1$ Boolean initial = (Boolean) properties.get("initial"); //$NON-NLS-1$
......
...@@ -24,6 +24,7 @@ import org.jkiss.dbeaver.DBException; ...@@ -24,6 +24,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverUI; import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.ext.mockdata.MockDataGenerateTool; import org.jkiss.dbeaver.ext.mockdata.MockDataGenerateTool;
import org.jkiss.dbeaver.ext.mockdata.MockDataMessages;
import org.jkiss.dbeaver.model.struct.DBSDataContainer; import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.model.struct.DBSDataManipulator; import org.jkiss.dbeaver.model.struct.DBSDataManipulator;
import org.jkiss.dbeaver.model.struct.DBSObject; import org.jkiss.dbeaver.model.struct.DBSObject;
...@@ -49,11 +50,11 @@ public class ResultSetMockDataHandler extends AbstractHandler { ...@@ -49,11 +50,11 @@ public class ResultSetMockDataHandler extends AbstractHandler {
if (resultSet != null) { if (resultSet != null) {
DBSDataContainer dataContainer = resultSet.getDataContainer(); DBSDataContainer dataContainer = resultSet.getDataContainer();
if (dataContainer == null || dataContainer.getDataSource() == null) { if (dataContainer == null || dataContainer.getDataSource() == null) {
DBeaverUI.getInstance().showError("Mock Data", "Not connected to a database"); DBeaverUI.getInstance().showError(MockDataMessages.tools_mockdata_message_title, MockDataMessages.tools_mockdata_error_notconnected);
return null; return null;
} }
if (!(dataContainer instanceof DBSDataManipulator)) { if (!(dataContainer instanceof DBSDataManipulator)) {
DBeaverUI.getInstance().showError("Mock Data", "Mock Data can be generated for a table only"); DBeaverUI.getInstance().showError(MockDataMessages.tools_mockdata_message_title, MockDataMessages.tools_mockdata_error_tableonly);
return null; return null;
} }
selectedObjects = new ArrayList<>(); selectedObjects = new ArrayList<>();
......
...@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.mockdata.model; ...@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.mockdata.model;
import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.code.NotNull; import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.ext.mockdata.MockDataMessages;
import org.jkiss.dbeaver.model.DBPDataKind; import org.jkiss.dbeaver.model.DBPDataKind;
import org.jkiss.dbeaver.model.DBPImage; import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor; import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
...@@ -43,6 +44,7 @@ public class MockGeneratorDescriptor extends DataTypeAbstractDescriptor<MockValu ...@@ -43,6 +44,7 @@ public class MockGeneratorDescriptor extends DataTypeAbstractDescriptor<MockValu
public static final String DATETIME_RANDOM_GENERATOR_ID = "dateRandomGenerator"; //NON-NLS-1 public static final String DATETIME_RANDOM_GENERATOR_ID = "dateRandomGenerator"; //NON-NLS-1
public static final String NUMERIC_RANDOM_GENERATOR_ID = "numericRandomGenerator"; //NON-NLS-1 public static final String NUMERIC_RANDOM_GENERATOR_ID = "numericRandomGenerator"; //NON-NLS-1
public static final String STRING_TEXT_GENERATOR_ID = "stringTextGenerator"; //NON-NLS-1 public static final String STRING_TEXT_GENERATOR_ID = "stringTextGenerator"; //NON-NLS-1
public static final String ZERO_GENERATOR_ID = "zeroGenerator"; //NON-NLS-1
public static final String TAG_PRESET = "preset"; //NON-NLS-1 public static final String TAG_PRESET = "preset"; //NON-NLS-1
...@@ -65,32 +67,34 @@ public class MockGeneratorDescriptor extends DataTypeAbstractDescriptor<MockValu ...@@ -65,32 +67,34 @@ public class MockGeneratorDescriptor extends DataTypeAbstractDescriptor<MockValu
this.url = config.getAttribute(RegistryConstants.ATTR_URL); this.url = config.getAttribute(RegistryConstants.ATTR_URL);
this.icon = iconToImage(config.getAttribute(RegistryConstants.ATTR_ICON)); this.icon = iconToImage(config.getAttribute(RegistryConstants.ATTR_ICON));
properties.add(new PropertyDescriptor( if (!ZERO_GENERATOR_ID.equals(this.getId())) {
"General", "nulls", "% of NULLs", "NULL values (%)", false, properties.add(new PropertyDescriptor(
PropertyDescriptor.PropertyType.t_integer.getValueType(), 0, null)); "General", "nulls", MockDataMessages.tools_mockdata_prop_nulls_label, MockDataMessages.tools_mockdata_prop_nulls_description, false,
PropertyDescriptor.PropertyType.t_integer.getValueType(), 0, null));
for (IConfigurationElement prop : config.getChildren(PropertyDescriptor.TAG_PROPERTY_GROUP)) { for (IConfigurationElement prop : config.getChildren(PropertyDescriptor.TAG_PROPERTY_GROUP)) {
properties.addAll(PropertyDescriptor.extractProperties(prop)); properties.addAll(PropertyDescriptor.extractProperties(prop));
} }
for (IConfigurationElement preset : config.getChildren(TAG_PRESET)) { for (IConfigurationElement preset : config.getChildren(TAG_PRESET)) {
presets.add(new Preset( presets.add(new Preset(
preset.getAttribute("id"), preset.getAttribute("id"),
preset.getAttribute("label"), preset.getAttribute("label"),
preset.getAttribute("mnemonics"), preset.getAttribute("mnemonics"),
preset.getAttribute("description"), preset.getAttribute("description"),
PropertyDescriptor.extractProperties(preset), PropertyDescriptor.extractProperties(preset),
extractTags(preset) extractTags(preset)
)); ));
} }
if (getSupportedTypes().contains(DBPDataKind.STRING)) { if (getSupportedTypes().contains(DBPDataKind.STRING)) {
properties.add(new PropertyDescriptor( properties.add(new PropertyDescriptor(
"General", "lowercase", "Lower Case", null, false, "General", "lowercase", MockDataMessages.tools_mockdata_prop_lowercase_label, null, false,
PropertyDescriptor.PropertyType.t_boolean.getValueType(), false, null)); PropertyDescriptor.PropertyType.t_boolean.getValueType(), false, null));
properties.add(new PropertyDescriptor( properties.add(new PropertyDescriptor(
"General", "uppercase", "Upper Case", null, false, "General", "uppercase", MockDataMessages.tools_mockdata_prop_uppercase_label, null, false,
PropertyDescriptor.PropertyType.t_boolean.getValueType(), false, null)); PropertyDescriptor.PropertyType.t_boolean.getValueType(), false, null));
}
} }
List<String> tags = extractTags(config); List<String> tags = extractTags(config);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册