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 links = Collections.unmodifiableMap(new HashMap(){{ 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 uris; static { // temp map Map tmpUris = new HashMap(); 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 }