Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/HelpTagAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/HelpTagAction.java	(revision 16273)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/HelpTagAction.java	(revision 16274)
@@ -8,7 +8,9 @@
 import java.util.Objects;
 import java.util.function.IntFunction;
+import java.util.function.Supplier;
 
 import javax.swing.JTable;
 
+import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.gui.MainApplication;
 
@@ -18,7 +20,15 @@
  */
 public class HelpTagAction extends HelpAction {
-    private final JTable tagTable;
-    private final IntFunction<String> tagKeySupplier;
-    private final IntFunction<Map<String, Integer>> tagValuesSupplier;
+    private final Supplier<Tag> tagSupplier;
+
+    /**
+     * Constructs a new {@code HelpAction}.
+     * @param tagSupplier Supplies the tag for which the help should be shown
+     * @since 16274
+     */
+    public HelpTagAction(Supplier<Tag> tagSupplier) {
+        this.tagSupplier = Objects.requireNonNull(tagSupplier);
+        putValue(NAME, tr("Go to OSM wiki for tag help"));
+    }
 
     /**
@@ -29,7 +39,16 @@
      */
     public HelpTagAction(JTable tagTable, IntFunction<String> tagKeySupplier, IntFunction<Map<String, Integer>> tagValuesSupplier) {
-        this.tagTable = Objects.requireNonNull(tagTable);
-        this.tagKeySupplier = Objects.requireNonNull(tagKeySupplier);
-        this.tagValuesSupplier = Objects.requireNonNull(tagValuesSupplier);
+        this.tagSupplier = () -> {
+            if (tagTable.getSelectedRowCount() == 1) {
+                int row = tagTable.getSelectedRow();
+                String key = tagKeySupplier.apply(row);
+                Map<String, Integer> m = tagValuesSupplier.apply(row);
+                if (!m.isEmpty()) {
+                    String val = m.entrySet().iterator().next().getKey();
+                    return new Tag(key, val);
+                }
+            }
+            return null;
+        };
         putValue(NAME, tr("Go to OSM wiki for tag help"));
     }
@@ -37,12 +56,7 @@
     @Override
     public void actionPerformed(ActionEvent e) {
-        if (tagTable.getSelectedRowCount() == 1) {
-            int row = tagTable.getSelectedRow();
-            String key = tagKeySupplier.apply(row);
-            Map<String, Integer> m = tagValuesSupplier.apply(row);
-            if (!m.isEmpty()) {
-                String val = m.entrySet().iterator().next().getKey();
-                MainApplication.worker.execute(() -> displayTagHelp(key, val));
-            }
+        Tag tag = tagSupplier.get();
+        if (tag != null) {
+            MainApplication.worker.execute(() -> displayTagHelp(tag.getKey(), tag.getValue()));
         } else {
             super.actionPerformed(e);
