package com.ike.rwdccalc;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.security.CodeSource;
public class CalculatorUI extends javax.swing.JFrame {
private static final long serialVersionUID = 1L;
//Creates new form CalculatorUI
public CalculatorUI(String os) {
initComponents(os);
if (os.equals("Linux")) {
// Operating system is Linux, confirm they have xterm
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LinuxOperatingSystemDetected().setVisible(true);
}
});
}
}
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents(String operatingSystem) {
final String os = operatingSystem;
job = new javax.swing.JLabel();
jPanel18 = new javax.swing.JPanel();
jTabbedPane2 = new javax.swing.JTabbedPane();
jPanel14 = new javax.swing.JPanel();
jPanel15 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jPanel16 = new javax.swing.JPanel();
jPanel17 = new javax.swing.JPanel();
txtFootprintCalculate = new javax.swing.JTextField();
labelFootprintCalculate = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
footprintCalculateError = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
txtInnerRadius = new javax.swing.JTextField();
labelInnerRadius = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
innerRadiusError = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
txtOuterRadius = new javax.swing.JTextField();
labelOuterRadius = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
outerRadiusError = new javax.swing.JLabel();
btnCalculate = new javax.swing.JButton();
mainErrorWarningCalculate = new javax.swing.JLabel();
distanceToggle = new javax.swing.JToggleButton();
plotPointsToggle = new javax.swing.JToggleButton();
memoryToggle = new javax.swing.JToggleButton();
jPanel2 = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
jPanel9 = new javax.swing.JPanel();
jPanel10 = new javax.swing.JPanel();
labelFootprintBruteForce = new javax.swing.JLabel();
txtFootprintBruteForce = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
footprintBruteForceError = new javax.swing.JLabel();
jPanel11 = new javax.swing.JPanel();
labelPrice = new javax.swing.JLabel();
txtPrice = new javax.swing.JTextField();
jLabel14 = new javax.swing.JLabel();
priceError = new javax.swing.JLabel();
jPanel12 = new javax.swing.JPanel();
labelSpeed = new javax.swing.JLabel();
txtSpeed = new javax.swing.JTextField();
jLabel15 = new javax.swing.JLabel();
speedError = new javax.swing.JLabel();
jPanel13 = new javax.swing.JPanel();
labelIncrement = new javax.swing.JLabel();
txtIncrement = new javax.swing.JTextField();
jLabel16 = new javax.swing.JLabel();
incrementError = new javax.swing.JLabel();
btnBruteForce = new javax.swing.JButton();
mainErrorWarningBruteForce = new javax.swing.JLabel();
URL url = ClassLoader.getSystemResource("com/ike/rwdccalc/Resources/Lawton_EHS_Logo.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
setIconImage(img);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Eisenhower High School RWDC Calculator");
jLabel2.setText("Calculate a single flight path");
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 11));
jPanel17.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel17.setPreferredSize(new java.awt.Dimension(4, 64));
labelFootprintCalculate.setText("Footprint Width");
labelFootprintCalculate.setFont(new java.awt.Font("Tahoma", 0, 11));
jLabel6.setText("Enter In Feet");
jLabel6.setFont(new java.awt.Font("Tahoma", 0, 11));
footprintCalculateError.setForeground(new java.awt.Color(255, 51, 51));
footprintCalculateError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
footprintCalculateError.setText("");
footprintCalculateError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
jPanel17.setLayout(jPanel17Layout);
jPanel17Layout.setHorizontalGroup(
jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel17Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelFootprintCalculate, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel17Layout.createSequentialGroup()
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 122, Short.MAX_VALUE)
.addComponent(footprintCalculateError))
.addComponent(txtFootprintCalculate))
.addContainerGap())
);
jPanel17Layout.setVerticalGroup(
jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel17Layout.createSequentialGroup()
.addGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel17Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addGroup(jPanel17Layout.createSequentialGroup()
.addComponent(footprintCalculateError)
.addGap(0, 9, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtFootprintCalculate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelFootprintCalculate))
.addContainerGap())
);
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel1.setPreferredSize(new java.awt.Dimension(4, 64));
labelInnerRadius.setText("Inner Radius");
labelInnerRadius.setFont(new java.awt.Font("Tahoma", 0, 11));
jLabel7.setText("Enter In Feet");
jLabel7.setFont(new java.awt.Font("Tahoma", 0, 11));
innerRadiusError.setForeground(new java.awt.Color(255, 51, 51));
innerRadiusError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
innerRadiusError.setText("");
innerRadiusError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelInnerRadius, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtInnerRadius)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(innerRadiusError)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(innerRadiusError)
.addGap(0, 9, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtInnerRadius, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelInnerRadius))
.addContainerGap())
);
jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel3.setPreferredSize(new java.awt.Dimension(4, 64));
labelOuterRadius.setText("Outer Radius");
labelOuterRadius.setFont(new java.awt.Font("Tahoma", 0, 11));
jLabel8.setText("Enter In Feet");
jLabel8.setFont(new java.awt.Font("Tahoma", 0, 11));
outerRadiusError.setForeground(new java.awt.Color(255, 51, 51));
outerRadiusError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
outerRadiusError.setText("");
outerRadiusError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelOuterRadius, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtOuterRadius)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(outerRadiusError)))
.addContainerGap())
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(outerRadiusError)
.addGap(0, 9, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtOuterRadius, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelOuterRadius))
.addContainerGap())
);
btnCalculate.setText("Calculate");
btnCalculate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
btnCalculateActionPerformed(evt, os);
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
});
mainErrorWarningCalculate.setForeground(new java.awt.Color(255, 51, 51));
mainErrorWarningCalculate.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
jPanel16.setLayout(jPanel16Layout);
jPanel16Layout.setHorizontalGroup(
jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel16Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel16Layout.createSequentialGroup()
.addComponent(mainErrorWarningCalculate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnCalculate))
.addComponent(jPanel17, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE))
.addContainerGap())
);
jPanel16Layout.setVerticalGroup(
jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel16Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnCalculate)
.addComponent(mainErrorWarningCalculate))
.addContainerGap(81, Short.MAX_VALUE))
);
distanceToggle.setText("Use Miles");
distanceToggle.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
distanceToggleActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
jPanel15.setLayout(jPanel15Layout);
jPanel15Layout.setHorizontalGroup(
jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel15Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel16, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel15Layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(distanceToggle)
.addContainerGap())))
);
jPanel15Layout.setVerticalGroup(
jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel15Layout.createSequentialGroup()
.addGroup(jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel15Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel2))
.addComponent(distanceToggle))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel16, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
jPanel14.setLayout(jPanel14Layout);
jPanel14Layout.setHorizontalGroup(
jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel14Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel14Layout.setVerticalGroup(
jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel14Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jTabbedPane2.addTab("Calculate", jPanel14);
jLabel5.setText("Brute Force The Best Flight Path");
jLabel5.setFont(new java.awt.Font("Tahoma", 0, 11));
jPanel10.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel10.setPreferredSize(new java.awt.Dimension(119, 64));
labelFootprintBruteForce.setText("Footprint Width");
labelFootprintBruteForce.setFont(new java.awt.Font("Tahoma", 0, 11));
txtFootprintBruteForce.setToolTipText("");
jLabel13.setText("Enter In Feet");
jLabel13.setFont(new java.awt.Font("Tahoma", 0, 11));
footprintBruteForceError.setForeground(new java.awt.Color(255, 51, 51));
footprintBruteForceError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
footprintBruteForceError.setText("");
footprintBruteForceError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
jPanel10.setLayout(jPanel10Layout);
jPanel10Layout.setHorizontalGroup(
jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel10Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelFootprintBruteForce, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtFootprintBruteForce)
.addGroup(jPanel10Layout.createSequentialGroup()
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(footprintBruteForceError)))
.addContainerGap())
);
jPanel10Layout.setVerticalGroup(
jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel10Layout.createSequentialGroup()
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel10Layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(jLabel13))
.addComponent(footprintBruteForceError))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtFootprintBruteForce, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelFootprintBruteForce, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel11.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel11.setPreferredSize(new java.awt.Dimension(119, 64));
labelPrice.setText("Price Per Hour");
labelPrice.setFont(new java.awt.Font("Tahoma", 0, 11));
jLabel14.setText("Enter In US Dollars");
jLabel14.setFont(new java.awt.Font("Tahoma", 0, 11));
priceError.setForeground(new java.awt.Color(255, 51, 51));
priceError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
priceError.setText("");
priceError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
jPanel11.setLayout(jPanel11Layout);
jPanel11Layout.setHorizontalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelPrice, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtPrice)
.addGroup(jPanel11Layout.createSequentialGroup()
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(priceError)))
.addContainerGap())
);
jPanel11Layout.setVerticalGroup(
jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel11Layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(jLabel14))
.addComponent(priceError))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtPrice, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelPrice, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel12.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel12.setPreferredSize(new java.awt.Dimension(119, 64));
labelSpeed.setText("Ground Speed");
labelSpeed.setFont(new java.awt.Font("Tahoma", 0, 11));
txtSpeed.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
jLabel15.setText("Enter In Miles per Hour");
jLabel15.setFont(new java.awt.Font("Tahoma", 0, 11));
speedError.setForeground(new java.awt.Color(255, 51, 51));
speedError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
speedError.setText("");
speedError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
jPanel12.setLayout(jPanel12Layout);
jPanel12Layout.setHorizontalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel12Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtSpeed)
.addGroup(jPanel12Layout.createSequentialGroup()
.addComponent(jLabel15)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 136, Short.MAX_VALUE)
.addComponent(speedError)))
.addContainerGap())
);
jPanel12Layout.setVerticalGroup(
jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel12Layout.createSequentialGroup()
.addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel12Layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(jLabel15))
.addComponent(speedError))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelSpeed, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel13.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel13.setPreferredSize(new java.awt.Dimension(119, 64));
labelIncrement.setText("Increment Length");
labelIncrement.setFont(new java.awt.Font("Tahoma", 0, 11));
jLabel16.setText("Enter In Feet");
jLabel16.setFont(new java.awt.Font("Tahoma", 0, 11));
incrementError.setForeground(new java.awt.Color(255, 51, 51));
incrementError.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
incrementError.setText("");
incrementError.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
jPanel13.setLayout(jPanel13Layout);
jPanel13Layout.setHorizontalGroup(
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel13Layout.createSequentialGroup()
.addContainerGap()
.addComponent(labelIncrement, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtIncrement)
.addGroup(jPanel13Layout.createSequentialGroup()
.addComponent(jLabel16)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(incrementError)))
.addContainerGap())
);
jPanel13Layout.setVerticalGroup(
jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel13Layout.createSequentialGroup()
.addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel13Layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(jLabel16))
.addComponent(incrementError))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(labelIncrement, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txtIncrement))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
btnBruteForce.setText("Brute Force");
btnBruteForce.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
btnBruteForceActionPerformed(evt, os);
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
});
mainErrorWarningBruteForce.setForeground(new java.awt.Color(255, 51, 51));
mainErrorWarningBruteForce.setFont(new java.awt.Font("Tahoma", 0, 11));
javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
jPanel9.setLayout(jPanel9Layout);
jPanel9Layout.setHorizontalGroup(
jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel9Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)
.addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)
.addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)
.addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, 401, Short.MAX_VALUE)
.addGroup(jPanel9Layout.createSequentialGroup()
.addComponent(mainErrorWarningBruteForce)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(job)
.addComponent(btnBruteForce))))
);
jPanel9Layout.setVerticalGroup(
jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel9Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(job)
.addComponent(btnBruteForce)
.addComponent(mainErrorWarningBruteForce))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
plotPointsToggle.setText("Return Plot Points");
plotPointsToggle.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
plotPointsToggleActionPerformed(evt);
}
});
memoryToggle.setText("Use More Memory");
memoryToggle.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
memoryToggleActionPerformed(evt);
}
});
jPanel18.add(plotPointsToggle);
jPanel18.add(memoryToggle);
job.setAlignmentX(RIGHT_ALIGNMENT);
job.setAlignmentY(CENTER_ALIGNMENT);
job.setFont(new java.awt.Font("Tahoma", 0, 14));
job.setText("Returning best time with standard memory. ");
javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
jPanel8.setLayout(jPanel8Layout);
jPanel8Layout.setHorizontalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel18)
.addGroup(jPanel8Layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel18)
.addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jTabbedPane2.addTab("Brute Force", jPanel2);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTabbedPane2)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTabbedPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 393, Short.MAX_VALUE)
);
getAccessibleContext().setAccessibleDescription("");
pack();
}// </editor-fold>
// Calculate Button
// <editor-fold defaultstat="collapsed
private void btnCalculateActionPerformed(java.awt.event.ActionEvent evt, String os) throws URISyntaxException {
mainErrorWarningCalculate.setText("");
footprintCalculateError.setText("");
innerRadiusError.setText("");
outerRadiusError.setText("");
CodeSource codeSource = CalculatorUI.class.getProtectionDomain()
.getCodeSource();
File jarFile = new File(codeSource.getLocation().toURI().getPath());
/////////////////////////////////////////////
// Check to see if the user input is valid //
/////////////////////////////////////////////
boolean checkFootprint = true;
boolean checkInnerRadius = true;
boolean checkOuterRadius = true;
double innerRadiusTemp = 0;
double outerRadiusTemp = 0;
try {
Double.parseDouble(txtFootprintCalculate.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningCalculate.setText("There are errors on the form");
footprintCalculateError.setText("Please enter a number");
checkFootprint = false;
}
try {
Double.parseDouble(txtInnerRadius.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningCalculate.setText("There are errors on the form");
innerRadiusError.setText("Please enter a number");
checkInnerRadius = false;
}
try {
Double.parseDouble(txtOuterRadius.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningCalculate.setText("There are errors on the form");
outerRadiusError.setText("Please enter a number");
checkOuterRadius = false;
}
if (txtFootprintCalculate.getText().toString().equals("")) {
mainErrorWarningCalculate.setText("There are errors on the form");
footprintCalculateError.setText("Please enter a number");
}
if (txtInnerRadius.getText().toString().equals("")) {
mainErrorWarningCalculate.setText("There are errors on the form");
innerRadiusError.setText("Please enter a number");
}
if (txtOuterRadius.getText().toString().equals("")) {
mainErrorWarningCalculate.setText("There are errors on the form");
outerRadiusError.setText("Please enter a number");
}
if (checkInnerRadius) {
if (Double.parseDouble(txtInnerRadius.getText().toString()) < 0) {
mainErrorWarningCalculate.setText("There are errors on the form");
innerRadiusError.setText("Number cannot be negative");
}
}
if (checkOuterRadius) {
if (Double.parseDouble(txtOuterRadius.getText().toString()) < 0) {
mainErrorWarningCalculate.setText("There are errors on the form");
outerRadiusError.setText("Number cannot be negative");
}
}
if (checkFootprint) {
if (Double.parseDouble(txtFootprintCalculate.getText().toString()) == 0) {
mainErrorWarningCalculate.setText("There are errors on the form");
footprintCalculateError.setText("Number cannot be zero");
}
}
if (checkFootprint) {
if (Double.parseDouble(txtFootprintCalculate.getText().toString()) == 0) {
mainErrorWarningCalculate.setText("There are errors on the form");
footprintCalculateError.setText("Number cannot be zero");
}
}
if (checkOuterRadius) {
if (Double.parseDouble(txtOuterRadius.getText().toString()) == 0) {
mainErrorWarningCalculate.setText("There are errors on the form");
outerRadiusError.setText("Number cannot be zero");
}
}
if (distanceToggle.equals("Use Feet")) {
innerRadiusTemp = Double.parseDouble(txtInnerRadius.getText().toString()) * 5280;
outerRadiusTemp = Double.parseDouble(txtOuterRadius.getText().toString()) * 5280;
}
/////////////////////////////////////
// Run the program in the terminal //
/////////////////////////////////////
Process process = null;
if (mainErrorWarningCalculate.getText().equals("")) {
// The Operating System is Windows
if (os.equals("Windows")) {
try {
process = Runtime.getRuntime().exec(
new String[] { "cmd.exe", "/c", "start", "java", "-jar",
jarFile.toString(), "-t",
"-c", "-f", txtFootprintCalculate.getText().toString(),
"-i", "" + innerRadiusTemp, "-o",
"" + outerRadiusTemp
});
} catch (IOException e) {
e.printStackTrace();
}
// The Operating System is Mac
} else if (os.equals("Mac")) {
try {
process = Runtime.getRuntime()
.exec("open -a Terminal -e java" +
" -jar " + jarFile.toString() + " -t " +
"-b -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString()
);
} catch (IOException e) {
e.printStackTrace();
}
// The Operating system is Linux
} else if (os.equals("Linux")) {
try {
process = Runtime.getRuntime().exec(
"xterm -e java -jar " + jarFile.toString() + " -t " +
"-c -f " + txtFootprintCalculate.getText().toString() +
" -i " + innerRadiusTemp + " -o " +
outerRadiusTemp);
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} //<editor-fold>
// Brute Force Button
// <editor-fold defaultstate="collapsed"
private void btnBruteForceActionPerformed(java.awt.event.ActionEvent evt, String os)
throws URISyntaxException {
mainErrorWarningBruteForce.setText("");
footprintBruteForceError.setText("");
priceError.setText("");
speedError.setText("");
incrementError.setText("");
CodeSource codeSource = CalculatorUI.class.getProtectionDomain()
.getCodeSource();
File jarFile = new File(codeSource.getLocation().toURI().getPath());
/////////////////////////////////////////////
// Check to see if the user input is valid //
/////////////////////////////////////////////
boolean checkFootprint = true;
boolean checkPrice = true;
boolean checkSpeed = true;
boolean checkLength = true;
try {
Double.parseDouble(txtFootprintBruteForce.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningBruteForce.setText("There are errors on the form");
footprintBruteForceError.setText("Please enter a number");
checkFootprint = false;
}
try {
Double.parseDouble(txtPrice.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningBruteForce.setText("There are errors on the form");
priceError.setText("Please enter a number");
checkPrice = false;
}
try {
Double.parseDouble(txtSpeed.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningBruteForce.setText("There are errors on the form");
speedError.setText("Please enter a number");
checkSpeed = false;
}
try {
Double.parseDouble(txtIncrement.getText().toString());
} catch (NumberFormatException e) {
mainErrorWarningBruteForce.setText("There are errors on the form");
incrementError.setText("Please enter a number");
checkLength = false;
}
if (txtFootprintBruteForce.getText().toString().equals("")) {
mainErrorWarningBruteForce.setText("There are errors on the form");
footprintBruteForceError.setText("Please enter a number");
}
if (txtPrice.getText().toString().equals("")) {
mainErrorWarningBruteForce.setText("There are errors on the form");
priceError.setText("Please enter a number");
}
if (txtSpeed.getText().toString().equals("")) {
mainErrorWarningBruteForce.setText("There are errors on the form");
speedError.setText("Please enter a number");
}
if (txtIncrement.getText().toString().equals("")) {
mainErrorWarningBruteForce.setText("There are errors on the form");
incrementError.setText("Please enter a number");
}
if (checkFootprint) {
if (Double.parseDouble(txtFootprintBruteForce.getText().toString()) < 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
footprintBruteForceError.setText("Number cannot be negative");
}
}
if (checkPrice) {
if (Double.parseDouble(txtPrice.getText().toString()) < 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
priceError.setText("Number cannot be negative");
}
}
if (checkSpeed) {
if (Double.parseDouble(txtSpeed.getText().toString()) < 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
speedError.setText("Number cannot be negative");
}
}
if (checkLength) {
if (Double.parseDouble(txtIncrement.getText().toString()) < 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
incrementError.setText("Number cannot be negative");
}
}
if (checkFootprint) {
if (Double.parseDouble(txtFootprintBruteForce.getText().toString()) == 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
footprintBruteForceError.setText("Number cannot be zero");
}
}
if (checkPrice) {
if (Double.parseDouble(txtPrice.getText().toString()) == 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
priceError.setText("Number cannot be zero");
}
}
if (checkSpeed) {
if (Double.parseDouble(txtSpeed.getText().toString()) == 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
speedError.setText("Number cannot be zero");
}
}
if (checkLength) {
if (Double.parseDouble(txtIncrement.getText().toString()) == 0) {
mainErrorWarningBruteForce.setText("There are errors on the form");
incrementError.setText("Number cannot be zero");
}
}
/////////////////////////////////////
// Run the program in the terminal //
/////////////////////////////////////
Process process = null;
if (memoryToggle.getText().toString().equals("Use More Memory")) {
if (plotPointsToggle.getText().toString().equals("Return Plot Points")) {
if (mainErrorWarningBruteForce.getText().equals("")) {
// The Operating System is Windows
if (os.equals("Windows")) {
try {
process = Runtime.getRuntime().exec(
new String[] { "cmd.exe", "/c", "start", "java", "-jar",
jarFile.toString(), "-t",
"-b", "-f", txtFootprintBruteForce.getText().toString(),
"-p", txtPrice.getText().toString(), "-s",
txtSpeed.getText().toString(), "-i",
txtIncrement.getText().toString()
});
} catch (IOException e) {
e.printStackTrace();
}
// The Operating System is Mac
// This does not work yet
} else if (os.equals("Mac")) {
try {
process = Runtime.getRuntime()
.exec("osascript -e \'tell application \"Terminal\"\' -e \"activate\" -e \"java -jar " + jarFile.toString() + " -t -b -f " + txtFootprintBruteForce.getText().toString() + " -p " + txtPrice.getText().toString() + " -s " + txtSpeed.getText().toString() + " -i " + txtIncrement.getText().toString() + "\" -e \'end tell\'"
);
} catch (IOException e) {
e.printStackTrace();
}
// The Operating system is Linux
} else if (os.equals("Linux")) {
try {
process = Runtime.getRuntime().exec(
"xterm -e java -jar " + jarFile.toString() + " -t " +
"-b -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
} else {
if (plotPointsToggle.getText().toString().equals("Return Plot Points")) {
if (mainErrorWarningBruteForce.getText().equals("")) {
// The Operating System is Windows
if (os.equals("Windows")) {
try {
process = Runtime.getRuntime().exec(
new String[] { "cmd.exe", "/c", "start", "java", "-jar",
jarFile.toString(), "-t",
"-b", "-g", "-f", txtFootprintBruteForce.getText().toString(),
"-p", txtPrice.getText().toString(), "-s",
txtSpeed.getText().toString(), "-i",
txtIncrement.getText().toString()
});
} catch (IOException e) {
e.printStackTrace();
}
// The Operating System is Mac
// This does not work yet
} else if (os.equals("Mac")) {
try {
process = Runtime.getRuntime()
.exec("open -a Terminal -e java" +
" -jar " + jarFile.toString() + " -t" +
" -b -g -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString()
);
} catch (IOException e) {
e.printStackTrace();
}
// The Operating system is Linux
} else if (os.equals("Linux")) {
try {
process = Runtime.getRuntime().exec(
"xterm -e java -jar " + jarFile.toString() + " -t " +
"-b -g -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
} else {
if (plotPointsToggle.getText().toString().equals("Return Plot Points")) {
if (mainErrorWarningBruteForce.getText().equals("")) {
// The Operating System is Windows
if (os.equals("Windows")) {
try {
process = Runtime.getRuntime().exec(
new String[] { "cmd.exe", "/c", "start", "java", "-Xms6g", "-Xmx6g", "-jar",
jarFile.toString(), "-t",
"-b", "-f", txtFootprintBruteForce.getText().toString(),
"-p", txtPrice.getText().toString(), "-s",
txtSpeed.getText().toString(), "-i",
txtIncrement.getText().toString()
});
} catch (IOException e) {
e.printStackTrace();
}
// The Operating System is Mac
} else if (os.equals("Mac")) {
try {
process = Runtime.getRuntime()
.exec("osascript -e \'tell application \"Terminal\"\' -e \"activate\" -e \"java -jar " + jarFile.toString() + " -t -b -f " + txtFootprintBruteForce.getText().toString() + " -p " + txtPrice.getText().toString() + " -s " + txtSpeed.getText().toString() + " -i " + txtIncrement.getText().toString() + "\" -e \'end tell\'"
);
} catch (IOException e) {
e.printStackTrace();
}
// The Operating system is Linux
} else if (os.equals("Linux")) {
try {
process = Runtime.getRuntime().exec(
"xterm -e java -Xms6g -Xmx6g -jar " + jarFile.toString() + " -t " +
"-b -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
} else {
if (mainErrorWarningBruteForce.getText().equals("")) {
// The Operating System is Windows
if (os.equals("Windows")) {
try {
process = Runtime.getRuntime().exec(
new String[] { "cmd.exe", "/c", "start", "java", "-Xms6g", "-Xmx6g", "-jar",
jarFile.toString(), "-t",
"-b", "-g", "-f", txtFootprintBruteForce.getText().toString(),
"-p", txtPrice.getText().toString(), "-s",
txtSpeed.getText().toString(), "-i",
txtIncrement.getText().toString()
});
} catch (IOException e) {
e.printStackTrace();
}
// The Operating System is Mac
} else if (os.equals("Mac")) {
try {
process = Runtime.getRuntime()
.exec("open -a Terminal -e java" +
" -Xms6g -Xmx6g -jar " + jarFile.toString() + " -t" +
" -b -g -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString()
);
} catch (IOException e) {
e.printStackTrace();
}
// The Operating system is Linux
} else if (os.equals("Linux")) {
try {
process = Runtime.getRuntime().exec(
"xterm -e java -Xms6g -Xmx6g -jar " + jarFile.toString() + " -t " +
"-b -g -f " + txtFootprintBruteForce.getText().toString() +
" -p " + txtPrice.getText().toString() + " -s " +
txtSpeed.getText().toString() + " -i " +
txtIncrement.getText().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
}// </editor-fold>
private void distanceToggleActionPerformed(java.awt.event.ActionEvent evt) {
// Use Miles/Feet Toggle, for Outer Radius
if (distanceToggle.getText().equals("Use Miles")) {
distanceToggle.setText("Use Feet");
jLabel7.setText("Enter In Miles");
jLabel8.setText("Enter In Miles");
} else {
distanceToggle.setText("Use Miles");
jLabel7.setText("Enter In Feet");
jLabel8.setText("Enter In Feet");
}
}
private void plotPointsToggleActionPerformed(java.awt.event.ActionEvent evt) {
if (plotPointsToggle.getText().equals("Return Plot Points")) {
plotPointsToggle.setText("Return Best Time");
if (job.getText().toString().equals("Returning best time with standard memory. ")) {
job.setText("Returning plot points with standard memory. ");
} else {
job.setText("Returning plot points with more memory. ");
}
} else {
plotPointsToggle.setText("Return Plot Points");
if (job.getText().toString().equals("Returning plot points with standard memory. ")) {
job.setText("Returning best time with standard memory. ");
} else {
job.setText("Returning best time with more memory. ");
}
}
}
private void memoryToggleActionPerformed(java.awt.event.ActionEvent evt) {
if (memoryToggle.getText().equals("Use More Memory")) {
memoryToggle.setText("Use Standard Memory");
if (job.getText().toString().equals("Returning plot points with standard memory. ")) {
job.setText("Returning plot points with more memory. ");
} else {
job.setText("Returning best time with more memory. ");
}
} else {
memoryToggle.setText("Use More Memory");
if (job.getText().toString().equals("Returning plot points with more memory. ")) {
job.setText("Returning plot points with standard memory. ");
} else {
job.setText("Returning best time with standard memory. ");
}
}
}
// Variables declaration - do not modify
private javax.swing.JButton btnBruteForce;
private javax.swing.JButton btnCalculate;
private javax.swing.JToggleButton distanceToggle;
private javax.swing.JToggleButton plotPointsToggle;
private javax.swing.JToggleButton memoryToggle;
private javax.swing.JLabel footprintBruteForceError;
private javax.swing.JLabel footprintCalculateError;
private javax.swing.JLabel incrementError;
private javax.swing.JLabel innerRadiusError;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel11;
private javax.swing.JPanel jPanel12;
private javax.swing.JPanel jPanel13;
private javax.swing.JPanel jPanel14;
private javax.swing.JPanel jPanel15;
private javax.swing.JPanel jPanel16;
private javax.swing.JPanel jPanel17;
private javax.swing.JPanel jPanel18;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JTabbedPane jTabbedPane2;
private javax.swing.JLabel labelFootprintCalculate;
private javax.swing.JLabel labelFootprintBruteForce;
private javax.swing.JLabel labelIncrement;
private javax.swing.JLabel labelInnerRadius;
private javax.swing.JLabel labelOuterRadius;
private javax.swing.JLabel labelPrice;
private javax.swing.JLabel labelSpeed;
private javax.swing.JLabel mainErrorWarningBruteForce;
private javax.swing.JLabel mainErrorWarningCalculate;
private javax.swing.JLabel outerRadiusError;
private javax.swing.JLabel priceError;
private javax.swing.JLabel speedError;
private javax.swing.JLabel job;
private javax.swing.JTextField txtFootprintCalculate;
private javax.swing.JTextField txtFootprintBruteForce;
private javax.swing.JTextField txtIncrement;
private javax.swing.JTextField txtInnerRadius;
private javax.swing.JTextField txtOuterRadius;
private javax.swing.JTextField txtPrice;
private javax.swing.JTextField txtSpeed;
// End of variables declaration
}