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 84abea2f98 issue #7434 : A simple ShowRowsDialog (#7483)
84abea2f98 is described below

commit 84abea2f987a6e18dd85a4a87b5899599ff4dea7
Author: Matt Casters <[email protected]>
AuthorDate: Mon Jul 13 16:18:13 2026 +0200

    issue #7434 : A simple ShowRowsDialog (#7483)
---
 .../xp/ValidatePipelineUnitTestExtensionPoint.java |  29 +--
 .../org/apache/hop/ui/testing/DataSetEditor.java   |  16 +-
 .../ui/testing/messages/messages_en_US.properties  |   2 +
 .../database/dialog/DatabaseExplorerDialog.java    |  15 +-
 .../hop/ui/core/database/dialog/SqlEditor.java     |   6 +-
 .../hop/ui/core/dialog/PreviewRowsDialog.java      |   6 +-
 .../apache/hop/ui/core/dialog/ShowRowsDialog.java  | 236 +++++++++++++++++++++
 .../hopgui/file/pipeline/HopGuiPipelineGraph.java  |  15 +-
 .../dialog/messages/messages_en_US.properties      |   3 +
 .../core/dialog/messages/messages_en_US.properties |   2 +
 10 files changed, 288 insertions(+), 42 deletions(-)

diff --git 
a/plugins/misc/testing/src/main/java/org/apache/hop/testing/xp/ValidatePipelineUnitTestExtensionPoint.java
 
b/plugins/misc/testing/src/main/java/org/apache/hop/testing/xp/ValidatePipelineUnitTestExtensionPoint.java
index 586def91f8..58cb84a3b7 100644
--- 
a/plugins/misc/testing/src/main/java/org/apache/hop/testing/xp/ValidatePipelineUnitTestExtensionPoint.java
+++ 
b/plugins/misc/testing/src/main/java/org/apache/hop/testing/xp/ValidatePipelineUnitTestExtensionPoint.java
@@ -32,9 +32,8 @@ import org.apache.hop.pipeline.engine.IPipelineEngine;
 import org.apache.hop.testing.PipelineUnitTest;
 import org.apache.hop.testing.UnitTestResult;
 import org.apache.hop.testing.util.DataSetConst;
-import org.apache.hop.ui.core.dialog.PreviewRowsDialog;
+import org.apache.hop.ui.core.dialog.ShowRowsDialog;
 import org.apache.hop.ui.hopgui.HopGui;
-import org.eclipse.swt.SWT;
 
 @ExtensionPoint(
     extensionPointId = "PipelineFinish",
@@ -130,22 +129,14 @@ public class ValidatePipelineUnitTestExtensionPoint
         .getShell()
         .getDisplay()
         .asyncExec(
-            () -> {
-              PreviewRowsDialog dialog =
-                  new PreviewRowsDialog(
-                      hopGui.getShell(),
-                      pipeline,
-                      SWT.NONE,
-                      "Unit test results",
-                      UnitTestResult.getRowMeta(),
-                      UnitTestResult.getRowData(results));
-              dialog.setDynamic(false);
-              dialog.setProposingToGetMoreRows(false);
-              dialog.setProposingToStop(false);
-              dialog.setTitleMessage(
-                  BaseMessages.getString(PKG, "UnitTestsResult.Dialog.Header"),
-                  BaseMessages.getString(PKG, 
"UnitTestsResult.Dialog.Message"));
-              dialog.open();
-            });
+            () ->
+                new ShowRowsDialog(
+                        hopGui.getShell(),
+                        pipeline,
+                        BaseMessages.getString(PKG, 
"UnitTestsResult.Dialog.Header"),
+                        BaseMessages.getString(PKG, 
"UnitTestsResult.Dialog.Message"),
+                        UnitTestResult.getRowMeta(),
+                        UnitTestResult.getRowData(results))
+                    .open());
   }
 }
diff --git 
a/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/DataSetEditor.java
 
