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 a4a556c23a Issue #6674 (#6675)
a4a556c23a is described below
commit a4a556c23a89a23e11925762c3f7cc89f7934e2f
Author: Matt Casters <[email protected]>
AuthorDate: Sat Feb 28 13:07:55 2026 +0100
Issue #6674 (#6675)
* Issue #6674
* Issue #6674 (typo)
---
engine/src/main/java/org/apache/hop/core/gui/IGc.java | 1 +
engine/src/main/java/org/apache/hop/core/gui/SvgGc.java | 8 +++++++-
.../main/java/org/apache/hop/pipeline/PipelinePainter.java | 14 ++++++++++----
ui/src/main/java/org/apache/hop/ui/core/PropsUi.java | 9 +++++++++
.../main/java/org/apache/hop/ui/core/gui/GuiResource.java | 4 ++--
.../hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java | 2 ++
.../configuration/tabs/ConfigGuiOptionsTab.java | 13 +++++++++++++
.../main/java/org/apache/hop/ui/hopgui/shared/SwtGc.java | 3 +++
.../hop/ui/core/dialog/messages/messages_en_US.properties | 2 ++
9 files changed, 49 insertions(+), 7 deletions(-)
diff --git a/engine/src/main/java/org/apache/hop/core/gui/IGc.java
b/engine/src/main/java/org/apache/hop/core/gui/IGc.java
index 2d9c38c59c..745e0eea31 100644
--- a/engine/src/main/java/org/apache/hop/core/gui/IGc.java
+++ b/engine/src/main/java/org/apache/hop/core/gui/IGc.java
@@ -50,6 +50,7 @@ public interface IGc {
NOTE,
GRAPH,
SMALL,
+ TINY,
}
enum ELineStyle {
diff --git a/engine/src/main/java/org/apache/hop/core/gui/SvgGc.java
b/engine/src/main/java/org/apache/hop/core/gui/SvgGc.java
index 76f1a99cd7..883c8a3c91 100644
--- a/engine/src/main/java/org/apache/hop/core/gui/SvgGc.java
+++ b/engine/src/main/java/org/apache/hop/core/gui/SvgGc.java
@@ -125,6 +125,8 @@ public class SvgGc implements IGc {
private Font fontSmall;
+ private Font fontTiny;
+
private int lineWidth;
private ELineStyle lineStyle;
@@ -255,6 +257,7 @@ public class SvgGc implements IGc {
fontGraph = new Font(CONST_FREESANS, Font.PLAIN, 10);
fontNote = new Font(CONST_FREESANS, Font.PLAIN, 10);
fontSmall = new Font(CONST_FREESANS, Font.PLAIN, 8);
+ fontTiny = new Font(CONST_FREESANS, Font.PLAIN, 6);
gc.setFont(fontGraph);
@@ -372,7 +375,7 @@ public class SvgGc implements IGc {
public void setAlpha(int alpha) {
this.alpha = alpha;
AlphaComposite alphaComposite =
- AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha / 255);
+ AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) alpha /
255);
gc.setComposite(alphaComposite);
}
@@ -422,6 +425,9 @@ public class SvgGc implements IGc {
case SMALL:
gc.setFont(fontSmall);
break;
+ case TINY:
+ gc.setFont(fontTiny);
+ break;
default:
break;
}
diff --git a/engine/src/main/java/org/apache/hop/pipeline/PipelinePainter.java
b/engine/src/main/java/org/apache/hop/pipeline/PipelinePainter.java
index 1854417411..d414eb51c5 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/PipelinePainter.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/PipelinePainter.java
@@ -22,6 +22,8 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import lombok.Getter;
+import lombok.Setter;
import org.apache.hop.core.Const;
import org.apache.hop.core.NotePadMeta;
import org.apache.hop.core.exception.HopException;
@@ -55,6 +57,8 @@ import org.apache.hop.pipeline.transform.stream.IStream;
import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
import org.apache.hop.pipeline.transform.stream.StreamIcon;
+@Getter
+@Setter
public class PipelinePainter extends BasePainter<PipelineHopMeta,
TransformMeta> {
private static final Class<?> PKG = PipelinePainter.class;
@@ -77,6 +81,7 @@ public class PipelinePainter extends
BasePainter<PipelineHopMeta, TransformMeta>
private boolean slowTransformIndicatorEnabled;
private Map<String, RowBuffer> outputRowsMap;
private Map<String, Object> stateMap;
+ private boolean showingSelectedTransformMetrics = true;
public static final String[] magnificationDescriptions =
new String[] {"1000%", "800%", "600%", "400%", "200%", "150%", "100%",
"75%", "50%", "25%"};
@@ -363,8 +368,10 @@ public class PipelinePainter extends
BasePainter<PipelineHopMeta, TransformMeta>
}
// Draw performance table for selected transform(s)
- for (TransformMeta transformMeta : pipelineMeta.getTransforms()) {
- drawTransformPerformanceTable(transformMeta);
+ if (showingSelectedTransformMetrics) {
+ for (TransformMeta transformMeta : pipelineMeta.getTransforms()) {
+ drawTransformPerformanceTable(transformMeta);
+ }
}
// Display a red cross on the indicated location signaling to the user
that the transform in
@@ -460,7 +467,6 @@ public class PipelinePainter extends
BasePainter<PipelineHopMeta, TransformMeta>
}
private void drawTransformPerformanceTable(TransformMeta transformMeta) {
-
if (transformMeta == null) {
return;
}
@@ -489,7 +495,7 @@ public class PipelinePainter extends
BasePainter<PipelineHopMeta, TransformMeta>
int popupWidth = 0;
int popupHeight = 1;
- gc.setFont(EFont.SMALL);
+ gc.setFont(EFont.TINY);
Point p = gc.textExtent("0000000000");
int colWidth = p.x + MINI_ICON_MARGIN;
int rowHeight = p.y + MINI_ICON_MARGIN;
diff --git a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
index 68eba5018f..ee40faf5bd 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
@@ -84,6 +84,7 @@ public class PropsUi extends Props {
private static final String GRAPH_EXTRA_VIEW_VERTICAL_ORIENTATION =
"GraphExtraViewVerticalOrientation";
private static final String DISABLE_ZOOM_SCROLLING = "DisableZoomScrolling";
+ private static final String METRICS_ABOVE_SELECTED_TRANSFORMS =
"MetricsAboveSelectedTransforms";
private static final String ENABLE_INFINITE_CANVAS_MOVE =
"EnableInfiniteCanvasMove";
private static final String USE_ADVANCED_TERMINAL = "UseAdvancedTerminal";
private static final String RESET_DIALOG_POSITIONS_ON_RESTART =
"ResetDialogPositionsOnRestart";
@@ -1330,6 +1331,14 @@ public class PropsUi extends Props {
setProperty(DISABLE_ZOOM_SCROLLING, disabled ? YES : NO);
}
+ public boolean isShowingMetricsAboveRunningTransforms() {
+ return YES.equalsIgnoreCase(getProperty(METRICS_ABOVE_SELECTED_TRANSFORMS,
YES));
+ }
+
+ public void setShowingMetricsAboveRunningTransforms(boolean enabled) {
+ setProperty(METRICS_ABOVE_SELECTED_TRANSFORMS, enabled ? YES : NO);
+ }
+
public boolean isInfiniteCanvasMoveEnabled() {
return YES.equalsIgnoreCase(getProperty(ENABLE_INFINITE_CANVAS_MOVE, NO));
}
diff --git a/ui/src/main/java/org/apache/hop/ui/core/gui/GuiResource.java
b/ui/src/main/java/org/apache/hop/ui/core/gui/GuiResource.java
index 3146930e99..3ba29df6bd 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/gui/GuiResource.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/gui/GuiResource.java
@@ -658,13 +658,13 @@ public class GuiResource {
fontLarge = new ManagedFont(display, largeFontData);
// Create a tiny version of the graph font
- int tinyFontSize = mediumFontSize - 2;
+ int tinyFontSize = (int) (graphFontSize * 0.50f);
FontData tinyFontData =
new FontData(graphFontData.getName(), tinyFontSize,
graphFontData.getStyle());
fontTiny = new ManagedFont(display, tinyFontData);
// Create a small version of the graph font
- int smallFontSize = mediumFontSize - 1;
+ int smallFontSize = (int) (graphFontSize * 0.75f);
FontData smallFontData =
new FontData(graphFontData.getName(), smallFontSize,
graphFontData.getStyle());
fontSmall = new ManagedFont(display, smallFontData);
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 d9b1b6d06e..f40d80f903 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
@@ -3650,6 +3650,8 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
pipelinePainter.setScreenMagnification(magnification);
pipelinePainter.setShowingNavigationView(!PropsUi.getInstance().isHideViewportEnabled());
pipelinePainter.setShowOriginBoundary(PropsUi.getInstance().isInfiniteCanvasMoveEnabled());
+ pipelinePainter.setShowingSelectedTransformMetrics(
+ PropsUi.getInstance().isShowingMetricsAboveRunningTransforms());
try {
pipelinePainter.drawPipelineImage();
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
index c593a8d58b..ac975199e1 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
@@ -94,6 +94,7 @@ public class ConfigGuiOptionsTab {
private Button wDrawBorderAroundCanvasNames;
private Button wEnableInfiniteMove;
private Button wDisableZoomScrolling;
+ private Button wMetricsOnTransforms;
private Button wHideMenuBar;
private Button wShowTableViewToolbar;
private Button wMetricsPanelShowUnits;
@@ -649,6 +650,17 @@ public class ConfigGuiOptionsTab {
props.isZoomScrollingDisabled(),
lastCanvasControl,
margin);
+ lastCanvasControl = wDisableZoomScrolling;
+
+ // Show metrics above running transforms?
+ wMetricsOnTransforms =
+ createCheckbox(
+ canvasContent,
+ "EnterOptionsDialog.ShowMetricsOnSelectedTransforms.Label",
+ "EnterOptionsDialog.ShowMetricsOnSelectedTransforms.ToolTip",
+ props.isShowingMetricsAboveRunningTransforms(),
+ lastCanvasControl,
+ margin);
// Create the expand item
ExpandItem canvasItem = new ExpandItem(canvasExpandBar, SWT.NONE);
@@ -1085,6 +1097,7 @@ public class ConfigGuiOptionsTab {
props.setDrawBorderAroundCanvasNames(wDrawBorderAroundCanvasNames.getSelection());
props.setInfiniteCanvasMoveEnabled(wEnableInfiniteMove.getSelection());
props.setZoomScrollingDisabled(wDisableZoomScrolling.getSelection());
+
props.setShowingMetricsAboveRunningTransforms(wMetricsOnTransforms.getSelection());
// On macOS (and other non-Windows), dark mode follows system; persist
system theme, not
// checkbox. In Web environment, isSystemDarkTheme() is not available.
boolean darkMode;
diff --git a/ui/src/main/java/org/apache/hop/ui/hopgui/shared/SwtGc.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/shared/SwtGc.java
index 51b5317bc5..b979f04359 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/shared/SwtGc.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/shared/SwtGc.java
@@ -332,6 +332,9 @@ public class SwtGc implements IGc {
case SMALL:
gc.setFont(GuiResource.getInstance().getFontSmall());
break;
+ case TINY:
+ gc.setFont(GuiResource.getInstance().getFontTiny());
+ break;
default:
break;
}
diff --git
a/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
b/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
index d424e9ca57..6adf12d070 100644
---
a/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
+++
b/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
@@ -131,6 +131,8 @@ EnterOptionsDialog.DialogMiddlePercentage.Label=Dialog
middle percentage:
EnterOptionsDialog.DrawBorderAroundCanvasNamesOnCanvas.Label=Draw border
around Action/Transform names on canvas
EnterOptionsDialog.DisableZoomScrolling.Label=Disable zoom scrolling
EnterOptionsDialog.DisableZoomScrolling.ToolTip=When enabled, the mouse scroll
wheel will not zoom in/out on the canvas
+EnterOptionsDialog.ShowMetricsOnSelectedTransforms.Label=Metrics above
selected running transforms?
+EnterOptionsDialog.ShowMetricsOnSelectedTransforms.Tooltip=Enable to show
metrics above selected transforms in a running pipeline.
EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=Auto collapse
palette tree
EnterOptionsDialog.EnableInfiniteMove.Label=Enable infinite move
EnterOptionsDialog.EnableInfiniteMove.ToolTip=When enabled, you can pan the
pipeline and workflow canvas in all directions without being limited by the
origin.