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 }