diff options
Diffstat (limited to 'dozentenmodul/src/main/java')
| -rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/util/OpenLinks.java | 71 |
1 files changed, 22 insertions, 49 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/OpenLinks.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/OpenLinks.java index 4c477f3d..3263ee70 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/OpenLinks.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/OpenLinks.java @@ -3,9 +3,6 @@ package org.openslx.dozmod.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 org.apache.log4j.Logger; @@ -16,62 +13,38 @@ public class OpenLinks { */ 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"); - // TODO use enum not map - }}); + private static final Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null; - /** - * Static URIs - */ + enum Link { + FAQ("http://bwlehrpool.hs-offenburg.de"), + VMWARE("https://my.vmware.com/de/web/vmware/free#desktop_end_user_computing/vmware_player/6_0"), + INTRO( + "http://www.hs-offenburg.de/fileadmin/Einrichtungen/hrz/Projekte/bwLehrpool/3_bwLehrpool_-_Image_einbinden_und_starten.pdf"); + + // TODO use enum not map + private final URI uri; - private static Map<String, URI> uris; - static { - // temp map - Map<String, URI> tmpUris = new HashMap<String, URI>(); - for (String key : links.keySet()) { - URI tmp; + private Link(String uri) { + URI tmp; try { - tmp = new URI(links.get(key)); + tmp = new URI(uri); } catch (URISyntaxException e) { - // should never happen! - LOGGER.error("Bad URI syntax of '" + key + "', see trace: ", e); + LOGGER.error("Hard-Coded URI contains syntax error!", e); tmp = null; } - tmpUris.put(key, tmp); + this.uri = 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."); + public static void openWebpage(Link location) { + + if (desktop == null || !desktop.isSupported(Desktop.Action.BROWSE)) return; + try { + desktop.browse(location.uri); + } catch (Exception e) { + LOGGER.error("Got exception in openWebpage: ", e); } - Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() - : null; - if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) { - try { - desktop.browse(uris.get(key)); - } catch (Exception e) { - LOGGER.debug("Got exception in openWebpage: ", e); - } - } - }// end openWebpage + } } |
