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", 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}