This is an automated email from the ASF dual-hosted git repository.
hansva 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 4d4f330454 Fix duplicate context menu when clicking transform/action
description info icon (#7194)
4d4f330454 is described below
commit 4d4f3304544344666ddbb55cc18102f62a0aa6bd
Author: Lance <[email protected]>
AuthorDate: Tue Jun 2 21:50:18 2026 +0800
Fix duplicate context menu when clicking transform/action description info
icon (#7194)
Signed-off-by: lance <[email protected]>
---
.../hopgui/file/pipeline/HopGuiPipelineGraph.java | 58 ++++++----------------
.../hopgui/file/workflow/HopGuiWorkflowGraph.java | 13 +++++
2 files changed, 27 insertions(+), 44 deletions(-)
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
index 938769788e..af81e32835 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
@@ -28,7 +28,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Random;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
@@ -730,6 +729,9 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
// Click on the transform info icon means: Edit transformation
description
//
this.editDescription((TransformMeta) areaOwner.getOwner());
+ avoidContextDialog = true;
+ currentTransform = null;
+ iconDragStartScreen = null;
done = true;
break;
@@ -1087,6 +1089,9 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
// Release after a drag may land on another transform's name; fall
through to complete
// drag
break;
+ case TRANSFORM_INFO_ICON:
+ // Description edit was handled in mouseDown; do not open the
transform context menu
+ return;
default:
break;
}
@@ -1151,7 +1156,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
also = !Utils.isEmpty(selectedTransforms);
hopGui.undoDelegate.addUndoPosition(
pipelineMeta,
- selectedNotes.toArray(new NotePadMeta[selectedNotes.size()]),
+ selectedNotes.toArray(new NotePadMeta[0]),
indexes,
previousNoteLocations,
pipelineMeta.getSelectedNoteLocations(),
@@ -1161,7 +1166,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
int[] indexes =
pipelineMeta.getTransformIndexes(selectedTransforms);
hopGui.undoDelegate.addUndoPosition(
pipelineMeta,
- selectedTransforms.toArray(new
TransformMeta[selectedTransforms.size()]),
+ selectedTransforms.toArray(new TransformMeta[0]),
indexes,
previousTransformLocations,
pipelineMeta.getSelectedTransformLocations(),
@@ -2284,29 +2289,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
@Override
public boolean setFocus() {
- return (canvas != null && !canvas.isDisposed()) ? canvas.setFocus() :
false;
- }
-
- public void renameTransform(TransformMeta transformMeta, String
transformName) {
- String newname = transformName;
-
- TransformMeta smeta = pipelineMeta.findTransform(newname, transformMeta);
- int nr = 2;
- while (smeta != null) {
- newname = transformName + " " + nr;
- smeta = pipelineMeta.findTransform(newname);
- nr++;
- }
- if (nr > 2) {
- transformName = newname;
- modalMessageDialog(
- BaseMessages.getString(PKG,
"HopGui.Dialog.TransformnameExists.Title"),
- BaseMessages.getString(PKG,
"HopGui.Dialog.TransformnameExists.Message", transformName),
- SWT.OK | SWT.ICON_INFORMATION);
- }
- transformMeta.setName(transformName);
- transformMeta.setChanged();
- redraw();
+ return canvas != null && !canvas.isDisposed() && canvas.setFocus();
}
public void clearSettings() {
@@ -2675,7 +2658,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
if (trimmed.matches("\\d+")) {
return true;
}
- // Variable pattern: ${VARIABLE}
+ // Variable pattern: '${VARIABLE}'
return trimmed.matches("\\$\\{[^}]+\\}");
}
@@ -3245,7 +3228,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
category =
"i18n::HopGuiPipelineGraph.ContextualAction.Category.Basic.Text",
categoryOrder = "1")
public void editPipelineProperties(HopGuiPipelineContext context) {
- editProperties(pipelineMeta, hopGui, true);
+ editProperties(pipelineMeta, hopGui);
}
@GuiToolbarElement(
@@ -3257,7 +3240,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
@GuiKeyboardShortcut(control = true, key = 't')
@GuiOsxKeyboardShortcut(command = true, key = 't')
public void editPipelineProperties() {
- editProperties(pipelineMeta, hopGui, true);
+ editProperties(pipelineMeta, hopGui);
}
public void newTransform(String description) {
@@ -4011,8 +3994,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
return pipelineMeta.hasChanged();
}
- public boolean editProperties(
- PipelineMeta pipelineMeta, HopGui hopGui, boolean allowDirectoryChange) {
+ public boolean editProperties(PipelineMeta pipelineMeta, HopGui hopGui) {
return editProperties(pipelineMeta, hopGui, null);
}
@@ -4770,18 +4752,6 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
});
}
- private String[] convertArguments(Map<String, String> arguments) {
- String[] argumentNames = arguments.keySet().toArray(new
String[arguments.size()]);
- Arrays.sort(argumentNames);
-
- String[] args = new String[argumentNames.length];
- for (int i = 0; i < args.length; i++) {
- String argumentName = argumentNames[i];
- args[i] = arguments.get(argumentName);
- }
- return args;
- }
-
@GuiToolbarElement(
root = GUI_PLUGIN_TOOLBAR_PARENT_ID,
id = TOOLBAR_ITEM_STOP,
@@ -4867,7 +4837,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
// If the pipeline is done, we want to do the end processing, etc.
//
pipeline.addExecutionFinishedListener(
- pipeline -> {
+ p -> {
checkPipelineEnded();
checkErrorVisuals();
stopRedrawTimer();
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
index a7e5b165ee..abfbcdb952 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/workflow/HopGuiWorkflowGraph.java
@@ -347,6 +347,7 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
private Point[] previousNoteLocations;
private ActionMeta currentAction;
private boolean ignoreNextClick;
+ private boolean avoidContextDialog;
private boolean doubleClick;
private Runnable pendingShowContextDialogRunnable;
private boolean dragSelection;
@@ -673,6 +674,9 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
// Click on the info icon means: Edit action description
//
editActionDescription((ActionMeta) areaOwner.getOwner());
+ avoidContextDialog = true;
+ currentAction = null;
+ actionDragStartScreen = null;
done = true;
break;
@@ -947,6 +951,9 @@ public class HopGuiWorkflowGraph extends HopGuiAbstractGraph
return;
}
break;
+ case ACTION_INFO_ICON:
+ // Description edit was handled in mouseDown; do not open the action
context menu
+ return;
default:
break;
}
@@ -1144,6 +1151,12 @@ public class HopGuiWorkflowGraph extends
HopGuiAbstractGraph
}
clickedWorkflowHop = null;
+ if (avoidContextDialog) {
+ avoidContextDialog = false;
+ selectionRegion = null;
+ return;
+ }
+
// Only do this "mouseUp()" if this is not part of a double click...
//
final boolean fSingleClick = singleClick;