/* * TeamPanel.java * * Created on July 17, 2000, 1:06 AM */ package demo.helicopter; import java.awt.*; import java.awt.event.*; import javax.swing.*; import mil.navy.nps.dis.*; import java.text.*; // for class DecimalFormat import java.util.*; // for class Vector import mil.navy.nps.testing.*; // for MulticastPduSender import mil.navy.nps.util.*; import mil.navy.nps.disEnumerations.*; /** * Class TeamPanel creates the panel to control the aggregation enity and the * in the aggregated entities * @author Thomas Miller * @version 1.1 */ public class TeamPanel extends javax.swing.JFrame { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenu jMenu1; private javax.swing.JMenuItem boundMenuItem; private javax.swing.JSeparator jSeparator1; private javax.swing.JMenuItem StopBoundMenuItem; private javax.swing.JPanel jPanel1; private javax.swing.JSlider SpeedSlider; private javax.swing.JLabel SpeedLabel; private javax.swing.JTextField speedTextField; private javax.swing.JTextField TurnRateTextField; private javax.swing.JLabel TurnRateLabel; private javax.swing.JTextField directionTextField; private javax.swing.JSlider DirectionSlider; private javax.swing.JLabel headingLabel; private javax.swing.JPanel jPanel2; private javax.swing.JButton wedgeButton; private javax.swing.JButton lineButton; private javax.swing.JButton columnButton; private javax.swing.JButton mountHeloButton; private javax.swing.JButton dismountHeloLeftButton; private javax.swing.JButton dismountHeloRightButton; private javax.swing.JButton HoldButton; private javax.swing.JButton visibleButton; private javax.swing.JPanel jPanel3; private javax.swing.JSlider ClimbRateSlider; private javax.swing.JLabel ClimbRateLabel; private javax.swing.JTextField ClimbRateTextField; private javax.swing.JLabel HeightLabel; private javax.swing.JLabel AboveGroundLabel; private javax.swing.JTextField AboveGroundTextField; private javax.swing.JSlider HighSpeedSlider; private javax.swing.JLabel HighLabel; private javax.swing.JLabel SpeedLabel2; private javax.swing.JTextField HighSpeedTextField; // End of variables declaration//GEN-END:variables private HumanPanel leader; private HumanPanel rifle1; private HumanPanel rifle2; private HumanPanel grenadier; private HumanPanel autoGun; private HeloPanel huey; private BehaviorStreamBufferUDP behaviorStreamBuffer; private CollisionDetectionTerrainReader ter; private Compass wayFinder; private TeamActionInterpreter tai; private boolean allInLine; private boolean allExited; private boolean allHeld; private static int speed = 0; public final int COLUMN = 0; public final int LINE = 1; public final int WEDGE = 2; public final int MOUNT_HELO = 3; public final int UNMOUNT_HELO = 4; public final int HOLD = 5; private Random randNum; private int chooser; public static int set = 0; /** Creates new form TeamPanel * @param String ipAddr - a string defing the IP address * @param int portNum - the port number receiving the network packets * @param int timeToLive - Number of routing hops allowed * @param short siteNum - site Number of simualtion * @param short appNum - application number of the simulation * @param short idNum - entiy's id number * @param String marking - entity's text name * @param boolean rtpHeaderEnabled - wheteher or not the real-time header * is enabled or not */ public TeamPanel ( String ipAddr, int portNum, int timeToLive, short siteNum, short appNum, short id, String marking, boolean rtpHeaderEnabled ) { behaviorStreamBuffer = new BehaviorStreamBufferUDP ( ipAddr, portNum ); behaviorStreamBuffer.setTimeToLive ( timeToLive ); Thread pduReader = new Thread ( behaviorStreamBuffer ); pduReader.start (); ter = new CollisionDetectionTerrainReader (); ter.parseFile (); initComponents (); wayFinder = new Compass ( 0, id ); wayFinder.setMaximumSize (new java.awt.Dimension (60, 60)); java.awt.GridBagConstraints gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 2; gridBagConstraints2.gridy = 3; gridBagConstraints2.gridwidth = 3; gridBagConstraints2.gridheight = 2; gridBagConstraints2.fill = java.awt.GridBagConstraints.BOTH; jPanel1.add ( wayFinder, gridBagConstraints2 ); tai = new TeamActionInterpreter ( ipAddr, portNum, timeToLive, siteNum, appNum, id, marking, rtpHeaderEnabled, this, behaviorStreamBuffer, ter); tai.start (); setSize ( 1000, 600 ); setTitle ( "Team Panel: " + marking + "***" + id ); leader = new HumanPanel ( ipAddr, portNum, timeToLive, siteNum, appNum, ( short ) (( id * 10 ) + 1), "Leader", rtpHeaderEnabled, false, behaviorStreamBuffer, ter, tai); rifle1 = new HumanPanel ( ipAddr, portNum, timeToLive, siteNum, appNum, (short)((id * 10) + 2), "Rifle1", rtpHeaderEnabled, false, behaviorStreamBuffer, ter, tai); rifle2 = new HumanPanel ( ipAddr, portNum, timeToLive, siteNum, appNum, (short)((id * 10) + 3), "Rifle2", rtpHeaderEnabled, false, behaviorStreamBuffer, ter, tai); grenadier = new HumanPanel ( ipAddr, portNum, timeToLive, siteNum, appNum, (short)((id * 10) + 4), "Grenadier", rtpHeaderEnabled, false,behaviorStreamBuffer, ter, tai); autoGun = new HumanPanel ( ipAddr, portNum, timeToLive, siteNum, appNum, (short)((id * 10) + 5), "AutoGun", rtpHeaderEnabled, false, behaviorStreamBuffer, ter, tai); huey = new HeloPanel ( ipAddr, portNum, timeToLive, siteNum, appNum, (short)((id * 10) + 6), "Huey", rtpHeaderEnabled, false, behaviorStreamBuffer, ter, tai); getContentPane ().add ( leader ); getContentPane ().add ( rifle1 ); getContentPane ().add ( rifle2 ); getContentPane ().add ( grenadier ); getContentPane ().add ( autoGun ); getContentPane ().add ( huey ); SpeedSlider.putClientProperty ( "JSlider.isFilled", Boolean.TRUE ); DirectionSlider.putClientProperty ( "JSlider.isFilled", Boolean.TRUE ); allInLine = false; allExited = false; allHeld = false; randNum = new Random (); chooser = 0; } // end constructor /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the FormEditor. */ private void initComponents ()//GEN-BEGIN:initComponents { jMenuBar1 = new javax.swing.JMenuBar (); jMenu1 = new javax.swing.JMenu (); boundMenuItem = new javax.swing.JMenuItem (); jSeparator1 = new javax.swing.JSeparator (); StopBoundMenuItem = new javax.swing.JMenuItem (); jPanel1 = new javax.swing.JPanel (); SpeedSlider = new javax.swing.JSlider (); SpeedLabel = new javax.swing.JLabel (); speedTextField = new javax.swing.JTextField (); TurnRateTextField = new javax.swing.JTextField (); TurnRateLabel = new javax.swing.JLabel (); directionTextField = new javax.swing.JTextField (); DirectionSlider = new javax.swing.JSlider (); headingLabel = new javax.swing.JLabel (); jPanel2 = new javax.swing.JPanel (); wedgeButton = new javax.swing.JButton (); lineButton = new javax.swing.JButton (); columnButton = new javax.swing.JButton (); mountHeloButton = new javax.swing.JButton (); dismountHeloLeftButton = new javax.swing.JButton (); dismountHeloRightButton = new javax.swing.JButton (); HoldButton = new javax.swing.JButton (); visibleButton = new javax.swing.JButton (); jPanel3 = new javax.swing.JPanel (); ClimbRateSlider = new javax.swing.JSlider (); ClimbRateLabel = new javax.swing.JLabel (); ClimbRateTextField = new javax.swing.JTextField (); HeightLabel = new javax.swing.JLabel (); AboveGroundLabel = new javax.swing.JLabel (); AboveGroundTextField = new javax.swing.JTextField (); HighSpeedSlider = new javax.swing.JSlider (); HighLabel = new javax.swing.JLabel (); SpeedLabel2 = new javax.swing.JLabel (); HighSpeedTextField = new javax.swing.JTextField (); jMenu1.setText ("Other Actions"); jMenu1.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { jMenu1ActionPerformed (evt); } } ); boundMenuItem.setText ("Bound"); boundMenuItem.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { boundMenuItemActionPerformed (evt); } } ); jMenu1.add (boundMenuItem); jMenu1.add (jSeparator1); StopBoundMenuItem.setText ("Stop Bound"); StopBoundMenuItem.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { StopBoundMenuItemActionPerformed (evt); } } ); jMenu1.add (StopBoundMenuItem); jMenuBar1.add (jMenu1); getContentPane ().setLayout (new java.awt.GridLayout (3, 3)); setBackground (java.awt.Color.white); addWindowListener (new java.awt.event.WindowAdapter () { public void windowClosing (java.awt.event.WindowEvent evt) { exitForm (evt); } } ); jPanel1.setLayout (new java.awt.GridBagLayout ()); java.awt.GridBagConstraints gridBagConstraints1; jPanel1.setBackground (java.awt.Color.blue); SpeedSlider.setPaintTrack (false); SpeedSlider.setSnapToTicks (true); SpeedSlider.setPreferredSize (new java.awt.Dimension (50, 200)); SpeedSlider.setName ("Speed"); SpeedSlider.setMinimumSize (new java.awt.Dimension (50, 100)); SpeedSlider.setMinorTickSpacing (1); SpeedSlider.setPaintLabels (true); SpeedSlider.setPaintTicks (true); SpeedSlider.setOrientation (javax.swing.SwingConstants.VERTICAL); SpeedSlider.setMajorTickSpacing (5); SpeedSlider.setMaximum (10); SpeedSlider.setForeground (java.awt.Color.yellow); SpeedSlider.setBackground (java.awt.Color.blue); SpeedSlider.setValue (0); SpeedSlider.setMaximumSize (new java.awt.Dimension (50, 32767)); SpeedSlider.addChangeListener (new javax.swing.event.ChangeListener () { public void stateChanged (javax.swing.event.ChangeEvent evt) { SpeedSliderStateChanged (evt); } } ); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 0; gridBagConstraints1.gridy = 1; gridBagConstraints1.gridheight = 3; jPanel1.add (SpeedSlider, gridBagConstraints1); SpeedLabel.setText ("Speed"); SpeedLabel.setForeground (java.awt.Color.yellow); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 0; gridBagConstraints1.gridy = 0; jPanel1.add (SpeedLabel, gridBagConstraints1); speedTextField.setPreferredSize (new java.awt.Dimension (40, 20)); speedTextField.setText ("0"); speedTextField.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); speedTextField.setMinimumSize (new java.awt.Dimension (40, 20)); speedTextField.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { speedTextFieldActionPerformed (evt); } } ); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 0; gridBagConstraints1.gridy = 4; jPanel1.add (speedTextField, gridBagConstraints1); TurnRateTextField.setPreferredSize (new java.awt.Dimension (40, 20)); TurnRateTextField.setText ("0"); TurnRateTextField.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); TurnRateTextField.setMinimumSize (new java.awt.Dimension (40, 20)); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 5; gridBagConstraints1.gridy = 1; jPanel1.add (TurnRateTextField, gridBagConstraints1); TurnRateLabel.setPreferredSize (new java.awt.Dimension (60, 16)); TurnRateLabel.setMinimumSize (new java.awt.Dimension (60, 16)); TurnRateLabel.setText ("Turn Rate"); TurnRateLabel.setForeground (java.awt.Color.yellow); TurnRateLabel.setMaximumSize (new java.awt.Dimension (60, 16)); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 2; gridBagConstraints1.gridy = 1; jPanel1.add (TurnRateLabel, gridBagConstraints1); directionTextField.setPreferredSize (new java.awt.Dimension (40, 20)); directionTextField.setText ("0"); directionTextField.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); directionTextField.setMinimumSize (new java.awt.Dimension (40, 20)); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 5; gridBagConstraints1.gridy = 4; jPanel1.add (directionTextField, gridBagConstraints1); DirectionSlider.setPaintTrack (false); DirectionSlider.setPreferredSize (new java.awt.Dimension (200, 45)); DirectionSlider.setMinimumSize (new java.awt.Dimension (120, 45)); DirectionSlider.setMinorTickSpacing (5); DirectionSlider.setPaintLabels (true); DirectionSlider.setPaintTicks (true); DirectionSlider.setMinimum (-60); DirectionSlider.setMajorTickSpacing (20); DirectionSlider.setMaximum (60); DirectionSlider.setForeground (java.awt.Color.yellow); DirectionSlider.setBackground (java.awt.Color.blue); DirectionSlider.setValue (0); DirectionSlider.addChangeListener (new javax.swing.event.ChangeListener () { public void stateChanged (javax.swing.event.ChangeEvent evt) { DirectionSliderStateChanged (evt); } } ); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 1; gridBagConstraints1.gridy = 2; gridBagConstraints1.gridwidth = 5; jPanel1.add (DirectionSlider, gridBagConstraints1); headingLabel.setText ("Heading"); headingLabel.setForeground (java.awt.Color.yellow); gridBagConstraints1 = new java.awt.GridBagConstraints (); gridBagConstraints1.gridx = 5; gridBagConstraints1.gridy = 3; jPanel1.add (headingLabel, gridBagConstraints1); getContentPane ().add (jPanel1); jPanel2.setLayout (new java.awt.GridLayout (3, 3)); jPanel2.setBackground (java.awt.Color.blue); wedgeButton.setText ("Wedge"); wedgeButton.setBackground (java.awt.Color.cyan); wedgeButton.addMouseListener (new java.awt.event.MouseAdapter () { public void mouseClicked (java.awt.event.MouseEvent evt) { wedgeButtonMouseClicked (evt); } } ); jPanel2.add (wedgeButton); lineButton.setText ("Line"); lineButton.setBackground (java.awt.Color.cyan); lineButton.addMouseListener (new java.awt.event.MouseAdapter () { public void mouseClicked (java.awt.event.MouseEvent evt) { lineButtonMouseClicked (evt); } } ); jPanel2.add (lineButton); columnButton.setText ("Column"); columnButton.setBackground (java.awt.Color.cyan); columnButton.addMouseListener (new java.awt.event.MouseAdapter () { public void mouseClicked (java.awt.event.MouseEvent evt) { columnButtonMouseClicked (evt); } } ); jPanel2.add (columnButton); mountHeloButton.setActionCommand ("LoadHelo"); mountHeloButton.setText ("LoadHelo"); mountHeloButton.setBackground (java.awt.Color.cyan); mountHeloButton.addMouseListener (new java.awt.event.MouseAdapter () { public void mouseClicked (java.awt.event.MouseEvent evt) { mountHeloButtonMouseClicked (evt); } } ); jPanel2.add (mountHeloButton); dismountHeloLeftButton.setText ("UnloadLeft"); dismountHeloLeftButton.setBackground (java.awt.Color.cyan); dismountHeloLeftButton.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { dismountHeloLeftButtonActionPerformed (evt); } } ); jPanel2.add (dismountHeloLeftButton); dismountHeloRightButton.setHorizontalTextPosition (javax.swing.SwingConstants.CENTER); dismountHeloRightButton.setText ("UnloadRight"); dismountHeloRightButton.setBackground (java.awt.Color.cyan); dismountHeloRightButton.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { dismountHeloRightButtonActionPerformed (evt); } } ); jPanel2.add (dismountHeloRightButton); HoldButton.setHorizontalTextPosition (javax.swing.SwingConstants.CENTER); HoldButton.setText ("Hold"); HoldButton.setBackground (java.awt.Color.cyan); HoldButton.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { HoldButtonActionPerformed (evt); } } ); jPanel2.add (HoldButton); visibleButton.setText ("Visible"); visibleButton.setBackground (java.awt.Color.yellow); visibleButton.addMouseListener (new java.awt.event.MouseAdapter () { public void mouseClicked (java.awt.event.MouseEvent evt) { visibleButtonMouseClicked (evt); } } ); jPanel2.add (visibleButton); getContentPane ().add (jPanel2); jPanel3.setLayout (new java.awt.GridBagLayout ()); java.awt.GridBagConstraints gridBagConstraints2; jPanel3.setBackground (java.awt.Color.blue); ClimbRateSlider.setPaintTrack (false); ClimbRateSlider.setMinimumSize (new java.awt.Dimension (45, 100)); ClimbRateSlider.setMinorTickSpacing (5); ClimbRateSlider.setPaintLabels (true); ClimbRateSlider.setPaintTicks (true); ClimbRateSlider.setOrientation (javax.swing.SwingConstants.VERTICAL); ClimbRateSlider.setMinimum (-40); ClimbRateSlider.setMajorTickSpacing (20); ClimbRateSlider.setMaximum (40); ClimbRateSlider.setForeground (java.awt.Color.yellow); ClimbRateSlider.setBackground (java.awt.Color.blue); ClimbRateSlider.setValue (0); ClimbRateSlider.addChangeListener (new javax.swing.event.ChangeListener () { public void stateChanged (javax.swing.event.ChangeEvent evt) { ClimbRateSliderStateChanged (evt); } } ); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 2; gridBagConstraints2.gridheight = 3; jPanel3.add (ClimbRateSlider, gridBagConstraints2); ClimbRateLabel.setText ("Climb Rate"); ClimbRateLabel.setForeground (java.awt.Color.yellow); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 1; jPanel3.add (ClimbRateLabel, gridBagConstraints2); ClimbRateTextField.setPreferredSize (new java.awt.Dimension (30, 20)); ClimbRateTextField.setText ("0"); ClimbRateTextField.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); ClimbRateTextField.setMinimumSize (new java.awt.Dimension (30, 20)); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 5; jPanel3.add (ClimbRateTextField, gridBagConstraints2); HeightLabel.setText ("Height"); HeightLabel.setForeground (java.awt.Color.yellow); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 2; gridBagConstraints2.gridy = 0; jPanel3.add (HeightLabel, gridBagConstraints2); AboveGroundLabel.setText ("Above Ground"); AboveGroundLabel.setForeground (java.awt.Color.yellow); AboveGroundLabel.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 2; gridBagConstraints2.gridy = 1; jPanel3.add (AboveGroundLabel, gridBagConstraints2); AboveGroundTextField.setPreferredSize (new java.awt.Dimension (30, 20)); AboveGroundTextField.setText ("0"); AboveGroundTextField.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); AboveGroundTextField.setMinimumSize (new java.awt.Dimension (30, 20)); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 2; gridBagConstraints2.gridy = 2; jPanel3.add (AboveGroundTextField, gridBagConstraints2); HighSpeedSlider.setPaintTrack (false); HighSpeedSlider.setPreferredSize (new java.awt.Dimension (55, 200)); HighSpeedSlider.setMinimumSize (new java.awt.Dimension (55, 100)); HighSpeedSlider.setMinorTickSpacing (10); HighSpeedSlider.setPaintLabels (true); HighSpeedSlider.setPaintTicks (true); HighSpeedSlider.setOrientation (javax.swing.SwingConstants.VERTICAL); HighSpeedSlider.setMajorTickSpacing (20); HighSpeedSlider.setMaximum (120); HighSpeedSlider.setForeground (java.awt.Color.yellow); HighSpeedSlider.setBackground (java.awt.Color.blue); HighSpeedSlider.setValue (0); HighSpeedSlider.setMaximumSize (new java.awt.Dimension (55, 32767)); HighSpeedSlider.addChangeListener (new javax.swing.event.ChangeListener () { public void stateChanged (javax.swing.event.ChangeEvent evt) { HighSpeedSliderStateChanged (evt); } } ); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 2; gridBagConstraints2.gridheight = 3; jPanel3.add (HighSpeedSlider, gridBagConstraints2); HighLabel.setText ("High"); HighLabel.setForeground (java.awt.Color.yellow); HighLabel.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 0; jPanel3.add (HighLabel, gridBagConstraints2); SpeedLabel2.setText ("Speed"); SpeedLabel2.setForeground (java.awt.Color.yellow); SpeedLabel2.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 1; jPanel3.add (SpeedLabel2, gridBagConstraints2); HighSpeedTextField.setText ("0"); HighSpeedTextField.setHorizontalAlignment (javax.swing.SwingConstants.CENTER); HighSpeedTextField.setMinimumSize (new java.awt.Dimension (30, 20)); gridBagConstraints2 = new java.awt.GridBagConstraints (); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 5; jPanel3.add (HighSpeedTextField, gridBagConstraints2); getContentPane ().add (jPanel3); setJMenuBar (jMenuBar1); }//GEN-END:initComponents private void HighSpeedSliderStateChanged (javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_HighSpeedSliderStateChanged JSlider source = (JSlider)evt.getSource (); speed = source.getValue (); // update the current slider position // if ( speed < 10 ) { SpeedSlider.setValue ( speed ); // HighSpeedSlider.setValue ( speed ); // } // speedTextField.setText ( "" + speed ); HighSpeedTextField.setText ( "" + speed ); // print new value in the textField tai.setSpeed ((float)speed); repaint (); }//GEN-LAST:event_HighSpeedSliderStateChanged private void ClimbRateSliderStateChanged (javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_ClimbRateSliderStateChanged JSlider source = (JSlider)evt.getSource (); int climbRate = source.getValue (); // update the current slider position ClimbRateTextField.setText ( "" + climbRate ); tai.setClimbRate (( float ) climbRate ); repaint (); }//GEN-LAST:event_ClimbRateSliderStateChanged private void HoldButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_HoldButtonActionPerformed leader.setFormation ( HOLD ); rifle1.setFormation ( HOLD ); rifle2.setFormation ( HOLD ); autoGun.setFormation ( HOLD ); grenadier.setFormation ( HOLD ); huey.setFormation ( HOLD ); }//GEN-LAST:event_HoldButtonActionPerformed private void dismountHeloRightButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dismountHeloRightButtonActionPerformed huey.setFormation (HOLD); // leader.setFormation ( HOLD ); // rifle1.setFormation ( HOLD ); // rifle2.setFormation ( HOLD ); // autoGun.setFormation ( HOLD ); // grenadier.setFormation ( HOLD ); tai.setLoad ( false ); tai.setUnloadAndDirection ( true, false ); // leader.setFormation ( UNMOUNT_HELO ); // rifle1.setFormation ( UNMOUNT_HELO ); // rifle2.setFormation ( UNMOUNT_HELO ); // autoGun.setFormation ( UNMOUNT_HELO ); // grenadier.setFormation ( UNMOUNT_HELO ); }//GEN-LAST:event_dismountHeloRightButtonActionPerformed private void dismountHeloLeftButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dismountHeloLeftButtonActionPerformed huey.setFormation (HOLD); // leader.setFormation ( HOLD ); // rifle1.setFormation ( HOLD ); // rifle2.setFormation ( HOLD ); // autoGun.setFormation ( HOLD ); // grenadier.setFormation ( HOLD ); tai.setLoad ( false ); tai.setUnloadAndDirection ( true, true ); // tai.setBound ( true ); // leader.setFormation ( UNMOUNT_HELO ); // rifle1.setFormation ( UNMOUNT_HELO ); // rifle2.setFormation ( UNMOUNT_HELO ); // autoGun.setFormation ( UNMOUNT_HELO ); // grenadier.setFormation ( UNMOUNT_HELO ); }//GEN-LAST:event_dismountHeloLeftButtonActionPerformed private void StopBoundMenuItemActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_StopBoundMenuItemActionPerformed tai.setBound ( false ); }//GEN-LAST:event_StopBoundMenuItemActionPerformed private void boundMenuItemActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_boundMenuItemActionPerformed tai.setBound ( true ); leader.setFormation ( LINE ); rifle1.setFormation ( LINE ); rifle2.setFormation ( LINE ); autoGun.setFormation ( LINE ); grenadier.setFormation ( LINE ); allInLine = false; }//GEN-LAST:event_boundMenuItemActionPerformed private void visibleButtonMouseClicked (java.awt.event.MouseEvent evt) {//GEN-FIRST:event_visibleButtonMouseClicked tai.setVisibility (); }//GEN-LAST:event_visibleButtonMouseClicked private void DirectionSliderStateChanged (javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_DirectionSliderStateChanged JSlider source = (JSlider)evt.getSource (); int turnRate = source.getValue (); // update the current slider position TurnRateTextField.setText ( "" + turnRate ); // print new value in the textField // System.out.println ("TurnRate = " + turnRate); tai.setTurnAngle ((float)turnRate); repaint (); }//GEN-LAST:event_DirectionSliderStateChanged private void speedTextFieldActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_speedTextFieldActionPerformed // Add your handling code here: }//GEN-LAST:event_speedTextFieldActionPerformed private void SpeedSliderStateChanged (javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_SpeedSliderStateChanged JSlider source = (JSlider)evt.getSource (); if ( speed < 10 ) { speed = source.getValue (); // update the current slider position HighSpeedSlider.setValue ( speed ); speedTextField.setText ( "" + speed ); // print new value in the textField HighSpeedTextField.setText ( "" + speed ); tai.setSpeed ((float)speed); } // end if else { SpeedSlider.setValue ( 0 ); } // end else repaint (); }//GEN-LAST:event_SpeedSliderStateChanged private void columnButtonMouseClicked (java.awt.event.MouseEvent evt) {//GEN-FIRST:event_columnButtonMouseClicked leader.setFormation ( COLUMN ); rifle1.setFormation ( COLUMN ); rifle2.setFormation ( COLUMN ); autoGun.setFormation ( COLUMN ); grenadier.setFormation ( COLUMN ); allInLine = false; tai.setBound ( false ); }//GEN-LAST:event_columnButtonMouseClicked private void lineButtonMouseClicked (java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lineButtonMouseClicked leader.setFormation ( LINE ); rifle1.setFormation ( LINE ); rifle2.setFormation ( LINE ); autoGun.setFormation ( LINE ); grenadier.setFormation ( LINE ); allInLine = false; tai.setBound ( false ); }//GEN-LAST:event_lineButtonMouseClicked private void wedgeButtonMouseClicked (java.awt.event.MouseEvent evt) {//GEN-FIRST:event_wedgeButtonMouseClicked leader.setFormation ( WEDGE ); rifle1.setFormation ( WEDGE ); rifle2.setFormation ( WEDGE ); autoGun.setFormation ( WEDGE ); grenadier.setFormation ( WEDGE ); allInLine = false; tai.setBound ( false ); }//GEN-LAST:event_wedgeButtonMouseClicked private void mountHeloButtonMouseClicked (java.awt.event.MouseEvent evt) {//GEN-FIRST:event_mountHeloButtonMouseClicked tai.setLoad ( true ); leader.setFormation ( LINE ); rifle1.setFormation ( LINE ); rifle2.setFormation ( LINE ); autoGun.setFormation ( LINE ); grenadier.setFormation ( LINE ); huey.setFormation ( HOLD ); }//GEN-LAST:event_mountHeloButtonMouseClicked public void launchLoadHelo () { leader.setFormation ( MOUNT_HELO ); rifle1.setFormation ( MOUNT_HELO ); rifle2.setFormation ( MOUNT_HELO ); autoGun.setFormation ( MOUNT_HELO ); grenadier.setFormation ( MOUNT_HELO ); huey.setFormation ( MOUNT_HELO ); } // end launchLoadHelo public EntityStatePdu getHeloEspdu () { return ( huey.getESPDU ()); } // end getHeloEspdu private void jMenu1ActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenu1ActionPerformed }//GEN-LAST:event_jMenu1ActionPerformed /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm System.exit (0); }//GEN-LAST:event_exitForm public void updateHeading ( double psiAngle ) { int angleInDegrees; if ( psiAngle < 0 ) { angleInDegrees = ( int ) ( 360 + ((( psiAngle * 180 ) / Math.PI ) % 360 )); directionTextField.setText ( new Integer ( angleInDegrees ).toString ()); } // end if else { angleInDegrees = (int) ( ( psiAngle * 180) / Math.PI) % 360; //directionTextField.setText (new Integer ( (int) ( ( psiAngle * 180) / Math.PI) % 360 ).toString ()); directionTextField.setText (new Integer ( angleInDegrees ).toString ()); } // end else wayFinder.setCompassSetting ( angleInDegrees ); repaint (); } // end updateHeading public void updateAltitude (double height, double agl){ double delta = height - agl; AboveGroundTextField.setText(new Integer((int) - delta).toString()); } // end updateAltitude public void boundPositions () { chooser = randNum.nextInt ( 6 ); if ( chooser == 0 ) { leader.setFormation ( HOLD ); grenadier.setFormation ( HOLD ); } // end if else if ( chooser == 1 ) { leader.setFormation ( HOLD ); rifle1.setFormation ( HOLD ); } // end else if else if ( chooser == 2 ) { rifle1.setFormation ( HOLD ); grenadier.setFormation ( HOLD ); } // end else if else if ( chooser == 3 ) { leader.setFormation ( HOLD ); autoGun.setFormation ( HOLD ); } // end else if else if ( chooser == 4 ) { autoGun.setFormation ( HOLD ); grenadier.setFormation ( HOLD ); } // end else if else { autoGun.setFormation ( HOLD ); rifle1.setFormation ( HOLD ); } // end else } // end setBound public void setNewBound () { tai.setBound ( true ); if ( chooser == 0 ) { leader.setFormation ( LINE ); grenadier.setFormation ( LINE ); } // end if else if ( chooser == 1 ) { leader.setFormation ( LINE ); rifle1.setFormation ( LINE ); } // end else if else if ( chooser == 2 ) { rifle1.setFormation ( LINE ); grenadier.setFormation ( LINE ); } // end else if else if ( chooser == 3 ) { leader.setFormation ( LINE ); autoGun.setFormation ( LINE ); } // end else if else if ( chooser == 4 ) { autoGun.setFormation ( LINE ); grenadier.setFormation ( LINE ); } // end else if else { rifle1.setFormation ( LINE ); autoGun.setFormation ( LINE ); } // end else } // end setNewBound () public void setAllInLine () { allInLine = true; boolean [] inLine = new boolean [ 5 ]; inLine [ 0 ] = leader.getInLine (); inLine [ 1 ] = rifle1.getInLine (); inLine [ 2 ] = rifle2.getInLine (); inLine [ 3 ] = autoGun.getInLine (); inLine [ 4 ] = grenadier.getInLine (); for ( int count = 0; count < inLine.length; count ++ ) { if ( inLine [ count ] == false ) { allInLine = false; break; } // end if } // end for } // end setAllInLine public void setAllHeld () { allHeld = true; boolean [] held = new boolean [ 5 ]; held [ 0 ] = leader.getHeld (); held [ 1 ] = rifle1.getHeld (); held [ 2 ] = rifle2.getHeld (); held [ 3 ] = autoGun.getHeld (); held [ 4 ] = grenadier.getHeld (); for ( int count = 0; count < held.length; count ++ ) { if ( held [ count ] == false ) { allHeld = false; break; } // end if } // end for System.out.println ( held [ 0 ] + "\n" + held [1] + "\n" + held [ 2 ] + "\n" + held [ 3 ] + "\n" + held [ 4 ] ); } // end setAllHeld public boolean getAllInLine () { return ( allInLine ); } // end getAllInLine public boolean getAllHeld () { return ( allHeld ); } // end getAllHeld public void setAllExited () { allExited = true; boolean [] exited = new boolean [ 5 ]; exited [ 0 ] = leader.getExited (); exited [ 1 ] = rifle1.getExited (); exited [ 2 ] = rifle2.getExited (); exited [ 3 ] = autoGun.getExited (); exited [ 4 ] = grenadier.getExited (); for ( int count = 0; count < exited.length; count ++ ) { if ( exited [ count ] == false ) { allExited = false; break; } // end if } // end for if (( !exited [ 0 ]) && ( set == 0 )) { leader.setFormation ( UNMOUNT_HELO ); set ++; } //end if else if (( exited [ 0 ]) && ( set == 1 )) { rifle1.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if (( exited [ 1 ]) && ( set == 2 )) { rifle2.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if (( exited [ 2 ]) && ( set == 3 )) { autoGun.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if (( exited [ 3 ]) && ( set == 4 )) { grenadier.setFormation ( UNMOUNT_HELO ); set ++; } // end else else if (( exited [ 4 ]) && ( set == 5 )) { set = 0; } // end else if /* if (( set == 0 )) { leader.setFormation ( UNMOUNT_HELO ); set ++; } // end if else if (( set == 10 )) { rifle1.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if (( set == 20 )) { rifle2.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if (( set == 30 )) { autoGun.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if (( set == 40 )) { grenadier.setFormation ( UNMOUNT_HELO ); set ++; } // end else if else if ( set > 40 ) { allExited = true; } // end else if else { set ++; } // end else */ } // end setAllExited public boolean getAllExited () { if ( allExited ) { set = 0; } // end if return ( allExited ); } // end getAllExited public void setSpeedTextField ( String newSpeed ) { speedTextField.setText ( newSpeed ); } // end setSpeedText public void setTurnRateTextField ( String newTurnRate ) { TurnRateTextField.setText ( newTurnRate ); } // end setSpeedText public void setSpeedSlider ( int newSpeed ) { SpeedSlider.setValue ( newSpeed ); } // end setSpeedText public void setDirectionSlider ( int newTurnRate ) { DirectionSlider.setValue ( newTurnRate ); } // end setSpeedText /** * @param args the command line arguments */ public static void main (String args[]) { new TeamPanel ("224.2.181.145", 62040, 15, (short)0, (short)1, (short)40 , "NancyTeam", false).show (); } }