001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.help;
003
004 import java.awt.event.ActionEvent;
005 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
006
007 import javax.swing.AbstractAction;
008 import static org.openstreetmap.josm.tools.I18n.tr;
009
010 import org.openstreetmap.josm.tools.ImageProvider;
011
012 /**
013 * This is the standard help action to be used with help buttons for
014 * context sensitive help
015 *
016 */
017 public class ContextSensitiveHelpAction extends AbstractAction {
018
019 /** the help topic */
020 private String helpTopic;
021
022 /**
023 * Sets the help topic
024 *
025 * @param relativeHelpTopic the relative help topic
026 */
027 public void setHelpTopic(String relativeHelpTopic) {
028 if (relativeHelpTopic == null)
029 relativeHelpTopic = "/";
030 this.helpTopic = relativeHelpTopic;
031 }
032
033 /**
034 * Creates a help topic for the root help topic
035 *
036 */
037 public ContextSensitiveHelpAction() {
038 this(ht("/"));
039 }
040
041 /**
042 *
043 * @param helpTopic
044 */
045 public ContextSensitiveHelpAction(String helpTopic) {
046 putValue(SHORT_DESCRIPTION, tr("Show help information"));
047 putValue(NAME, tr("Help"));
048 putValue(SMALL_ICON, ImageProvider.get("help"));
049 this.helpTopic = helpTopic;
050 }
051
052 public void actionPerformed(ActionEvent e) {
053 if (helpTopic != null) {
054 HelpBrowser.setUrlForHelpTopic(helpTopic);
055 }
056 }
057 }