From f6f056a238144efbf5941d2d3c88e260d08811df Mon Sep 17 00:00:00 2001 From: iobyte Date: Thu, 30 Jun 2022 23:35:28 +0000 Subject: [PATCH] trackeditor: show error dialog when sd2-trackgen can't be found or executed git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8285 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 85efb1995763432b5c8fd606ac318d6a3f6d8c48 Former-commit-id: 294e33ba9e275833b98714bdb190b1b64e18d839 --- src/tools/trackeditor/gui/TrackgenPanel.java | 26 +++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/tools/trackeditor/gui/TrackgenPanel.java b/src/tools/trackeditor/gui/TrackgenPanel.java index 9633118ac..0806915ea 100644 --- a/src/tools/trackeditor/gui/TrackgenPanel.java +++ b/src/tools/trackeditor/gui/TrackgenPanel.java @@ -24,10 +24,14 @@ import java.awt.Frame; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Vector; import javax.swing.JDialog; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; @@ -41,9 +45,8 @@ import utils.Editor; public class TrackgenPanel extends JDialog implements Runnable { public static Vector args = new Vector(); - //private Properties properties = Properties.getInstance(); public EditorFrame parent; - Thread ac3d = new Thread(this); + private Thread ac3d = new Thread(this); private JPanel jPanel = null; private JLabel nameLabel = null; @@ -66,7 +69,6 @@ public class TrackgenPanel extends JDialog implements Runnable ac3d.start(); } - /** * This method initializes this * @@ -77,8 +79,8 @@ public class TrackgenPanel extends JDialog implements Runnable this.setContentPane(getJPanel()); this.setTitle("Trackgen"); this.setSize(475, 320); - } + public void run() { String category = " -c " + Editor.getProperties().getHeader().getCategory(); @@ -89,8 +91,24 @@ public class TrackgenPanel extends JDialog implements Runnable try { + String trackgen = "sd2-trackgen"; String ls_str; String tmp = ""; + + Path path = Paths.get(trackgen); + + if (!Files.isExecutable(path)) + { + if (!Files.exists(path)) + { + JOptionPane.showMessageDialog(this, "Can't find : " + trackgen + + "\n\nMake sure " + trackgen + " is installed or can be found using the path environment variable.", + "Export AC3D", JOptionPane.ERROR_MESSAGE); + return; + } + JOptionPane.showMessageDialog(this, "Can't execute : " + path.getFileName(), "Export AC3D", JOptionPane.ERROR_MESSAGE); + return; + } Process ls_proc = Runtime.getRuntime().exec("sd2-trackgen" + args); // get its output (your input) stream