/* * Copyright (c) 2014 Dennis Fischer. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0+ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * * Contributors: Dennis Fischer */ package de.chaosfisch.util; import com.google.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.awt.*; import java.io.File; import java.io.IOException; import java.net.URI; public final class DesktopUtil { private static final Logger LOOGER = LoggerFactory.getLogger(DesktopUtil.class); private final Desktop desktop; @Inject private DesktopUtil() { desktop = Desktop.getDesktop(); } public boolean openBrowser(final String url) { if (!desktop.isSupported(Desktop.Action.BROWSE)) { return false; } try { final URI address = URI.create(url); desktop.browse(address); return true; } catch (final IOException e) { LOOGER.error("Browser IOException at {}", url, e); return false; } } public boolean openDirectory(final String dirString) { final File dir = new File(dirString); if (!dir.isDirectory()) { return false; } if (!desktop.isSupported(Desktop.Action.OPEN)) { return false; } try { desktop.open(dir); return true; } catch (final IOException e) { LOOGER.error("Directory IOException at {}", dir.getAbsolutePath(), e); return false; } } }