// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        fileChooser = new javax.swing.JFileChooser();
        port_panel = new javax.swing.JPanel();
        bottom_port_out_button = new javax.swing.JButton();
        bottom_port_in_button = new javax.swing.JButton();
        top_port_out_button = new javax.swing.JButton();
        top_port_in_button = new javax.swing.JButton();
        bottom_port_location_panel = new javax.swing.JPanel();
        bottom_port_device_combobox = new javax.swing.JComboBox();
        fourth_count_label5 = new javax.swing.JLabel();
        bottom_port_count_textfield = new javax.swing.JTextField();
        bottom_port_set_textfield = new javax.swing.JTextField();
        bottom_port_set_button = new javax.swing.JButton();
        top_port_location_panel = new javax.swing.JPanel();
        top_port_device_combobox = new javax.swing.JComboBox();
        fourth_count_label8 = new javax.swing.JLabel();
        top_port_count_textfield = new javax.swing.JTextField();
        top_port_set_textfield = new javax.swing.JTextField();
        top_port_set_button = new javax.swing.JButton();
        starboard_panel = new javax.swing.JPanel();
        bottom_starboard_out_button = new javax.swing.JButton();
        bottom_starboard_in_button = new javax.swing.JButton();
        top_starboard_out_button = new javax.swing.JButton();
        top_starboard_in_button = new javax.swing.JButton();
        top_starboard_location_panel = new javax.swing.JPanel();
        top_starboard_device_combobox = new javax.swing.JComboBox();
        fourth_count_label3 = new javax.swing.JLabel();
        top_starboard_count_textfield = new javax.swing.JTextField();
        top_starboard_set_textfield = new javax.swing.JTextField();
        top_starboard_set_button = new javax.swing.JButton();
        bottom_starboard_location_panel = new javax.swing.JPanel();
        bottom_starboard_device_combobox = new javax.swing.JComboBox();
        fourth_count_label4 = new javax.swing.JLabel();
        bottom_starboard_count_textfield = new javax.swing.JTextField();
        bottom_starboard_set_textfield = new javax.swing.JTextField();
        bottom_starboard_set_button = new javax.swing.JButton();
        virtual_joystick_panel = new javax.swing.JPanel();
        right_button = new javax.swing.JButton();
        left_button = new javax.swing.JButton();
        depth_panel = new javax.swing.JPanel();
        rise_button = new javax.swing.JButton();
        sink_button = new javax.swing.JButton();
        backward_left_button = new javax.swing.JButton();
        backward_button = new javax.swing.JButton();
        backward_right_button = new javax.swing.JButton();
        forward_left_button = new javax.swing.JButton();
        forward_button = new javax.swing.JButton();
        forward_right_button = new javax.swing.JButton();
        coordinates_panel = new javax.swing.JPanel();
        update_button = new javax.swing.JButton();
        navigate_button = new javax.swing.JButton();
        sphere_coordintes_panel = new javax.swing.JPanel();
        sphere_x_label = new javax.swing.JLabel();
        sphere_x_texfield = new javax.swing.JTextField();
        sphere_y_label = new javax.swing.JLabel();
        sphere_y_texfield = new javax.swing.JTextField();
        sphere_z_label = new javax.swing.JLabel();
        sphere_z_texfield = new javax.swing.JTextField();
        echosounder_coordintes_panel = new javax.swing.JPanel();
        echosounder_x_label = new javax.swing.JLabel();
        echosounder_x_texfield = new javax.swing.JTextField();
        echosounder_y_label = new javax.swing.JLabel();
        echosounder_y_texfield = new javax.swing.JTextField();
        echosounder_z_label = new javax.swing.JLabel();
        echosounder_z_texfield = new javax.swing.JTextField();
        navigation_coordintes_panel = new javax.swing.JPanel();
        navigation_x_label = new javax.swing.JLabel();
        navigation_x_texfield = new javax.swing.JTextField();
        navigation_y_label = new javax.swing.JLabel();
        navigation_y_texfield = new javax.swing.JTextField();
        navigation_z_label = new javax.swing.JLabel();
        navigation_z_texfield = new javax.swing.JTextField();
        transducer_coordintes_panel = new javax.swing.JPanel();
        transducer_x_label = new javax.swing.JLabel();
        transducer_x_texfield = new javax.swing.JTextField();
        transducer_y_label = new javax.swing.JLabel();
        transducer_y_texfield = new javax.swing.JTextField();
        transducer_z_label = new javax.swing.JLabel();
        transducer_z_texfield = new javax.swing.JTextField();
        automated_navigation_session_panel = new javax.swing.JPanel();
        auto_navigation_button = new javax.swing.JButton();
        stop_button = new javax.swing.JButton();
        echosounder_position_updated_panel = new javax.swing.JPanel();
        updated_toggle_button = new javax.swing.JToggleButton();
        echosounder_beam_angle_input_panel = new javax.swing.JPanel();
        beam_angle_input_textfield = new javax.swing.JTextField();
        session_progress_panel = new javax.swing.JPanel();
        progress_bar = new javax.swing.JProgressBar();
        jLabel1 = new javax.swing.JLabel();
        fish = new javax.swing.JLabel();
        setup_panel = new javax.swing.JPanel();
        jLabel14 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jLabel25 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        file_label = new javax.swing.JLabel();
        transceiver_connection_state_label = new javax.swing.JLabel();
        joystick_connection_state_label = new javax.swing.JLabel();
        comm_port_label_value = new javax.swing.JLabel();
        system_log_panel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        echocalSystemLog = new javax.swing.JTextArea();
        vessel_panel = new javax.swing.JPanel();
        vessel_graphic = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        new_menu_item = new javax.swing.JMenuItem();
        load_menu_item = new javax.swing.JMenuItem();
        editConfigurationFileMenuItem = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        joystick_switch = new javax.swing.JMenuItem();
        serial_connection_menu = new javax.swing.JMenu();
        calibrationModeMenuItem = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("EchoCal");
        setResizable(false);

        port_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Port Side", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        bottom_port_out_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_port_out_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/OutButton.png"))); // NOI18N
        bottom_port_out_button.setToolTipText("Reel Out Port Side Downrigger");
        bottom_port_out_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_port_out_buttonActionPerformed(evt);
            }
        });

        bottom_port_in_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_port_in_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/InButton.png"))); // NOI18N
        bottom_port_in_button.setToolTipText("Reel In Port Side Downrigger");
        bottom_port_in_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_port_in_buttonActionPerformed(evt);
            }
        });

        top_port_out_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_port_out_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/OutButton.png"))); // NOI18N
        top_port_out_button.setToolTipText("Reel Out Port Side Downrigger");
        top_port_out_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_port_out_buttonActionPerformed(evt);
            }
        });

        top_port_in_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_port_in_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/InButton.png"))); // NOI18N
        top_port_in_button.setToolTipText("Reel In Port Side Downrigger");
        top_port_in_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_port_in_buttonActionPerformed(evt);
            }
        });

        bottom_port_location_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Vessel Region", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        bottom_port_device_combobox.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_port_device_combobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Device" }));
        bottom_port_device_combobox.setEnabled(false);
        bottom_port_device_combobox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_port_device_comboboxActionPerformed(evt);
            }
        });

        fourth_count_label5.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        fourth_count_label5.setText("Counts");

        bottom_port_count_textfield.setEditable(false);
        bottom_port_count_textfield.setBackground(new java.awt.Color(255, 255, 255));
        bottom_port_count_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        bottom_port_set_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_port_set_textfield.setEnabled(false);

        bottom_port_set_button.setFont(new java.awt.Font("Calibri", 0, 10)); // NOI18N
        bottom_port_set_button.setText("Set");
        bottom_port_set_button.setEnabled(false);
        bottom_port_set_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_port_set_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout bottom_port_location_panelLayout = new javax.swing.GroupLayout(bottom_port_location_panel);
        bottom_port_location_panel.setLayout(bottom_port_location_panelLayout);
        bottom_port_location_panelLayout.setHorizontalGroup(
            bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bottom_port_location_panelLayout.createSequentialGroup()
                .addGroup(bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(bottom_port_location_panelLayout.createSequentialGroup()
                        .addGroup(bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(bottom_port_set_button)
                            .addGroup(bottom_port_location_panelLayout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(fourth_count_label5)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(bottom_port_count_textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE)
                            .addComponent(bottom_port_set_textfield))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(bottom_port_device_combobox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        bottom_port_location_panelLayout.setVerticalGroup(
            bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bottom_port_location_panelLayout.createSequentialGroup()
                .addComponent(bottom_port_device_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(fourth_count_label5)
                    .addComponent(bottom_port_count_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(bottom_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(bottom_port_set_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(bottom_port_set_button)))
        );

        top_port_location_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Vessel Region", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        top_port_device_combobox.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_port_device_combobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Device" }));
        top_port_device_combobox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_port_device_comboboxActionPerformed(evt);
            }
        });

        fourth_count_label8.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        fourth_count_label8.setText("Counts");

        top_port_count_textfield.setEditable(false);
        top_port_count_textfield.setBackground(new java.awt.Color(255, 255, 255));
        top_port_count_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_port_count_textfield.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_port_count_textfieldActionPerformed(evt);
            }
        });

        top_port_set_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_port_set_textfield.setEnabled(false);

        top_port_set_button.setFont(new java.awt.Font("Calibri", 0, 10)); // NOI18N
        top_port_set_button.setText("Set");
        top_port_set_button.setEnabled(false);
        top_port_set_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_port_set_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout top_port_location_panelLayout = new javax.swing.GroupLayout(top_port_location_panel);
        top_port_location_panel.setLayout(top_port_location_panelLayout);
        top_port_location_panelLayout.setHorizontalGroup(
            top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(top_port_location_panelLayout.createSequentialGroup()
                .addGroup(top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(top_port_location_panelLayout.createSequentialGroup()
                        .addGroup(top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(top_port_set_button)
                            .addGroup(top_port_location_panelLayout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(fourth_count_label8)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(top_port_count_textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE)
                            .addComponent(top_port_set_textfield))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(top_port_device_combobox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        top_port_location_panelLayout.setVerticalGroup(
            top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(top_port_location_panelLayout.createSequentialGroup()
                .addComponent(top_port_device_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(fourth_count_label8)
                    .addComponent(top_port_count_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(top_port_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(top_port_set_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(top_port_set_button)))
        );

        javax.swing.GroupLayout port_panelLayout = new javax.swing.GroupLayout(port_panel);
        port_panel.setLayout(port_panelLayout);
        port_panelLayout.setHorizontalGroup(
            port_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(port_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(port_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, port_panelLayout.createSequentialGroup()
                        .addComponent(top_port_in_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(top_port_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(top_port_out_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, port_panelLayout.createSequentialGroup()
                        .addComponent(bottom_port_in_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(bottom_port_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(bottom_port_out_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        port_panelLayout.setVerticalGroup(
            port_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(port_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(port_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(top_port_in_button, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(top_port_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(top_port_out_button, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(port_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(bottom_port_in_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(bottom_port_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(bottom_port_out_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        starboard_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Starboard Side", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        bottom_starboard_out_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_starboard_out_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/OutButton.png"))); // NOI18N
        bottom_starboard_out_button.setToolTipText("Reel Out Starboard Side Downrigger");
        bottom_starboard_out_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_starboard_out_buttonActionPerformed(evt);
            }
        });

        bottom_starboard_in_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_starboard_in_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/InButton.png"))); // NOI18N
        bottom_starboard_in_button.setToolTipText("Reel In Starboard Side Downrigger");
        bottom_starboard_in_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_starboard_in_buttonActionPerformed(evt);
            }
        });

        top_starboard_out_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_starboard_out_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/OutButton.png"))); // NOI18N
        top_starboard_out_button.setToolTipText("Reel Out Starboard Side Downrigger");
        top_starboard_out_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_starboard_out_buttonActionPerformed(evt);
            }
        });

        top_starboard_in_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_starboard_in_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/InButton.png"))); // NOI18N
        top_starboard_in_button.setToolTipText("Reel In Starboard Side Downrigger");
        top_starboard_in_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_starboard_in_buttonActionPerformed(evt);
            }
        });

        top_starboard_location_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Vessel Region", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        top_starboard_device_combobox.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_starboard_device_combobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Device" }));
        top_starboard_device_combobox.setToolTipText("");
        top_starboard_device_combobox.setEnabled(false);
        top_starboard_device_combobox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_starboard_device_comboboxActionPerformed(evt);
            }
        });

        fourth_count_label3.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        fourth_count_label3.setText("Counts");

        top_starboard_count_textfield.setEditable(false);
        top_starboard_count_textfield.setBackground(new java.awt.Color(255, 255, 255));
        top_starboard_count_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        top_starboard_set_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        top_starboard_set_textfield.setEnabled(false);

        top_starboard_set_button.setFont(new java.awt.Font("Calibri", 0, 10)); // NOI18N
        top_starboard_set_button.setText("Set");
        top_starboard_set_button.setEnabled(false);
        top_starboard_set_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                top_starboard_set_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout top_starboard_location_panelLayout = new javax.swing.GroupLayout(top_starboard_location_panel);
        top_starboard_location_panel.setLayout(top_starboard_location_panelLayout);
        top_starboard_location_panelLayout.setHorizontalGroup(
            top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(top_starboard_location_panelLayout.createSequentialGroup()
                .addGroup(top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(top_starboard_location_panelLayout.createSequentialGroup()
                        .addGroup(top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(top_starboard_set_button)
                            .addGroup(top_starboard_location_panelLayout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(fourth_count_label3)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(top_starboard_count_textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE)
                            .addComponent(top_starboard_set_textfield))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(top_starboard_device_combobox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        top_starboard_location_panelLayout.setVerticalGroup(
            top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(top_starboard_location_panelLayout.createSequentialGroup()
                .addComponent(top_starboard_device_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(fourth_count_label3)
                    .addComponent(top_starboard_count_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(top_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(top_starboard_set_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(top_starboard_set_button)))
        );

        bottom_starboard_location_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Vessel Region", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        bottom_starboard_device_combobox.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_starboard_device_combobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Device" }));
        bottom_starboard_device_combobox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_starboard_device_comboboxActionPerformed(evt);
            }
        });

        fourth_count_label4.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        fourth_count_label4.setText("Counts");

        bottom_starboard_count_textfield.setEditable(false);
        bottom_starboard_count_textfield.setBackground(new java.awt.Color(255, 255, 255));
        bottom_starboard_count_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        bottom_starboard_set_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        bottom_starboard_set_textfield.setEnabled(false);

        bottom_starboard_set_button.setFont(new java.awt.Font("Calibri", 0, 10)); // NOI18N
        bottom_starboard_set_button.setText("Set");
        bottom_starboard_set_button.setEnabled(false);
        bottom_starboard_set_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bottom_starboard_set_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout bottom_starboard_location_panelLayout = new javax.swing.GroupLayout(bottom_starboard_location_panel);
        bottom_starboard_location_panel.setLayout(bottom_starboard_location_panelLayout);
        bottom_starboard_location_panelLayout.setHorizontalGroup(
            bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bottom_starboard_location_panelLayout.createSequentialGroup()
                .addGroup(bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(bottom_starboard_location_panelLayout.createSequentialGroup()
                        .addGroup(bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(bottom_starboard_set_button)
                            .addGroup(bottom_starboard_location_panelLayout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(fourth_count_label4)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(bottom_starboard_count_textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE)
                            .addComponent(bottom_starboard_set_textfield))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(bottom_starboard_device_combobox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        bottom_starboard_location_panelLayout.setVerticalGroup(
            bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bottom_starboard_location_panelLayout.createSequentialGroup()
                .addComponent(bottom_starboard_device_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(fourth_count_label4)
                    .addComponent(bottom_starboard_count_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(bottom_starboard_location_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(bottom_starboard_set_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(bottom_starboard_set_button)))
        );

        javax.swing.GroupLayout starboard_panelLayout = new javax.swing.GroupLayout(starboard_panel);
        starboard_panel.setLayout(starboard_panelLayout);
        starboard_panelLayout.setHorizontalGroup(
            starboard_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(starboard_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(starboard_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(starboard_panelLayout.createSequentialGroup()
                        .addComponent(bottom_starboard_in_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(bottom_starboard_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(bottom_starboard_out_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(starboard_panelLayout.createSequentialGroup()
                        .addComponent(top_starboard_in_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(top_starboard_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(top_starboard_out_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        starboard_panelLayout.setVerticalGroup(
            starboard_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(starboard_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(starboard_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(top_starboard_location_panel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(top_starboard_out_button, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(top_starboard_in_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(starboard_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(bottom_starboard_out_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(bottom_starboard_in_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(bottom_starboard_location_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        virtual_joystick_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Virtual Joystick", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        right_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Right.png"))); // NOI18N
        right_button.setToolTipText("Displace Calibration Sphere Starboard Bound");
        right_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                right_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                right_buttonMouseExited(evt);
            }
        });
        right_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                right_buttonActionPerformed(evt);
            }
        });

        left_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Left.png"))); // NOI18N
        left_button.setToolTipText("Displace Calibration Sphere Port Bound");
        left_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                left_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                left_buttonMouseExited(evt);
            }
        });
        left_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                left_buttonActionPerformed(evt);
            }
        });

        depth_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Depth", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        rise_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Rise.png"))); // NOI18N
        rise_button.setToolTipText("Raise Calibration Sphere");
        rise_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                rise_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                rise_buttonMouseExited(evt);
            }
        });
        rise_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rise_buttonActionPerformed(evt);
            }
        });

        sink_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Sink.png"))); // NOI18N
        sink_button.setToolTipText("Sink Calibration Sphere");
        sink_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                sink_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                sink_buttonMouseExited(evt);
            }
        });
        sink_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sink_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout depth_panelLayout = new javax.swing.GroupLayout(depth_panel);
        depth_panel.setLayout(depth_panelLayout);
        depth_panelLayout.setHorizontalGroup(
            depth_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, depth_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(depth_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(rise_button, javax.swing.GroupLayout.DEFAULT_SIZE, 63, Short.MAX_VALUE)
                    .addComponent(sink_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        depth_panelLayout.setVerticalGroup(
            depth_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(depth_panelLayout.createSequentialGroup()
                .addComponent(rise_button, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(sink_button, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE))
        );

        backward_left_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/AftLeft.png"))); // NOI18N
        backward_left_button.setToolTipText("Displace Calibration Sphere Port Aft Bound");
        backward_left_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                backward_left_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                backward_left_buttonMouseExited(evt);
            }
        });
        backward_left_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                backward_left_buttonActionPerformed(evt);
            }
        });

        backward_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Aft.png"))); // NOI18N
        backward_button.setToolTipText("Displace Calibration Sphere Aft Bound");
        backward_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                backward_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                backward_buttonMouseExited(evt);
            }
        });
        backward_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                backward_buttonActionPerformed(evt);
            }
        });

        backward_right_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/AftRight.png"))); // NOI18N
        backward_right_button.setToolTipText("Displace Calibration Sphere Starboard Aft Bound");
        backward_right_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                backward_right_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                backward_right_buttonMouseExited(evt);
            }
        });
        backward_right_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                backward_right_buttonActionPerformed(evt);
            }
        });

        forward_left_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/ForwardLeft.png"))); // NOI18N
        forward_left_button.setToolTipText("Displace Calibration Sphere Port Forward Bound");
        forward_left_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                forward_left_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                forward_left_buttonMouseExited(evt);
            }
        });
        forward_left_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                forward_left_buttonActionPerformed(evt);
            }
        });

        forward_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Forward.png"))); // NOI18N
        forward_button.setToolTipText("Displace Calibration Sphere Forward Bound");
        forward_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                forward_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                forward_buttonMouseExited(evt);
            }
        });
        forward_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                forward_buttonActionPerformed(evt);
            }
        });

        forward_right_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/ForwardRight.png"))); // NOI18N
        forward_right_button.setToolTipText("Displace Calibration Sphere Starboard Forward Bound");
        forward_right_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                forward_right_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                forward_right_buttonMouseExited(evt);
            }
        });
        forward_right_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                forward_right_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout virtual_joystick_panelLayout = new javax.swing.GroupLayout(virtual_joystick_panel);
        virtual_joystick_panel.setLayout(virtual_joystick_panelLayout);
        virtual_joystick_panelLayout.setHorizontalGroup(
            virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(virtual_joystick_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(left_button, javax.swing.GroupLayout.DEFAULT_SIZE, 95, Short.MAX_VALUE)
                    .addComponent(backward_left_button, javax.swing.GroupLayout.DEFAULT_SIZE, 95, Short.MAX_VALUE)
                    .addComponent(forward_left_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(depth_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(backward_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(forward_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(right_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(backward_right_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(forward_right_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        virtual_joystick_panelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {backward_button, backward_left_button, backward_right_button, depth_panel, forward_button, forward_left_button, forward_right_button, left_button, right_button});

        virtual_joystick_panelLayout.setVerticalGroup(
            virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, virtual_joystick_panelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(forward_left_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(forward_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(forward_right_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(depth_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(right_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(left_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(virtual_joystick_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(backward_left_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(backward_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(backward_right_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        virtual_joystick_panelLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {backward_button, backward_left_button, backward_right_button, depth_panel, forward_button, forward_left_button, forward_right_button, left_button, right_button});

        coordinates_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Coordinates In Count Units", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        update_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        update_button.setText("Update");
        update_button.setToolTipText("Update Echosounder Target Position With Calibration Sphere Position");
        update_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                update_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                update_buttonMouseExited(evt);
            }
        });
        update_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                update_buttonActionPerformed(evt);
            }
        });

        navigate_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        navigate_button.setText("Navigate");
        navigate_button.setToolTipText("Navigate To Inputed Coordinates");
        navigate_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                navigate_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                navigate_buttonMouseExited(evt);
            }
        });
        navigate_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                navigate_buttonActionPerformed(evt);
            }
        });

        sphere_coordintes_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Calibration Sphere", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N
        sphere_coordintes_panel.setToolTipText("Calibration Sphere Coordinates");

        sphere_x_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        sphere_x_label.setText("X");

        sphere_x_texfield.setEditable(false);
        sphere_x_texfield.setBackground(new java.awt.Color(255, 255, 255));
        sphere_x_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        sphere_x_texfield.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sphere_x_texfieldActionPerformed(evt);
            }
        });

        sphere_y_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        sphere_y_label.setText("Y");

        sphere_y_texfield.setEditable(false);
        sphere_y_texfield.setBackground(new java.awt.Color(255, 255, 255));
        sphere_y_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        sphere_z_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        sphere_z_label.setText("Z");

        sphere_z_texfield.setEditable(false);
        sphere_z_texfield.setBackground(new java.awt.Color(255, 255, 255));
        sphere_z_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        javax.swing.GroupLayout sphere_coordintes_panelLayout = new javax.swing.GroupLayout(sphere_coordintes_panel);
        sphere_coordintes_panel.setLayout(sphere_coordintes_panelLayout);
        sphere_coordintes_panelLayout.setHorizontalGroup(
            sphere_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, sphere_coordintes_panelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(sphere_x_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(sphere_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(sphere_y_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(sphere_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(sphere_z_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(sphere_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        sphere_coordintes_panelLayout.setVerticalGroup(
            sphere_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(sphere_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(sphere_x_label)
                .addComponent(sphere_y_label)
                .addComponent(sphere_z_label)
                .addComponent(sphere_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(sphere_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(sphere_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        echosounder_coordintes_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Target Center Point", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N
        echosounder_coordintes_panel.setToolTipText("Echosounder Target Coordinates");

        echosounder_x_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        echosounder_x_label.setText("X");

        echosounder_x_texfield.setEditable(false);
        echosounder_x_texfield.setBackground(new java.awt.Color(255, 255, 255));
        echosounder_x_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        echosounder_x_texfield.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                echosounder_x_texfieldActionPerformed(evt);
            }
        });

        echosounder_y_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        echosounder_y_label.setText("Y");

        echosounder_y_texfield.setEditable(false);
        echosounder_y_texfield.setBackground(new java.awt.Color(255, 255, 255));
        echosounder_y_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        echosounder_z_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        echosounder_z_label.setText("Z");

        echosounder_z_texfield.setEditable(false);
        echosounder_z_texfield.setBackground(new java.awt.Color(255, 255, 255));
        echosounder_z_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        javax.swing.GroupLayout echosounder_coordintes_panelLayout = new javax.swing.GroupLayout(echosounder_coordintes_panel);
        echosounder_coordintes_panel.setLayout(echosounder_coordintes_panelLayout);
        echosounder_coordintes_panelLayout.setHorizontalGroup(
            echosounder_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, echosounder_coordintes_panelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(echosounder_x_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(echosounder_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(echosounder_y_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(echosounder_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(echosounder_z_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(echosounder_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        echosounder_coordintes_panelLayout.setVerticalGroup(
            echosounder_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(echosounder_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(echosounder_x_label)
                .addComponent(echosounder_y_label)
                .addComponent(echosounder_z_label)
                .addComponent(echosounder_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(echosounder_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(echosounder_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        navigation_coordintes_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Navigation Input", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N
        navigation_coordintes_panel.setToolTipText("Input Coordinates For Calibration Sphere Navigation ");

        navigation_x_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        navigation_x_label.setText("X");

        navigation_x_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        navigation_y_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        navigation_y_label.setText("Y");

        navigation_y_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        navigation_z_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        navigation_z_label.setText("Z");

        navigation_z_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        javax.swing.GroupLayout navigation_coordintes_panelLayout = new javax.swing.GroupLayout(navigation_coordintes_panel);
        navigation_coordintes_panel.setLayout(navigation_coordintes_panelLayout);
        navigation_coordintes_panelLayout.setHorizontalGroup(
            navigation_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, navigation_coordintes_panelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(navigation_x_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(navigation_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(navigation_y_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(navigation_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(navigation_z_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(navigation_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        navigation_coordintes_panelLayout.setVerticalGroup(
            navigation_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(navigation_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(navigation_x_label)
                .addComponent(navigation_y_label)
                .addComponent(navigation_z_label)
                .addComponent(navigation_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(navigation_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(navigation_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        transducer_coordintes_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Transducer", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N
        transducer_coordintes_panel.setToolTipText("Transducer Coordinates");

        transducer_x_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        transducer_x_label.setText("X");

        transducer_x_texfield.setEditable(false);
        transducer_x_texfield.setBackground(new java.awt.Color(255, 255, 255));
        transducer_x_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        transducer_y_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        transducer_y_label.setText("Y");

        transducer_y_texfield.setEditable(false);
        transducer_y_texfield.setBackground(new java.awt.Color(255, 255, 255));
        transducer_y_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        transducer_z_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        transducer_z_label.setText("Z");

        transducer_z_texfield.setEditable(false);
        transducer_z_texfield.setBackground(new java.awt.Color(255, 255, 255));
        transducer_z_texfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N

        javax.swing.GroupLayout transducer_coordintes_panelLayout = new javax.swing.GroupLayout(transducer_coordintes_panel);
        transducer_coordintes_panel.setLayout(transducer_coordintes_panelLayout);
        transducer_coordintes_panelLayout.setHorizontalGroup(
            transducer_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, transducer_coordintes_panelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(transducer_x_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(transducer_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(transducer_y_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(transducer_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(transducer_z_label)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(transducer_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        transducer_coordintes_panelLayout.setVerticalGroup(
            transducer_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(transducer_coordintes_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(transducer_x_label)
                .addComponent(transducer_y_label)
                .addComponent(transducer_z_label)
                .addComponent(transducer_z_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(transducer_y_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(transducer_x_texfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        javax.swing.GroupLayout coordinates_panelLayout = new javax.swing.GroupLayout(coordinates_panel);
        coordinates_panel.setLayout(coordinates_panelLayout);
        coordinates_panelLayout.setHorizontalGroup(
            coordinates_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(coordinates_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(coordinates_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(navigation_coordintes_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(sphere_coordintes_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(echosounder_coordintes_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(transducer_coordintes_panel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(coordinates_panelLayout.createSequentialGroup()
                        .addComponent(update_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(navigate_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );

        coordinates_panelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {navigate_button, update_button});

        coordinates_panelLayout.setVerticalGroup(
            coordinates_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, coordinates_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(sphere_coordintes_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(echosounder_coordintes_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(transducer_coordintes_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(navigation_coordintes_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(coordinates_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(update_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(navigate_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        coordinates_panelLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {navigate_button, update_button});

        automated_navigation_session_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Automated Calibration Session", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        auto_navigation_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Play.png"))); // NOI18N
        auto_navigation_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseExited(java.awt.event.MouseEvent evt) {
                auto_navigation_buttonMouseExited(evt);
            }
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                auto_navigation_buttonMouseEntered(evt);
            }
        });
        auto_navigation_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                auto_navigation_buttonActionPerformed(evt);
            }
        });

        stop_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/Stop.png"))); // NOI18N
        stop_button.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                stop_buttonMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                stop_buttonMouseExited(evt);
            }
        });
        stop_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                stop_buttonActionPerformed(evt);
            }
        });

        echosounder_position_updated_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Is the target center point updated?", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        updated_toggle_button.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        updated_toggle_button.setText("Yes");
        updated_toggle_button.setToolTipText("Click If The Echosounder Target Position Has Been Acurately Updated With The Update Button");
        updated_toggle_button.setActionCommand("Click If Yes");
        updated_toggle_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                updated_toggle_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout echosounder_position_updated_panelLayout = new javax.swing.GroupLayout(echosounder_position_updated_panel);
        echosounder_position_updated_panel.setLayout(echosounder_position_updated_panelLayout);
        echosounder_position_updated_panelLayout.setHorizontalGroup(
            echosounder_position_updated_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(echosounder_position_updated_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(updated_toggle_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        echosounder_position_updated_panelLayout.setVerticalGroup(
            echosounder_position_updated_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(updated_toggle_button, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        echosounder_beam_angle_input_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Input Full Echosounder Beam Angle", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        beam_angle_input_textfield.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        beam_angle_input_textfield.setToolTipText("Input Echosounder Full Beam Angle In Degrees");
        beam_angle_input_textfield.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                beam_angle_input_textfieldActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout echosounder_beam_angle_input_panelLayout = new javax.swing.GroupLayout(echosounder_beam_angle_input_panel);
        echosounder_beam_angle_input_panel.setLayout(echosounder_beam_angle_input_panelLayout);
        echosounder_beam_angle_input_panelLayout.setHorizontalGroup(
            echosounder_beam_angle_input_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(echosounder_beam_angle_input_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(beam_angle_input_textfield)
                .addContainerGap())
        );
        echosounder_beam_angle_input_panelLayout.setVerticalGroup(
            echosounder_beam_angle_input_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(beam_angle_input_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        session_progress_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Calibration Session Progress", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        javax.swing.GroupLayout session_progress_panelLayout = new javax.swing.GroupLayout(session_progress_panel);
        session_progress_panel.setLayout(session_progress_panelLayout);
        session_progress_panelLayout.setHorizontalGroup(
            session_progress_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(session_progress_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(progress_bar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        session_progress_panelLayout.setVerticalGroup(
            session_progress_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(progress_bar, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE)
        );

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/guiLogo.png"))); // NOI18N

        javax.swing.GroupLayout automated_navigation_session_panelLayout = new javax.swing.GroupLayout(automated_navigation_session_panel);
        automated_navigation_session_panel.setLayout(automated_navigation_session_panelLayout);
        automated_navigation_session_panelLayout.setHorizontalGroup(
            automated_navigation_session_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, automated_navigation_session_panelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(automated_navigation_session_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addGroup(automated_navigation_session_panelLayout.createSequentialGroup()
                        .addComponent(auto_navigation_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                        .addComponent(stop_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(session_progress_panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(echosounder_position_updated_panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(echosounder_beam_angle_input_panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, automated_navigation_session_panelLayout.createSequentialGroup()
                        .addGap(71, 71, 71)
                        .addComponent(jLabel1)))
                .addContainerGap())
        );

        automated_navigation_session_panelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {auto_navigation_button, stop_button});

        automated_navigation_session_panelLayout.setVerticalGroup(
            automated_navigation_session_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, automated_navigation_session_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(echosounder_beam_angle_input_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(echosounder_position_updated_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(session_progress_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(automated_navigation_session_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(auto_navigation_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(stop_button, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        setup_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Setup Panel", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        jLabel14.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        jLabel14.setText("Vessel Configuration File");

        jLabel24.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        jLabel24.setText("Transceiver Connection");

        jLabel25.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        jLabel25.setText("Joystick Connection");

        jLabel26.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        jLabel26.setText("Comm Port");

        file_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        file_label.setForeground(new java.awt.Color(255, 0, 0));
        file_label.setText("No File Loaded");

        transceiver_connection_state_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        transceiver_connection_state_label.setForeground(new java.awt.Color(255, 0, 0));
        transceiver_connection_state_label.setText("Disconnected");

        joystick_connection_state_label.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        joystick_connection_state_label.setForeground(new java.awt.Color(255, 0, 0));
        joystick_connection_state_label.setText("Disconnected");

        comm_port_label_value.setFont(new java.awt.Font("Calibri", 0, 11)); // NOI18N
        comm_port_label_value.setForeground(new java.awt.Color(255, 0, 0));
        comm_port_label_value.setText("Unconfigured");

        javax.swing.GroupLayout setup_panelLayout = new javax.swing.GroupLayout(setup_panel);
        setup_panel.setLayout(setup_panelLayout);
        setup_panelLayout.setHorizontalGroup(
            setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(setup_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(setup_panelLayout.createSequentialGroup()
                        .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel26)
                            .addComponent(jLabel25))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 186, Short.MAX_VALUE)
                        .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(joystick_connection_state_label, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(comm_port_label_value, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(setup_panelLayout.createSequentialGroup()
                        .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel14)
                            .addComponent(jLabel24))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(file_label)
                            .addComponent(transceiver_connection_state_label, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );
        setup_panelLayout.setVerticalGroup(
            setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(setup_panelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel14)
                    .addComponent(file_label))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(transceiver_connection_state_label)
                    .addComponent(jLabel24))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel25)
                    .addComponent(joystick_connection_state_label))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(setup_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel26)
                    .addComponent(comm_port_label_value))
                .addContainerGap(54, Short.MAX_VALUE))
        );

        system_log_panel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "EchoCal Log", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N
        system_log_panel1.setToolTipText("EchoCal Log");

        echocalSystemLog.setColumns(20);
        echocalSystemLog.setFont(new java.awt.Font("Calibri", 0, 13)); // NOI18N
        echocalSystemLog.setRows(5);
        jScrollPane1.setViewportView(echocalSystemLog);

        javax.swing.GroupLayout system_log_panel1Layout = new javax.swing.GroupLayout(system_log_panel1);
        system_log_panel1.setLayout(system_log_panel1Layout);
        system_log_panel1Layout.setHorizontalGroup(
            system_log_panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(system_log_panel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1)
                .addContainerGap())
        );
        system_log_panel1Layout.setVerticalGroup(
            system_log_panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, system_log_panel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1)
                .addContainerGap())
        );

        vessel_panel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Vessel Confiuration", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Calibri", 1, 11))); // NOI18N

        vessel_graphic.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ecosounder/calibration/software/Echocal_Diagrams/unconfigured.png"))); // NOI18N

        javax.swing.GroupLayout vessel_panelLayout = new javax.swing.GroupLayout(vessel_panel);
        vessel_panel.setLayout(vessel_panelLayout);
        vessel_panelLayout.setHorizontalGroup(
            vessel_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(vessel_graphic, javax.swing.GroupLayout.DEFAULT_SIZE, 99, Short.MAX_VALUE)
        );
        vessel_panelLayout.setVerticalGroup(
            vessel_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(vessel_graphic, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        jMenu1.setText("File");

        new_menu_item.setText("New Configuration File");
        new_menu_item.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                new_menu_itemActionPerformed(evt);
            }
        });
        jMenu1.add(new_menu_item);

        load_menu_item.setText("Load Configuration File");
        load_menu_item.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                load_menu_itemActionPerformed(evt);
            }
        });
        jMenu1.add(load_menu_item);

        editConfigurationFileMenuItem.setText("Edit Configuration FIle");
        editConfigurationFileMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                editConfigurationFileMenuItemActionPerformed(evt);
            }
        });
        jMenu1.add(editConfigurationFileMenuItem);

        jMenuItem6.setText("Exit ");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem6ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem6);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Setup");

        joystick_switch.setText("Connect Joystick");
        joystick_switch.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                joystick_switchActionPerformed(evt);
            }
        });
        jMenu2.add(joystick_switch);

        serial_connection_menu.setText("Connect Transciever With");
        jMenu2.add(serial_connection_menu);

        calibrationModeMenuItem.setText("Enable Calibration Mode");
        calibrationModeMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                calibrationModeMenuItemActionPerformed(evt);
            }
        });
        jMenu2.add(calibrationModeMenuItem);

        jMenuBar1.add(jMenu2);

        jMenu3.setText("Help");

        jMenuItem1.setText("About EchoCal");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu3.add(jMenuItem1);

        jMenuBar1.add(jMenu3);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(fish))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(automated_navigation_session_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(virtual_joystick_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(coordinates_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(port_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(vessel_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(starboard_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(setup_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(system_log_panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(port_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(vessel_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(starboard_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(automated_navigation_session_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(virtual_joystick_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(coordinates_panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(system_log_panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(setup_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(fish)
                .addContainerGap())
        );

        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {port_panel, starboard_panel});

        pack();
    }