5fc1d888ac82af680d1d46cba724da5f4d97ddcb
[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.event.HyperlinkEvent;
8 import javax.swing.event.HyperlinkEvent.EventType;
9 import javax.swing.event.HyperlinkListener;
10
11 import net.sf.openrocket.startup.Application;
12
13 public class SlideShowLinkListener implements HyperlinkListener {
14         
15         private final Window parent;
16         
17         public SlideShowLinkListener(Window parent) {
18                 this.parent = parent;
19         }
20         
21         @Override
22         public void hyperlinkUpdate(HyperlinkEvent event) {
23                 
24                 if (event.getEventType() != EventType.ACTIVATED) {
25                         return;
26                 }
27                 
28                 URL url = event.getURL();
29                 if (url != null && (url.getProtocol().equalsIgnoreCase("http") || url.getProtocol().equals("https"))) {
30                         
31                         if (Desktop.isDesktopSupported()) {
32                                 try {
33                                         Desktop.getDesktop().browse(url.toURI());
34                                 } catch (Exception e) {
35                                         // Ignore
36                                 }
37                         }
38                         
39                 } else {
40                         
41                         String name = event.getDescription();
42                         try {
43                                 SlideSet ss = SlideSetManager.getSlideSetManager().getSlideSet(name);
44                                 
45                                 SlideShowDialog dialog = new SlideShowDialog(parent);
46                                 dialog.setSlideSet(ss, 0);
47                                 dialog.setVisible(true);
48                         } catch (IllegalArgumentException e) {
49                                 Application.getExceptionHandler().handleErrorCondition("Guided tour '" + name + "' not found.");
50                         }
51                         
52                 }
53                 
54         }
55 }