diff --git a/plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/database/page/DatabaseConsumerPageLoadSettings.java b/plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/database/page/DatabaseConsumerPageLoadSettings.java index 2b77878a52fce19e68e7b3c4a712ba4f3a23c7c4..fc19f2a10b05c44f132b35ca38a218ea48fb7919 100644 --- a/plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/database/page/DatabaseConsumerPageLoadSettings.java +++ b/plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/database/page/DatabaseConsumerPageLoadSettings.java @@ -21,10 +21,7 @@ import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Spinner; +import org.eclipse.swt.widgets.*; import org.jkiss.dbeaver.tools.transfer.database.DatabaseConsumerSettings; import org.jkiss.dbeaver.tools.transfer.internal.DTMessages; import org.jkiss.dbeaver.tools.transfer.wizard.DataTransferWizard; @@ -33,6 +30,8 @@ import org.jkiss.dbeaver.ui.dialogs.ActiveWizardPage; public class DatabaseConsumerPageLoadSettings extends ActiveWizardPage { + private Button truncateTargetTable; + public DatabaseConsumerPageLoadSettings() { super("Data load"); setTitle("Data load settings"); @@ -51,14 +50,18 @@ public class DatabaseConsumerPageLoadSettings extends ActiveWizardPage { + DatabaseConsumerSettings settings = getSettings(); + if (settings.isTruncateBeforeLoad() && !warnDataTruncate()) { + truncateTargetTable.setSelection(false); + settings.setTruncateBeforeLoad(false); + } + }); + } + + public boolean warnDataTruncate() { + Shell shell = getContainer().getShell(); + if (shell.isVisible() || getSettings().isTruncateBeforeLoad()) { + if (!UIUtils.confirmAction(shell, "Data truncate attention", "'Truncate target table' option is enabled.\nThis will remove ALL data from target table, it will not be possible to revert this.\n" + + "Are you absolutely sure you want to proceed?")) + { + return false; + } + } + return true; + } + + @Override + public void deactivatePage() { + super.deactivatePage(); } @Override - protected boolean determinePageCompletion() - { + protected boolean determinePageCompletion() { return true; }