// License: GPL. Copyright 2007 by Immanuel Scholz and others package org.openstreetmap.josm.actions; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.Component; import java.awt.Point; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.SwingUtilities; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.gui.help.HelpBrowser; import org.openstreetmap.josm.gui.help.HelpUtil; import org.openstreetmap.josm.tools.ImageProvider; /** * Open a help browser and displays lightweight online help. * */ public class HelpAction extends AbstractAction { public HelpAction() { super(tr("Help"), ImageProvider.get("help")); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == null) { String topic; if (e.getSource() instanceof Component) { Component c = SwingUtilities.getRoot((Component)e.getSource()); Point mouse = c.getMousePosition(); if (mouse != null) { c = SwingUtilities.getDeepestComponentAt(c, mouse.x, mouse.y); topic = HelpUtil.getContextSpecificHelpTopic(c); } else { topic = null; } } else { Point mouse = Main.parent.getMousePosition(); topic = HelpUtil.getContextSpecificHelpTopic(SwingUtilities.getDeepestComponentAt(Main.parent, mouse.x, mouse.y)); } if (topic == null) { HelpBrowser.setUrlForHelpTopic("/"); } else { HelpBrowser.setUrlForHelpTopic(topic); } } else { HelpBrowser.setUrlForHelpTopic("/"); } } }