package rabbitescape.ui.swing;
import java.awt.Component;
import java.awt.Desktop;
import java.io.IOException;
import java.net.URISyntaxException;
import javax.swing.JOptionPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
/**
* Listener that opens the user's browser when the user clicks a hyperlink.
*/
public class OpenLinkInDesktopBrowser implements HyperlinkListener
{
private final Component m_parent;
public OpenLinkInDesktopBrowser( Component parent )
{
m_parent = parent;
}
@Override
public void hyperlinkUpdate( HyperlinkEvent event )
{
if ( event.getEventType() == HyperlinkEvent.EventType.ACTIVATED )
{
if ( Desktop.isDesktopSupported() )
{
try
{
Desktop.getDesktop().browse( event.getURL().toURI() );
}
catch ( IOException | URISyntaxException e )
{
e.printStackTrace();
JOptionPane.showMessageDialog(
m_parent,
"Error opening link: " + e.getMessage(),
"Failed to open URL",
JOptionPane.ERROR_MESSAGE
);
}
}
}
}
}