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    }