001 //License: GPL. Copyright 2007 by Immanuel Scholz and others
002 package org.openstreetmap.josm.actions;
003
004 import java.awt.event.ActionEvent;
005 import java.awt.event.KeyEvent;
006 import java.util.Collection;
007
008 import org.openstreetmap.josm.Main;
009 import org.openstreetmap.josm.data.osm.DataSet;
010 import org.openstreetmap.josm.data.osm.OsmPrimitive;
011 import org.openstreetmap.josm.gui.history.HistoryBrowserDialogManager;
012 import org.openstreetmap.josm.tools.Shortcut;
013
014 import static org.openstreetmap.josm.tools.I18n.tr;
015 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
016
017 public class HistoryInfoAction extends JosmAction {
018
019 public HistoryInfoAction() {
020 super(tr("History"), "about",
021 tr("Display history information about OSM ways, nodes, or relations."),
022 Shortcut.registerShortcut("core:historyinfo",
023 tr("History"), KeyEvent.VK_H, Shortcut.CTRL), false);
024 putValue("help", ht("/Action/ObjectHistory"));
025 putValue("toolbar", "action/historyinfo");
026 Main.toolbar.register(this);
027 }
028
029 @Override
030 public void actionPerformed(ActionEvent ae) {
031 DataSet set = getCurrentDataSet();
032 if (set != null) {
033 HistoryBrowserDialogManager.getInstance().showHistory(set.getAllSelected());
034 }
035 }
036
037 @Override
038 public void updateEnabledState() {
039 if (getCurrentDataSet() == null) {
040 setEnabled(false);
041 } else {
042 updateEnabledState(getCurrentDataSet().getAllSelected());
043 }
044 }
045
046 @Override
047 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
048 setEnabled(!selection.isEmpty());
049 }
050 }