1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
package util;
import java.awt.Desktop;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
import org.apache.log4j.Logger;
public class OpenLinks {
/**
* Logger instance for this class
*/
private final static Logger LOGGER = Logger.getLogger(OpenLinks.class);
/**
* Map containing the links
*/
@SuppressWarnings("serial")
private static Map<String, String> links = Collections.unmodifiableMap(new HashMap<String, String>(){{
put("faq", "http://bwlehrpool.hs-offenburg.de");
put("otrs", "http://bwlehrpool.hs-offenburg.de");
put("vmware", "https://my.vmware.com/de/web/vmware/free#desktop_end_user_computing/vmware_player/6_0");
put("intro", "http://www.hs-offenburg.de/fileadmin/Einrichtungen/hrz/Projekte/bwLehrpool/3_bwLehrpool_-_Image_einbinden_und_starten.pdf");
}});
/**
* Static URIs
*/
private static Map<String, URI> uris;
static {
// temp map
Map<String, URI> tmpUris = new HashMap<String, URI>();
for (String key : links.keySet()) {
URI tmp;
try {
tmp = new URI(links.get(key));
} catch (URISyntaxException e) {
// should never happen!
LOGGER.error("Bad URI syntax of '" + key + "', see trace: ", e);
tmp = null;
}
tmpUris.put(key, tmp);
}
// check sizes of maps to be equal
if (links.size() != tmpUris.size()) {
LOGGER.error("Links and URIs have different sizes, this should not happen. Contact a developper.");
}
// all good, save it to the actual 'uris' map
uris = Collections.unmodifiableMap(tmpUris);
}
public static void openWebpage(String key) {
// first check if we have the link for the request key
if (!uris.containsKey(key)) {
LOGGER.error("OpenLinks has to link to '" + key + "'. Check if the given key actually exists.");
return;
}
Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop()
: null;
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
try {
desktop.browse(uris.get(key));
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,
e.getCause() + "\n" + e.getStackTrace(),
"Debug-Message", JOptionPane.ERROR_MESSAGE);
}
}
}// end openWebpage
}
|