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 static org.openstreetmap.josm.tools.I18n.tr;
006 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
007
008 import java.awt.event.KeyEvent;
009
010 import java.util.Collection;
011 import org.openstreetmap.josm.Main;
012 import org.openstreetmap.josm.data.osm.DataSet;
013 import org.openstreetmap.josm.data.osm.OsmPrimitive;
014 import org.openstreetmap.josm.gui.dialogs.InspectPrimitiveDialog;
015 import org.openstreetmap.josm.tools.Shortcut;
016
017 public class InfoAction extends JosmAction {
018
019 public InfoAction() {
020 super(tr("Advanced info"), "about",
021 tr("Display advanced object information about OSM nodes, ways, or relations."),
022 Shortcut.registerShortcut("core:info",
023 tr("Advanced info"), KeyEvent.VK_I, Shortcut.CTRL),
024 true, "action/info", true);
025 putValue("help", ht("/Action/InfoAboutElements"));
026 }
027
028 @Override
029 public void actionPerformed(ActionEvent ae) {
030 DataSet set = getCurrentDataSet();
031 if (set != null) {
032 new InspectPrimitiveDialog(set.getAllSelected(), Main.map.mapView.getEditLayer()).showDialog();
033 }
034 }
035
036 @Override
037 public void updateEnabledState() {
038 if (getCurrentDataSet() == null) {
039 setEnabled(false);
040 } else {
041 updateEnabledState(getCurrentDataSet().getAllSelected());
042 }
043 }
044
045 @Override
046 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
047 setEnabled(!selection.isEmpty());
048 }
049 }