b/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/DataSetEditor.java
index 4ea9444300..e9053b135f 100644
--- 
a/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/DataSetEditor.java
+++ 
b/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/DataSetEditor.java
@@ -34,7 +34,7 @@ import org.apache.hop.testing.DataSetField;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
 import org.apache.hop.ui.core.dialog.MessageBox;
-import org.apache.hop.ui.core.dialog.PreviewRowsDialog;
+import org.apache.hop.ui.core.dialog.ShowRowsDialog;
 import org.apache.hop.ui.core.metadata.MetadataEditor;
 import org.apache.hop.ui.core.metadata.MetadataManager;
 import org.apache.hop.ui.core.widget.ColumnInfo;
@@ -392,13 +392,17 @@ public class DataSetEditor extends 
MetadataEditor<DataSet> {
       List<Object[]> setRows = set.getAllRows(manager.getVariables(), 
LogChannel.UI);
       IRowMeta setRowMeta = set.getSetRowMeta();
 
-      PreviewRowsDialog previewRowsDialog =
-          new PreviewRowsDialog(
-              parent.getShell(), new Variables(), SWT.NONE, set.getName(), 
setRowMeta, setRows);
-      previewRowsDialog.open();
+      new ShowRowsDialog(
+              parent.getShell(),
+              manager.getVariables(),
+              BaseMessages.getString(PKG, "DataSetDialog.ViewRows.Title"),
+              BaseMessages.getString(PKG, "DataSetDialog.ViewRows.Message", 
set.getName()),
+              setRowMeta,
+              setRows)
+          .open();
 
     } catch (Exception e) {
-      new ErrorDialog(getShell(), CONST_ERROR, "Error previewing data from 
dataset table", e);
+      new ErrorDialog(getShell(), CONST_ERROR, "Error viewing data from 
dataset table", e);
     }
   }
 
diff --git 
a/plugins/misc/testing/src/main/resources/org/apache/hop/ui/testing/messages/messages_en_US.properties
 
b/plugins/misc/testing/src/main/resources/org/apache/hop/ui/testing/messages/messages_en_US.properties
index 31bdb3eae8..a47835e20f 100644
--- 
a/plugins/misc/testing/src/main/resources/org/apache/hop/ui/testing/messages/messages_en_US.properties
+++ 
b/plugins/misc/testing/src/main/resources/org/apache/hop/ui/testing/messages/messages_en_US.properties
@@ -34,6 +34,8 @@ DataSetDialog.FieldMapping.Label=The data set fields and 
their column names in t
 DataSetDialog.FolderName.Label=Set folder (or use HOP_DATASETS_FOLDER)
 DataSetDialog.Name.Label=Name
 DataSetDialog.ViewData.Button=View
+DataSetDialog.ViewRows.Title=View data set rows
+DataSetDialog.ViewRows.Message=Rows of data set ''{0}''
 EditRowsDialog.Error.ErrorGettingRowForData=Error parsing data on row {0}
 EditRowsDialog.ErrorConvertingData=There was an error converting string values 
into their native data types 
 EditRowsDialog.NoRowMeta.Message=No row metadata was specified so no rows can 
be edited.
diff --git 
a/ui/src/main/java/org/apache/hop/ui/core/database/dialog/DatabaseExplorerDialog.java
 
b/ui/src/main/java/org/apache/hop/ui/core/database/dialog/DatabaseExplorerDialog.java
index a89e83a143..8fc6810e7a 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/core/database/dialog/DatabaseExplorerDialog.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/core/database/dialog/DatabaseExplorerDialog.java
@@ -44,7 +44,7 @@ import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
 import org.apache.hop.ui.core.dialog.MessageBox;
-import org.apache.hop.ui.core.dialog.PreviewRowsDialog;
+import org.apache.hop.ui.core.dialog.ShowRowsDialog;
 import org.apache.hop.ui.core.dialog.TransformFieldsDialog;
 import org.apache.hop.ui.core.gui.GuiResource;
 import org.apache.hop.ui.core.gui.GuiToolbarWidgets;
@@ -832,10 +832,15 @@ public class DatabaseExplorerDialog extends Dialog {
     List<Object[]> rows = pd.open();
     if (pd.isPreviewSucceeded()) {
       if (!rows.isEmpty()) {
-        PreviewRowsDialog prd =
-            new PreviewRowsDialog(
-                shell, variables, SWT.NONE, qualifiedTableName, 
pd.getRowMeta(), rows);
-        prd.open();
+        new ShowRowsDialog(
+                shell,
+                variables,
+                BaseMessages.getString(PKG, 
"DatabaseExplorerDialog.ShowRows.Title"),
+                BaseMessages.getString(
+                    PKG, "DatabaseExplorerDialog.ShowRows.Message", 
qualifiedTableName),
+                pd.getRowMeta(),
+                rows)
+            .open();
       } else {
         MessageBox mb = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.OK);
         mb.setMessage(BaseMessages.getString(PKG, 
"DatabaseExplorerDialog.NoRows.Message"));
diff --git 
a/ui/src/main/java/org/apache/hop/ui/core/database/dialog/SqlEditor.java 
b/ui/src/main/java/org/apache/hop/ui/core/database/dialog/SqlEditor.java
index e37639050d..d0d836dc4c 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/database/dialog/SqlEditor.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/database/dialog/SqlEditor.java
@@ -44,8 +44,8 @@ import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterTextDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
 import org.apache.hop.ui.core.dialog.MessageBox;
-import org.apache.hop.ui.core.dialog.PreviewRowsDialog;
 import org.apache.hop.ui.core.dialog.ProgressMonitorDialog;
+import org.apache.hop.ui.core.dialog.ShowRowsDialog;
 import org.apache.hop.ui.core.gui.GuiResource;
 import org.apache.hop.ui.core.gui.WindowProperty;
 import org.apache.hop.ui.core.widget.SQLStyledTextComp;
@@ -420,12 +420,12 @@ public class SqlEditor {
             .getDisplay()
             .syncExec(
                 () ->
-                    new PreviewRowsDialog(
+                    new ShowRowsDialog(
                             shell,
                             variables,
-                            SWT.NONE,
                             BaseMessages.getString(
                                 PKG, "SQLEditor.ResultRows.Title", 
Integer.toString(statNr)),
+                            BaseMessages.getString(PKG, 
"SQLEditor.ResultRows.Message"),
                             rowMeta,
                             rows)
                         .open());
diff --git 
a/ui/src/main/java/org/apache/hop/ui/core/dialog/PreviewRowsDialog.java 
b/ui/src/main/java/org/apache/hop/ui/core/dialog/PreviewRowsDialog.java
index ead736ba20..8d451aca2f 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/dialog/PreviewRowsDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/dialog/PreviewRowsDialog.java
@@ -57,7 +57,11 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
-/** Displays an ArrayList of rows in a TableView. */
+/**
+ * Displays rows for transform preview: streaming updates, optional logging 
text, and actions such
+ * as "get more rows" or stop. For a static set of rows with a custom title 
and message (no preview
+ * actions), prefer {@link ShowRowsDialog}.
+ */
 public class PreviewRowsDialog {
   private static final Class<?> PKG = PreviewRowsDialog.class;
 
diff --git a/ui/src/main/java/org/apache/hop/ui/core/dialog/ShowRowsDialog.java 
b/ui/src/main/java/org/apache/hop/ui/core/dialog/ShowRowsDialog.java
new file mode 100644
index 0000000000..bbd246ed11
--- /dev/null
+++ b/ui/src/main/java/org/apache/hop/ui/core/dialog/ShowRowsDialog.java
@@ -0,0 +1,236 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hop.ui.core.dialog;
+
+import java.util.List;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.hop.core.Const;
+import org.apache.hop.core.config.HopConfig;
+import org.apache.hop.core.exception.HopValueException;
+import org.apache.hop.core.logging.LogChannel;
+import org.apache.hop.core.row.IRowMeta;
+import org.apache.hop.core.row.IValueMeta;
+import org.apache.hop.core.util.Utils;
+import org.apache.hop.core.variables.IVariables;
+import org.apache.hop.i18n.BaseMessages;
+import org.apache.hop.ui.core.PropsUi;
+import org.apache.hop.ui.core.gui.GuiResource;
+import org.apache.hop.ui.core.gui.WindowProperty;
+import org.apache.hop.ui.core.widget.ColumnInfo;
+import org.apache.hop.ui.core.widget.TableView;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TableItem;
+
+/**
+ * Read-only dialog that shows a static set of rows with a custom title and 
header message.
+ *
+ * <p>Use this when the caller already has rows in memory and only needs to 
display them. For
+ * transform preview (streaming, "get more rows", pause/stop, logging text), 
use {@link
+ * PreviewRowsDialog} instead.
+ */
+public final class ShowRowsDialog {
+
+  private static final Class<?> PKG = ShowRowsDialog.class;
+
+  private static final int MAX_BINARY_STRING_PREVIEW_SIZE =
+      PreviewRowsDialog.MAX_BINARY_STRING_PREVIEW_SIZE;
+
+  private static final boolean AVOID_BINARY_IN_HEX =
+      Const.toBoolean(
+          
HopConfig.readStringVariable(Const.HOP_BINARY_FIELDS_AVOID_HEX_PREVIEW, 
"false"));
+
+  private final Shell parentShell;
+  private final IVariables variables;
+  private final String title;
+  private final String message;
+  private final IRowMeta rowMeta;
+  private final List<Object[]> rows;
+
+  private Shell shell;
+  private TableView tableView;
+  private int lineNr;
+
+  public ShowRowsDialog(
+      Shell parent,
+      IVariables variables,
+      String title,
+      String message,
+      IRowMeta rowMeta,
+      List<Object[]> rows) {
+    this.parentShell = parent;
+    this.variables = variables;
+    this.title = title;
+    this.message = message;
+    this.rowMeta = rowMeta;
+    this.rows = rows;
+  }
+
+  public void open() {
+    if (parentShell == null || parentShell.isDisposed()) {
+      return;
+    }
+    if (rowMeta == null || Utils.isEmpty(rows)) {
+      MessageBox messageBox =
+          new MessageBox(parentShell, SWT.OK | SWT.ICON_INFORMATION | 
SWT.APPLICATION_MODAL);
+      messageBox.setText(Utils.isEmpty(title) ? "" : title);
+      messageBox.setMessage(BaseMessages.getString(PKG, 
"ShowRowsDialog.NoRows.Message"));
+      messageBox.open();
+      return;
+    }
+
+    shell = new Shell(parentShell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | 
SWT.MIN);
+    PropsUi.setLook(shell);
+    shell.setImage(GuiResource.getInstance().getImageHopUi());
+    shell.setText(Utils.isEmpty(title) ? "" : title);
+
+    FormLayout formLayout = new FormLayout();
+    formLayout.marginWidth = PropsUi.getFormMargin();
+    formLayout.marginHeight = PropsUi.getFormMargin();
+    shell.setLayout(formLayout);
+
+    int margin = PropsUi.getMargin();
+
+    String header = Utils.isEmpty(message) ? "" : message;
+    header +=
+        " " + BaseMessages.getString(PKG, "ShowRowsDialog.NrRows", 
Integer.toString(rows.size()));
+
+    Label messageLabel = new Label(shell, SWT.LEFT);
+    messageLabel.setText(header.trim());
+    PropsUi.setLook(messageLabel);
+    FormData fdMessage = new FormData();
+    fdMessage.left = new FormAttachment(0, 0);
+    fdMessage.right = new FormAttachment(100, 0);
+    fdMessage.top = new FormAttachment(0, margin);
+    messageLabel.setLayoutData(fdMessage);
+
+    tableView = buildTableView(margin, messageLabel);
+    populateRows();
+
+    BaseDialog.defaultShellHandling(shell, c -> close(), c -> close());
+  }
+
+  private TableView buildTableView(int margin, Label messageLabel) {
+    ColumnInfo[] columns = new ColumnInfo[rowMeta.size()];
+    for (int i = 0; i < rowMeta.size(); i++) {
+      IValueMeta valueMeta = rowMeta.getValueMeta(i);
+      columns[i] =
+          new ColumnInfo(valueMeta.getName(), ColumnInfo.COLUMN_TYPE_TEXT, 
valueMeta.isNumeric());
+      columns[i].setToolTip(valueMeta.toStringMeta());
+      columns[i].setValueMeta(valueMeta);
+      columns[i].setImage(GuiResource.getInstance().getImage(valueMeta));
+      columns[i].setReadOnly(true);
+    }
+
+    TableView view =
+        new TableView(
+            variables,
+            shell,
+            SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI,
+            columns,
+            0,
+            null,
+            PropsUi.getInstance());
+    view.setShowingBlueNullValues(true);
+    view.setSortable(true);
+
+    FormData fdTable = new FormData();
+    fdTable.left = new FormAttachment(0, 0);
+    fdTable.top = new FormAttachment(messageLabel, margin);
+    fdTable.right = new FormAttachment(100, 0);
+    fdTable.bottom = new FormAttachment(100, -margin);
+    view.setLayoutData(fdTable);
+    return view;
+  }
+
+  private void populateRows() {
+    lineNr = 0;
+    for (int i = 0; i < rows.size(); i++) {
+      TableItem item;
+      if (i == 0) {
+        item = tableView.table.getItem(0);
+      } else {
+        item = new TableItem(tableView.table, SWT.NONE);
+      }
+      fillRow(item, rows.get(i));
+    }
+    if (!tableView.isDisposed()) {
+      tableView.optWidth(true, 200);
+    }
+  }
+
+  private void fillRow(TableItem item, Object[] row) {
+    if (row == null) {
+      return;
+    }
+
+    lineNr++;
+    String rowNumber;
+    try {
+      rowNumber = tableView.getNumberColumn().getValueMeta().getString((long) 
lineNr);
+    } catch (Exception e) {
+      rowNumber = Integer.toString(lineNr);
+    }
+    item.setText(0, rowNumber);
+
+    for (int column = 0; column < rowMeta.size(); column++) {
+      IValueMeta valueMeta = rowMeta.getValueMeta(column);
+      String displayValue;
+      try {
+        if (valueMeta.isBinary()) {
+          byte[] bytes = valueMeta.getBinary(row[column]);
+          if (bytes == null) {
+            displayValue = null;
+          } else {
+            displayValue =
+                AVOID_BINARY_IN_HEX ? valueMeta.getString(bytes) : 
Hex.encodeHexString(bytes);
+            if (displayValue != null && displayValue.length() > 
MAX_BINARY_STRING_PREVIEW_SIZE) {
+              displayValue = displayValue.substring(0, 
MAX_BINARY_STRING_PREVIEW_SIZE);
+            }
+          }
+        } else {
+          displayValue = valueMeta.getString(row[column]);
+        }
+      } catch (HopValueException | ArrayIndexOutOfBoundsException e) {
+        new LogChannel(PKG).logError("Unable to format cell value", e);
+        displayValue = null;
+      }
+
+      if (displayValue != null) {
+        item.setText(column + 1, 
TableView.formatCellValueForDisplay(displayValue));
+        item.setForeground(column + 1, 
GuiResource.getInstance().getColorBlack());
+      } else {
+        item.setText(column + 1, "<null>");
+        item.setForeground(column + 1, 
GuiResource.getInstance().getColorBlue());
+      }
+    }
+  }
+
+  private void close() {
+    if (shell == null || shell.isDisposed()) {
+      return;
+    }
+    PropsUi.getInstance().setScreen(new WindowProperty(shell));
+    shell.dispose();
+  }
+}
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 3c3854df29..522a8cbc37 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
@@ -144,6 +144,7 @@ import org.apache.hop.ui.core.dialog.MessageBox;
 import org.apache.hop.ui.core.dialog.MessageDialogWithToggle;
 import org.apache.hop.ui.core.dialog.PreviewRowsDialog;
 import org.apache.hop.ui.core.dialog.ProgressMonitorDialog;
+import org.apache.hop.ui.core.dialog.ShowRowsDialog;
 import org.apache.hop.ui.core.dialog.TransformFieldsDialog;
 import org.apache.hop.ui.core.gui.GuiResource;
 import org.apache.hop.ui.core.gui.GuiToolbarWidgets;
@@ -1476,19 +1477,17 @@ public class HopGuiPipelineGraph extends 
HopGuiAbstractGraph
               }
             }
 
-            PreviewRowsDialog previewRowsDialog =
-                new PreviewRowsDialog(
+            new ShowRowsDialog(
                     hopGui.getActiveShell(),
                     variables,
-                    SWT.NONE,
-                    dataTransformMeta.getName(),
+                    title,
+                    prefix + message,
                     rowBuffer.getRowMeta(),
-                    rowBuffer.getBuffer());
-            previewRowsDialog.setTitleMessage(title, prefix + message);
-            previewRowsDialog.open();
+                    rowBuffer.getBuffer())
+                .open();
           } catch (Exception ex) {
             new ErrorDialog(
-                hopGui.getActiveShell(), CONST_ERROR, "Error showing preview 
dialog", ex);
+                hopGui.getActiveShell(), CONST_ERROR, "Error showing output 
rows dialog", ex);
           }
         }
       }
diff --git 
a/ui/src/main/resources/org/apache/hop/ui/core/database/dialog/messages/messages_en_US.properties
 
b/ui/src/main/resources/org/apache/hop/ui/core/database/dialog/messages/messages_en_US.properties
index 96276a6433..8315c8e5c3 100644
--- 
a/ui/src/main/resources/org/apache/hop/ui/core/database/dialog/messages/messages_en_US.properties
+++ 
b/ui/src/main/resources/org/apache/hop/ui/core/database/dialog/messages/messages_en_US.properties
@@ -32,6 +32,8 @@ DatabaseExplorerDialog.NoRows.Message=The table contains no 
rows
 DatabaseExplorerDialog.NoRows.Title=No rows
 DatabaseExplorerDialog.PreviewTable.Message=Number of lines to preview (0 
means all lines)
 DatabaseExplorerDialog.PreviewTable.Title=Preview limit
+DatabaseExplorerDialog.ShowRows.Title=Table data
+DatabaseExplorerDialog.ShowRows.Message=Rows of table {0}
 PreviewTableSettingsDialog.Error.InvalidNumber=Enter valid whole numbers for 
rows and timeout.
 PreviewTableSettingsDialog.Error.Title=Invalid input
 PreviewTableSettingsDialog.Rows.Hint=0 means no row limit on the query (fetch 
all rows).
@@ -82,6 +84,7 @@ SQLEditor.Position.Label=Line {0} column {1}
 SQLEditor.Result.Message=The SQL statements had the following results
 SQLEditor.Result.Title=Results of the SQL statements
 SQLEditor.ResultRows.Title=SQL statement \#{0}
+SQLEditor.ResultRows.Message=Query results
 SQLEditor.Title=Simple SQL editor
 SQLEditor.WholeCacheCleared.Message=The whole database cache was cleared
 SQLEditor.WholeCacheCleared.Title=Cache geleert
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 36e49f5d15..7e0760d31b 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
@@ -294,6 +294,8 @@ PreviewRowsDialog.NrRows=({0} rows)
 PreviewRowsDialog.ShowLogging.Message=The logging text
 PreviewRowsDialog.ShowLogging.Title=Logging text
 PreviewRowsDialog.Title=Examine preview data
+ShowRowsDialog.NoRows.Message=No rows to display.
+ShowRowsDialog.NrRows=({0} rows)
 ProgressMonitorDialog.InitialTaskLabel=Apache Hop is handling a long running 
task
 ProgressMonitorDialog.Shell.Title=Progress...
 ProgressMonitorDialog.InitialSubTaskLabel=\ 

Reply via email to