Enhanced Tiled integration. Now in "File->Edit workspace settings" menu,

you have tools to help selecting external tools to bview/edit images and
tmx maps. Still rough.
This commit is contained in:
Zukero
2017-02-27 18:18:17 +01:00
parent 9888dfe678
commit 41462137d6
9 changed files with 371 additions and 33 deletions

View File

@@ -0,0 +1,67 @@
package com.gpl.rpg.atcontentstudio.utils;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.Locale;
import com.gpl.rpg.atcontentstudio.model.Workspace;
public class DesktopIntegration {
public static void openTmxMap(File f) {
if (Workspace.activeWorkspace.settings.useSystemDefaultMapEditor.getCurrentValue()) {
try {
Desktop.getDesktop().open(f);
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
Runtime.getRuntime().exec(Workspace.activeWorkspace.settings.mapEditorCommand.getCurrentValue()+" "+f.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void openImage(File f) {
if (Workspace.activeWorkspace.settings.useSystemDefaultImageViewer.getCurrentValue()) {
try {
Desktop.getDesktop().open(f);
} catch (IOException e) {
e.printStackTrace();
}
} else if (Workspace.activeWorkspace.settings.useSystemDefaultImageEditor.getCurrentValue()) {
try {
Desktop.getDesktop().edit(f);
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
Runtime.getRuntime().exec(Workspace.activeWorkspace.settings.imageEditorCommand.getCurrentValue()+" "+f.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static enum OSType {
Windows, MacOS, NIX, Other
}
public static OSType detectedOS = detectOS();
private static OSType detectOS() {
String os = System.getProperty("os.name", "generic").toLowerCase(Locale.ENGLISH);
if ((os.indexOf("mac") >= 0) || (os.indexOf("darwin") >= 0)) return OSType.MacOS;
if (os.indexOf("win") >= 0) return OSType.Windows;
if ((os.indexOf("nux") >= 0) || (os.indexOf("nix") >= 0) || (os.indexOf("aix") >= 0) || (os.indexOf("sunos") >= 0) || (os.indexOf("solaris") >= 0)) return OSType.NIX;
return OSType.Other;
}
}