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.

Reply via email to