Package com.ike.rwdccalc

Source Code of com.ike.rwdccalc.CalculatorUI

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
}
TOP

Related Classes of com.ike.rwdccalc.CalculatorUI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.