/*******************************************************************************
* Copyright 2014 Rafael Garcia Moreno.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.bladecoder.engineeditor.common;
import java.awt.Component;
import java.awt.Desktop;
import java.awt.Desktop.Action;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.Files;
import javax.swing.JOptionPane;
public class DesktopUtils {
/**
* Opens the given website in the default browser.
*/
public static void browse(Component parent, String uri) {
boolean error = false;
if (Desktop.isDesktopSupported()
&& Desktop.getDesktop().isSupported(Action.BROWSE)) {
try {
Desktop.getDesktop().browse(new URI(uri));
} catch (URISyntaxException ex) {
throw new RuntimeException(ex);
} catch (IOException ex) {
error = true;
}
} else {
error = true;
}
if (error) {
String msg = "Impossible to open the default browser from the application";
JOptionPane.showMessageDialog(parent, msg);
}
}
public static File createTempDirectory() throws IOException {
final File temp;
// temp = File.createTemp("advtmp", Long.toString(System.nanoTime()));
temp = Files.createTempDirectory("advtmp").toFile();
return temp;
}
public static void removeDir(String dir) throws IOException {
File f = new File(dir);
File files[] = f.listFiles();
if (files != null)
for (File f2 : files)
Files.delete(f2.toPath());
Files.deleteIfExists(f.toPath());
}
}