package net.sf.openrocket.gui.help.tours;
import java.awt.Desktop;
import java.awt.Window;
import java.net.URL;
import javax.swing.JOptionPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkEvent.EventType;
import javax.swing.event.HyperlinkListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.startup.Application;
public class SlideShowLinkListener implements HyperlinkListener {
private static final Logger log = LoggerFactory.getLogger(SlideShowLinkListener.class);
private static final Translator trans = Application.getTranslator();
private final Window parent;
public SlideShowLinkListener(Window parent) {
this.parent = parent;
}
@Override
public void hyperlinkUpdate(HyperlinkEvent event) {
if (event.getEventType() != EventType.ACTIVATED) {
return;
}
URL url = event.getURL();
if (url != null && (url.getProtocol().equalsIgnoreCase("http") || url.getProtocol().equals("https"))) {
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().browse(url.toURI());
} catch (Exception e) {
// Ignore
}
}
} else {
String name = event.getDescription();
try {
SlideSet ss = SlideSetManager.getSlideSetManager().getSlideSet(name);
SlideShowDialog dialog = new SlideShowDialog(parent);
dialog.setSlideSet(ss, 0);
dialog.setVisible(true);
} catch (IllegalArgumentException e) {
log.warn("Guided tour '" + name + "' not found");
JOptionPane.showMessageDialog(parent,
trans.get("error.msg"), trans.get("error.title"), JOptionPane.WARNING_MESSAGE);
}
}
}
}