Index: trunk/src/org/openstreetmap/josm/actions/AbstractShowHistoryAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AbstractShowHistoryAction.java	(revision 16495)
+++ trunk/src/org/openstreetmap/josm/actions/AbstractShowHistoryAction.java	(revision 16495)
@@ -0,0 +1,23 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import javax.swing.AbstractAction;
+
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Superclass of "History" actions in various parts of JOSM.
+ * @since xxx
+ */
+public abstract class AbstractShowHistoryAction extends AbstractAction {
+    /**
+     * Constructs a new {@code AbstractShowHistoryAction}.
+     */
+    public AbstractShowHistoryAction() {
+        putValue(NAME, tr("History"));
+        putValue(SHORT_DESCRIPTION, tr("Download and show the history of the selected objects"));
+        new ImageProvider("dialogs", "history").getResource().attachImageIcon(this, true);
+    }
+}
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 16494)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 16495)
@@ -38,4 +38,5 @@
 import javax.swing.event.PopupMenuEvent;
 
+import org.openstreetmap.josm.actions.AbstractShowHistoryAction;
 import org.openstreetmap.josm.actions.AbstractSelectAction;
 import org.openstreetmap.josm.actions.AutoScaleAction;
@@ -348,12 +349,10 @@
      * The action for showing history information of the current history item.
      */
-    class ShowHistoryAction extends AbstractAction implements ListSelectionListener, DataSelectionListener {
+    class ShowHistoryAction extends AbstractShowHistoryAction implements ListSelectionListener, DataSelectionListener {
         /**
          * Constructs a new {@code ShowHistoryAction}.
          */
         ShowHistoryAction() {
-            putValue(NAME, tr("History"));
-            putValue(SHORT_DESCRIPTION, tr("Display the history of the selected objects."));
-            new ImageProvider("dialogs", "history").getResource().attachImageIcon(this, true);
+            super();
             updateEnabledState(model.getSize());
         }
@@ -371,5 +370,5 @@
 
         protected void updateEnabledState(int osmSelectionSize) {
-            // See #10830 - allow to click on history button is a single object is selected, even if not selected again in the list
+            // See #10830 - allow to click on history button if a single object is selected, even if not selected again in the list
             setEnabled(!model.isSelectionEmpty() || osmSelectionSize == 1);
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 16494)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 16495)
@@ -35,4 +35,5 @@
 import javax.swing.event.ListSelectionListener;
 
+import org.openstreetmap.josm.actions.AbstractShowHistoryAction;
 import org.openstreetmap.josm.actions.AutoScaleAction;
 import org.openstreetmap.josm.actions.HistoryInfoAction;
@@ -223,10 +224,8 @@
     }
 
-    class ShowHistoryAction extends AbstractAction implements ListSelectionListener {
+    class ShowHistoryAction extends AbstractShowHistoryAction implements ListSelectionListener {
 
         ShowHistoryAction() {
-            putValue(NAME, tr("Show history"));
-            new ImageProvider("dialogs", "history").getResource().attachImageIcon(this);
-            putValue(SHORT_DESCRIPTION, tr("Download and show the history of the selected objects"));
+            super();
             updateEnabledState();
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 16494)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 16495)
@@ -22,4 +22,5 @@
 import javax.swing.event.ListSelectionListener;
 
+import org.openstreetmap.josm.actions.AbstractShowHistoryAction;
 import org.openstreetmap.josm.actions.AutoScaleAction;
 import org.openstreetmap.josm.actions.AutoScaleAction.AutoScaleMode;
@@ -106,5 +107,5 @@
         menu.add(new SelectPreviousGapAction());
         menu.add(new SelectNextGapAction());
-        menu.add(new HistoryInfoAction() {
+        menu.add(new AbstractShowHistoryAction() {
             @Override
             public void actionPerformed(ActionEvent ae) {
Index: trunk/src/org/openstreetmap/josm/gui/history/ShowHistoryAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/ShowHistoryAction.java	(revision 16494)
+++ trunk/src/org/openstreetmap/josm/gui/history/ShowHistoryAction.java	(revision 16495)
@@ -1,6 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.history;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.event.ActionEvent;
@@ -10,23 +8,12 @@
 import java.util.function.Function;
 
-import javax.swing.AbstractAction;
-
+import org.openstreetmap.josm.actions.AbstractShowHistoryAction;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
-import org.openstreetmap.josm.tools.ImageProvider;
 
 /**
  * Open a history browser with the history of an object.
  */
-class ShowHistoryAction extends AbstractAction {
+class ShowHistoryAction extends AbstractShowHistoryAction {
     private transient PrimitiveId primitiveId;
-
-    /**
-     * Constructs a new {@code ShowHistoryAction}.
-     */
-    ShowHistoryAction() {
-        putValue(NAME, tr("Show history"));
-        putValue(SHORT_DESCRIPTION, tr("Display the history of the selected object."));
-        new ImageProvider("dialogs", "history").getResource().attachImageIcon(this, true);
-    }
 
     @Override
