package comeon.ui.actions; import comeon.ui.UI; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public final class HelpManualAction extends BaseAction { private static final Logger LOGGER = LoggerFactory.getLogger(HelpManualAction.class); private static final long serialVersionUID = 1L; public HelpManualAction() throws URISyntaxException { super("manual", KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)); } @Override public void actionPerformed(final ActionEvent e) { try { final URI manualUri = new URI(UI.BUNDLE.getString("manual.url")); if (Desktop.isDesktopSupported()) { final Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.BROWSE)) { SwingUtilities.invokeLater(() -> { try { desktop.browse(manualUri); } catch (final IOException ex) { JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), ex.getLocalizedMessage(), UI.BUNDLE.getString("error.generic.title"), JOptionPane.ERROR_MESSAGE); } }); } } } catch (final URISyntaxException ex) { LOGGER.error("Malformed help manual URI", ex); SwingUtilities.invokeLater(() -> JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), ex.getLocalizedMessage(), UI.BUNDLE.getString("error.generic.title"), JOptionPane.ERROR_MESSAGE)); } } }