This is an automated email from the ASF dual-hosted git repository.
shl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new aa0a5c2269 Allow terminating the shell's closed event for ScriptValues
& UserDefinedJavaClass transforms
new 29f0bee5ce Merge pull request #4910 from shl/main
aa0a5c2269 is described below
commit aa0a5c2269233a1c2941df17b8a0327f662dd3c3
Author: Shl Xue <[email protected]>
AuthorDate: Tue Feb 25 10:02:31 2025 +0800
Allow terminating the shell's closed event for ScriptValues &
UserDefinedJavaClass transforms
---
.../userdefinedjavaclass/UserDefinedJavaClassDialog.java | 2 +-
.../pipeline/transforms/javascript/ScriptValuesDialog.java | 2 +-
.../java/org/apache/hop/ui/core/dialog/BaseDialog.java | 14 +++++++++++++-
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git
a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassDialog.java
b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassDialog.java
index 4f60f4baa5..864b1fbb36 100644
---
a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassDialog.java
+++
b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassDialog.java
@@ -530,7 +530,7 @@ public class UserDefinedJavaClassDialog extends
BaseTransformDialog {
}
});
- BaseDialog.defaultShellHandling(shell, c -> ok(), c -> cancel());
+ BaseDialog.defaultShellHandling(shell, c -> ok(), this::cancel);
return transformName;
}
diff --git
a/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDialog.java
b/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDialog.java
index 6afa34cdf3..4d07a21045 100644
---
a/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDialog.java
+++
b/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDialog.java
@@ -578,7 +578,7 @@ public class ScriptValuesDialog extends BaseTransformDialog
{
}
});
- BaseDialog.defaultShellHandling(shell, c -> ok(), c -> cancel());
+ BaseDialog.defaultShellHandling(shell, c -> ok(), this::cancel);
return transformName;
}
diff --git a/ui/src/main/java/org/apache/hop/ui/core/dialog/BaseDialog.java
b/ui/src/main/java/org/apache/hop/ui/core/dialog/BaseDialog.java
index 1bfaadf7dc..0529e2f518 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/dialog/BaseDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/dialog/BaseDialog.java
@@ -21,6 +21,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
+import java.util.function.Supplier;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.vfs2.FileObject;
@@ -500,10 +501,21 @@ public abstract class BaseDialog extends Dialog {
*/
public static void defaultShellHandling(
Shell shell, Consumer<Void> okConsumer, Consumer<Void> cancelConsumer) {
+ defaultShellHandling(
+ shell,
+ okConsumer,
+ () -> {
+ cancelConsumer.accept(null);
+ return true;
+ });
+ }
+
+ public static void defaultShellHandling(
+ Shell shell, Consumer<Void> okConsumer, Supplier<Boolean>
cancelSupplier) {
// If the shell is closed, cancel the dialog
//
- shell.addListener(SWT.Close, e -> cancelConsumer.accept(null));
+ shell.addListener(SWT.Close, e -> e.doit = cancelSupplier.get());
// Check for enter being pressed in text input fields
//