From 68f05f09eaaf300471ef7765c64e0da96974c9be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20E=C4=9Fitmen?= Date: Sun, 15 Nov 2015 19:51:14 +0200 Subject: [PATCH] v0.2.1 --- gui/ASL GUI.exe | Bin 46574 -> 46366 bytes gui/README.md | 7 +- gui/src/asl/gui/DlgError.java | 33 ++--- gui/src/asl/gui/Main.java | 246 +++++++++++----------------------- 4 files changed, 92 insertions(+), 194 deletions(-) diff --git a/gui/ASL GUI.exe b/gui/ASL GUI.exe index 86823c7f0e0e99d9649c3f7494cf6302ac8325f1..c7a3d87e63e0b8e86776c5801f947c662d14ef1d 100644 GIT binary patch delta 10381 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 delta 10587 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 +ASL GUI version =========== An optional Java interface to make the compile procces of ASL faster and more user-friendly. It's released under the MIT licence just like the core project. -Maintained by yours truly: [654wak654](https://github.com/654wak654/) \ No newline at end of file +Maintained by yours truly: [654wak654](https://github.com/654wak654/) + +**Version 0.2.1:** +Fixed some possible bugs, did some style fixes and other code adjustments. It's now is readable without getting cataracts. Mostly anyway... \ No newline at end of file diff --git a/gui/src/asl/gui/DlgError.java b/gui/src/asl/gui/DlgError.java index 52f6299..906b7a0 100644 --- a/gui/src/asl/gui/DlgError.java +++ b/gui/src/asl/gui/DlgError.java @@ -25,18 +25,13 @@ package asl.gui; public class DlgError extends javax.swing.JDialog { - boolean isAbort = true; - public DlgError(java.awt.Frame parent, boolean modal, String errorMessage) { super(parent, modal); initComponents(); lblError.setText(errorMessage); } - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents private void initComponents() { - lblError = new javax.swing.JLabel(); lblTitle = new javax.swing.JLabel(); @@ -47,37 +42,25 @@ public class DlgError extends javax.swing.JDialog { setResizable(false); setType(java.awt.Window.Type.POPUP); - lblError.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); // NOI18N + lblError.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); lblError.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblError.setText("Some error"); - lblTitle.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); // NOI18N + lblTitle.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); lblTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); lblTitle.setText("asl.exe has encountered an error:"); lblTitle.setToolTipText(""); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblTitle, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE) - .addComponent(lblError, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(lblTitle) - .addGap(18, 18, 18) - .addComponent(lblError) - .addGap(27, 27, 27)) - ); + layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(lblTitle, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE).addComponent(lblError, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)); + layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(lblTitle).addGap(18, 18, 18).addComponent(lblError).addGap(27, 27, 27))); pack(); - }// //GEN-END:initComponents + } - // Variables declaration - do not modify//GEN-BEGIN:variables + // Variables declaration - do not modify private javax.swing.JLabel lblError; private javax.swing.JLabel lblTitle; - // End of variables declaration//GEN-END:variables -} + // End of variables declaration +} \ No newline at end of file diff --git a/gui/src/asl/gui/Main.java b/gui/src/asl/gui/Main.java index 78c2f95..36356d6 100644 --- a/gui/src/asl/gui/Main.java +++ b/gui/src/asl/gui/Main.java @@ -27,7 +27,6 @@ import java.awt.Color; import java.io.BufferedReader; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.net.URI; import java.net.URISyntaxException; @@ -62,15 +61,13 @@ public class Main extends javax.swing.JFrame { cbPrettyPrinting.setSelected(prefs.getBoolean("prettyPrinting", false)); } - private String fileChooser(String title, FileNameExtensionFilter fileType) { + private String fileChooser(String title, int fileType) { JFileChooser chooser = new JFileChooser(); - if (fileType != null) { - chooser.setFileFilter(fileType); + if (fileType == 0) { + chooser.setFileFilter(new FileNameExtensionFilter("Executable", "exe")); chooser.setAcceptAllFileFilterUsed(false); - chooser.setFileSelectionMode(0); - } else { - chooser.setFileSelectionMode(1); } + chooser.setFileSelectionMode(fileType); chooser.setDialogTitle(title); String selectedPath = ""; if (chooser.showOpenDialog(null) == 0) { @@ -81,8 +78,6 @@ public class Main extends javax.swing.JFrame { return selectedPath; } - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents private void initComponents() { lblInput = new javax.swing.JLabel(); @@ -109,17 +104,17 @@ public class Main extends javax.swing.JFrame { setTitle("ASL GUI"); setResizable(false); - lblInput.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); // NOI18N + lblInput.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); lblInput.setText("Input Directory:"); lblInput.setOpaque(true); - txtInputDir.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); // NOI18N + txtInputDir.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); - lblOutput.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); // NOI18N + lblOutput.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); lblOutput.setText("Output Directory:"); lblOutput.setOpaque(true); - txtOutputDir.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); // NOI18N + txtOutputDir.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); btnInput.setText("..."); btnInput.setToolTipText("Opens a dialog to select input file"); @@ -139,11 +134,11 @@ public class Main extends javax.swing.JFrame { } }); - lblASL.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); // NOI18N + lblASL.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); lblASL.setText("ASL Compiler Directory"); lblASL.setOpaque(true); - txtASLDir.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); // NOI18N + txtASLDir.setFont(new java.awt.Font("Segoe UI Light", 0, 16)); btnASL.setText("..."); btnASL.setToolTipText("Opens a dialog to select the compiler location"); @@ -156,20 +151,20 @@ public class Main extends javax.swing.JFrame { jSeparator.setToolTipText(""); - lblASLSmall.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); // NOI18N + lblASLSmall.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); lblASLSmall.setText("Location of the asl.exe file."); lblASLSmall.setOpaque(true); - lblInputSmall.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); // NOI18N + lblInputSmall.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); lblInputSmall.setText("Directory of scripts that will be compiled in to the output directory."); lblInputSmall.setOpaque(true); - lblOutputSmall.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); // NOI18N - lblOutputSmall.setText("Directory that the compiled .sqf script(s) will be saved in."); + lblOutputSmall.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); + lblOutputSmall.setText("Directory that the compiled.sqf script(s) will be saved in."); lblOutputSmall.setOpaque(true); - cbCompileAll.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 11)); // NOI18N - cbCompileAll.setText("Compile all scripts including sub folders."); + cbCompileAll.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 11)); + cbCompileAll.setText("Compile all scripts in subfolders too."); cbCompileAll.setFocusable(false); cbCompileAll.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { @@ -177,7 +172,7 @@ public class Main extends javax.swing.JFrame { } }); - cbPrettyPrinting.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 11)); // NOI18N + cbPrettyPrinting.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 11)); cbPrettyPrinting.setText("Activate pretty printing."); cbPrettyPrinting.setFocusable(false); cbPrettyPrinting.addChangeListener(new javax.swing.event.ChangeListener() { @@ -186,7 +181,7 @@ public class Main extends javax.swing.JFrame { } }); - btnCompile.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); // NOI18N + btnCompile.setFont(new java.awt.Font("Microsoft JhengHei UI Light", 0, 16)); btnCompile.setText("Compile"); btnCompile.setToolTipText("Opens a dialog to select output directory"); btnCompile.setFocusable(false); @@ -196,7 +191,7 @@ public class Main extends javax.swing.JFrame { } }); - lblASLError.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); // NOI18N + lblASLError.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); lblASLError.setForeground(java.awt.Color.red); lblASLError.setText("Some error"); lblASLError.addMouseListener(new java.awt.event.MouseAdapter() { @@ -205,11 +200,11 @@ public class Main extends javax.swing.JFrame { } }); - lblInputError.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); // NOI18N + lblInputError.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); lblInputError.setForeground(java.awt.Color.red); lblInputError.setText("Some error"); - lblOutputError.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); // NOI18N + lblOutputError.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 10)); lblOutputError.setForeground(java.awt.Color.red); lblOutputError.setText("Some error"); lblOutputError.addMouseListener(new java.awt.event.MouseAdapter() { @@ -220,135 +215,57 @@ public class Main extends javax.swing.JFrame { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator) - .addGroup(layout.createSequentialGroup() - .addGap(15, 15, 15) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblOutputError, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblInputError, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblASLError, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblASL) - .addComponent(lblASLSmall) - .addGroup(layout.createSequentialGroup() - .addComponent(txtASLDir, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) - .addComponent(btnASL)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(txtOutputDir, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblOutput, javax.swing.GroupLayout.Alignment.LEADING)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnOutput)) - .addComponent(lblOutputSmall) - .addComponent(lblInput) - .addGroup(layout.createSequentialGroup() - .addComponent(txtInputDir, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnInput)) - .addComponent(lblInputSmall) - .addComponent(cbCompileAll) - .addComponent(cbPrettyPrinting)) - .addGap(0, 0, Short.MAX_VALUE))) - .addGap(24, 24, 24)) - .addGroup(layout.createSequentialGroup() - .addComponent(btnCompile, javax.swing.GroupLayout.PREFERRED_SIZE, 373, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(22, 22, 22)))) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(lblASL) - .addGap(3, 3, 3) - .addComponent(lblASLSmall) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtASLDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnASL, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(4, 4, 4) - .addComponent(lblASLError) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(3, 3, 3) - .addComponent(lblInput) - .addGap(3, 3, 3) - .addComponent(lblInputSmall, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtInputDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnInput, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(4, 4, 4) - .addComponent(lblInputError) - .addGap(6, 6, 6) - .addComponent(lblOutput) - .addGap(3, 3, 3) - .addComponent(lblOutputSmall, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(6, 6, 6) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtOutputDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnOutput, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(4, 4, 4) - .addComponent(lblOutputError) - .addGap(6, 6, 6) - .addComponent(cbCompileAll) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(cbPrettyPrinting) - .addGap(11, 11, 11) - .addComponent(btnCompile, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(11, 11, 11)) - ); + layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jSeparator).addGroup(layout.createSequentialGroup().addGap(15, 15, 15).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(lblOutputError, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(lblInputError, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false).addComponent(lblASLError, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(lblASL).addComponent(lblASLSmall).addGroup(layout.createSequentialGroup().addComponent(txtASLDir, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(6, 6, 6).addComponent(btnASL)).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(txtOutputDir, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(lblOutput, javax.swing.GroupLayout.Alignment.LEADING)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(btnOutput)).addComponent(lblOutputSmall).addComponent(lblInput).addGroup(layout.createSequentialGroup().addComponent(txtInputDir, javax.swing.GroupLayout.PREFERRED_SIZE, 320, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(btnInput)).addComponent(lblInputSmall).addComponent(cbCompileAll).addComponent(cbPrettyPrinting))).addGap(0, 0, Short.MAX_VALUE))).addGap(24, 24, 24)).addGroup(layout.createSequentialGroup().addComponent(btnCompile, javax.swing.GroupLayout.PREFERRED_SIZE, 373, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(22, 22, 22))))); + layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(6, 6, 6).addComponent(lblASL).addGap(3, 3, 3).addComponent(lblASLSmall).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(txtASLDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(btnASL, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(4, 4, 4).addComponent(lblASLError).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(3, 3, 3).addComponent(lblInput).addGap(3, 3, 3).addComponent(lblInputSmall, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(txtInputDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(btnInput, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(4, 4, 4).addComponent(lblInputError).addGap(6, 6, 6).addComponent(lblOutput).addGap(3, 3, 3).addComponent(lblOutputSmall, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(6, 6, 6).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(txtOutputDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(btnOutput, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(4, 4, 4).addComponent(lblOutputError).addGap(6, 6, 6).addComponent(cbCompileAll).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(cbPrettyPrinting).addGap(11, 11, 11).addComponent(btnCompile, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(11, 11, 11))); pack(); setLocationRelativeTo(null); - }// //GEN-END:initComponents + } - private void btnInputMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnInputMouseClicked + private void btnInputMouseClicked(java.awt.event.MouseEvent evt) { if (SwingUtilities.isLeftMouseButton(evt)) { - String path = fileChooser("Select input directory", null); + String path = fileChooser("Select input directory", 1); File inputDir = new File(path); if (inputDir.exists()) { prefs.put("inputDir", path); txtInputDir.setText(path); } - } - }//GEN-LAST:event_btnInputMouseClicked + if (gaveError) { - private void btnOutputMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnOutputMouseClicked - if (SwingUtilities.isLeftMouseButton(evt)) { - String path = fileChooser("Select output directory", null); - File outputDir = new File(path); - if (outputDir.exists() && outputDir.isDirectory()) { - prefs.put("outputDir", path); - txtOutputDir.setText(path); - } else if (!outputDir.exists()) { - lblOutputError.setText("Output folder doesn't exsist! Click this message to create it."); - outputDirFix = true; } } - }//GEN-LAST:event_btnOutputMouseClicked + } - private void btnASLMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnASLMouseClicked + private void btnOutputMouseClicked(java.awt.event.MouseEvent evt) { if (SwingUtilities.isLeftMouseButton(evt)) { - String path = fileChooser("Select 'asl.exe' location", new FileNameExtensionFilter("Executable", "exe")); + String path = fileChooser("Select output directory", 1); + File outputDir = new File(path); + if (outputDir.exists()) { + prefs.put("outputDir", path); + txtOutputDir.setText(path); + if (outputDirFix) { + lblOutputError.setText(" "); + } + } + } + } + + private void btnASLMouseClicked(java.awt.event.MouseEvent evt) { + if (SwingUtilities.isLeftMouseButton(evt)) { + String path = fileChooser("Select 'asl.exe' location", 0); File asl = new File(path); if (asl.exists()) { prefs.put("aslDir", path); txtASLDir.setText(path); } } - }//GEN-LAST:event_btnASLMouseClicked + } - private void btnCompileMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCompileMouseClicked + private void btnCompileMouseClicked(java.awt.event.MouseEvent evt) { if (SwingUtilities.isLeftMouseButton(evt)) { - String sumthin = new File(txtASLDir.getText()).getParent() + "\\asl.exe"; - if (!new File(sumthin).exists()) { + if (!new File(txtASLDir.getText()).exists()) { lblASLError.setText("asl.exe isn't in this location! You can click this message to download it."); + return; } JTextField[] dirFields = {txtASLDir, txtInputDir, txtOutputDir}; for (byte i = 0; i < 3; i++) { @@ -369,8 +286,7 @@ public class Main extends javax.swing.JFrame { break; } return; - } - if (bleh.exists() && gaveError) { + } else if (gaveError) { switch (i) { case 0: lblASLError.setText(" "); @@ -380,7 +296,7 @@ public class Main extends javax.swing.JFrame { break; case 2: lblOutputError.setText(" "); - outputDirFix = true; + outputDirFix = false; break; } } @@ -388,22 +304,16 @@ public class Main extends javax.swing.JFrame { if (gaveError) { return; } - String compileAll = "", prettyPrinting = ""; - if (cbCompileAll.isSelected()) { - compileAll = "-r"; - } - if (cbPrettyPrinting.isSelected()) { - prettyPrinting = "-pretty"; - } - String asl = txtASLDir.getText(); - String input = txtInputDir.getText(); - String output = txtOutputDir.getText(); - String aslError = " "; + //Rapid String declarations + String prettyPrinting = cbPrettyPrinting.isSelected() ? "-pretty" : "", + compileAll = cbCompileAll.isSelected() ? "-r" : "", + asl = txtASLDir.getText(), + input = txtInputDir.getText(), + output = txtOutputDir.getText(), + aslError = " "; try { Process aslProcess = new ProcessBuilder(asl, compileAll, prettyPrinting, input, output).start(); - InputStream is = aslProcess.getInputStream(); - InputStreamReader isr = new InputStreamReader(is); - BufferedReader br = new BufferedReader(isr); + BufferedReader br = new BufferedReader(new InputStreamReader(aslProcess.getInputStream())); String line; while ((line = br.readLine()) != null) { if (line.contains("Error")) { @@ -411,36 +321,38 @@ public class Main extends javax.swing.JFrame { } } aslProcess.waitFor(); - if (!aslError.equals(" ")) { - DlgError error = new DlgError(this, true, aslError); - error.setLocationRelativeTo(this); - error.setVisible(true); - } - //Runtime.getRuntime().exec("cmd /c start \"" + asl + "\" " + compileAll + prettyPrinting + "\"" + input + "\" \"" + output + "\""); - //TODO: Start app in command line with parameters + /* + Heavily obsolete alternative: + Runtime.getRuntime().exec("cmd /c start \"" + asl + "\" " + compileAll + prettyPrinting + "\"" + input + "\" \"" + output + "\""); + */ } catch (IOException | InterruptedException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } + if (!aslError.equals(" ")) { + DlgError error = new DlgError(this, true, aslError); + error.setLocationRelativeTo(this); + error.setVisible(true); + } } - }//GEN-LAST:event_btnCompileMouseClicked + } - private void cbCompileAllStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_cbCompileAllStateChanged + private void cbCompileAllStateChanged(javax.swing.event.ChangeEvent evt) { prefs.putBoolean("compileAll", cbCompileAll.isSelected()); - }//GEN-LAST:event_cbCompileAllStateChanged + } - private void cbPrettyPrintingStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_cbPrettyPrintingStateChanged + private void cbPrettyPrintingStateChanged(javax.swing.event.ChangeEvent evt) { prefs.putBoolean("prettyPrinting", cbPrettyPrinting.isSelected()); - }//GEN-LAST:event_cbPrettyPrintingStateChanged + } - private void lblOutputErrorMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblOutputErrorMouseClicked + private void lblOutputErrorMouseClicked(java.awt.event.MouseEvent evt) { if (SwingUtilities.isLeftMouseButton(evt) && outputDirFix) { new File(txtOutputDir.getText()).mkdirs(); outputDirFix = false; lblOutputError.setText(" "); } - }//GEN-LAST:event_lblOutputErrorMouseClicked + } - private void lblASLErrorMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lblASLErrorMouseClicked + private void lblASLErrorMouseClicked(java.awt.event.MouseEvent evt) { if (SwingUtilities.isLeftMouseButton(evt) && aslFix) { try { URI github = new URI("https://github.com/DeKugelschieber/asl/releases"); @@ -451,7 +363,7 @@ public class Main extends javax.swing.JFrame { aslFix = false; lblASLError.setText(" "); } - }//GEN-LAST:event_lblASLErrorMouseClicked + } public static void main(String args[]) { try { @@ -470,7 +382,7 @@ public class Main extends javax.swing.JFrame { }); } - // Variables declaration - do not modify//GEN-BEGIN:variables + // Variables declaration - do not modify private javax.swing.JButton btnASL; private javax.swing.JButton btnCompile; private javax.swing.JButton btnInput; @@ -490,5 +402,5 @@ public class Main extends javax.swing.JFrame { private javax.swing.JTextField txtASLDir; private javax.swing.JTextField txtInputDir; private javax.swing.JTextField txtOutputDir; - // End of variables declaration//GEN-END:variables -} + // End of variables declaration +} \ No newline at end of file