001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.actions;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.awt.event.ActionEvent;
007import java.awt.event.KeyEvent;
008
009import org.openstreetmap.josm.tools.BugReportExceptionHandler;
010import org.openstreetmap.josm.tools.OpenBrowser;
011import org.openstreetmap.josm.tools.Shortcut;
012import org.openstreetmap.josm.tools.Utils;
013
014/**
015 * Reports a ticket to JOSM bugtracker.
016 * @since 7624
017 */
018public class ReportBugAction extends JosmAction {
019
020    /**
021     * Constructs a new {@code ReportBugAction}.
022     */
023    public ReportBugAction() {
024        super(tr("Report bug"), "bug.png", tr("Report a ticket to JOSM bugtracker"),
025                Shortcut.registerShortcut("reportbug", tr("Report a ticket to JOSM bugtracker"),
026                        KeyEvent.CHAR_UNDEFINED, Shortcut.NONE), true);
027    }
028
029    @Override
030    public void actionPerformed(ActionEvent e) {
031        reportBug();
032    }
033
034    /**
035     * Reports a ticket to JOSM bugtracker.
036     */
037    public static void reportBug() {
038        reportBug(ShowStatusReportAction.getReportHeader());
039    }
040
041    /**
042     * Reports a ticket to JOSM bugtracker with given status report.
043     * @param report Status report header containing technical, non-personal information
044     */
045    public static void reportBug(String report) {
046        OpenBrowser.displayUrl(BugReportExceptionHandler.getBugReportUrl(
047                Utils.strip(report)).toExternalForm());
048    }
049}