create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / gui / help / tours / SlideShowLinkListener.java
1 package net.sf.openrocket.gui.help.tours;
2
3 import java.awt.Desktop;
4 import java.awt.Window;
5 import java.net.URL;
6
7 import javax.swing.JOptionPane;
8 import javax.swing.event.HyperlinkEvent;
9 import javax.swing.event.HyperlinkEvent.EventType;
10 import javax.swing.event.HyperlinkListener;
11
12 import net.sf.openrocket.l10n.Translator;
13 import net.sf.openrocket.logging.LogHelper;
14 import net.sf.openrocket.startup.Application;
15
16 public class SlideShowLinkListener implements HyperlinkListener {
17         
18         private static final LogHelper log = Application.getLogger();
19         private static final Translator trans = Application.getTranslator();
20         
21         private final Window parent;
22         
23         public SlideShowLinkListener(Window parent) {
24                 this.parent = parent;
25         }
26         
27         @Override
28         public void hyperlinkUpdate(HyperlinkEvent event) {
29                 
30                 if (event.getEventType() != EventType.ACTIVATED) {
31                         return;
32                 }
33                 
34                 URL url = event.getURL();
35                 if (url != null && (url.getProtocol().equalsIgnoreCase("http") || url.getProtocol().equals("https"))) {
36                         
37                         if (Desktop.isDesktopSupported()) {
38                                 try {
39                                         Desktop.getDesktop().browse(url.toURI());
40                                 } catch (Exception e) {
41                                         // Ignore
42                                 }
43                         }
44                         
45                 } else {
46                         
47                         String name = event.getDescription();
48                         try {
49                                 SlideSet ss = SlideSetManager.getSlideSetManager().getSlideSet(name);
50                                 
51                                 SlideShowDialog dialog = new SlideShowDialog(parent);
52                                 dialog.setSlideSet(ss, 0);
53                                 dialog.setVisible(true);
54                         } catch (IllegalArgumentException e) {
55                                 log.warn("Guided tour '" + name + "' not found");
56                                 JOptionPane.showMessageDialog(parent,
57                                                 trans.get("error.msg"), trans.get("error.title"), JOptionPane.WARNING_MESSAGE);
58                         }
59                         
60                 }
61                 
62         }
63 }