/*
File: AntennaControlPanel.java
CVS Info: $Id: AntennaControlPanel.java,v 1.0 2000/06/07 18:00:00 laflam Exp $
Compiler: jdk 1.3
*/
package demo.helicopter;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*; // for class DecimalFormat
import java.util.*; // for class Vector
import mil.navy.nps.dis.*; // for class EntityStatePdu
import mil.navy.nps.testing.*; // for MulticastPduSender
import mil.navy.nps.util.*;
import mil.navy.nps.disEnumerations.*;
import mil.navy.nps.relate.*;
import java.io.*;
/**
* Control Panel for Antennas.
*
*@version 1.0
*@author David W. Laflam (http://www.web3d.org/WorkingGroups/vrtp/dis-java-vrml/)
*
*
Location:
*Web:
* http://www.web3d.org/WorkingGroups/vrtp/mil/navy/nps/dis/FirePdu.java
*
*or locally:
* ~/mil/navy/nps/dis/AntennaControlPanel.java
*
*Hierarchy Diagram:
*
*
*Summary:
* Control panel for the antennas.
*
*Explanation:
*This is the control panel for the antennas,
* it will eventually be a tabbed pane, but for now it controls just one antenna at a time.
*
*
*
*
History:
* 15May2000 /Dave Laflam /New
*
*References:
*
*
*Note:
* No accessor methods to nested records is provided.
*
*@see ProtocolDataUnit
*@see ActionListener
*@see AdjustmentListener
*/
public class AntennaControlPanel extends JFrame implements AdjustmentListener,
ActionListener,
Runnable
{
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JButton higherAngleButton = new JButton();
JButton stopRotationButton = new JButton();
JButton lowerAngleButton = new JButton();
JButton turnLeftButton = new JButton();
JButton turnRightButton = new JButton();
JButton zeroAngleButton = new JButton();
JButton newAntennaButton = new JButton();
JTextField headingTextField = new JTextField();
JScrollBar speedScroll = new JScrollBar();
JTextField speedTextField = new JTextField();
JScrollBar turnScroll = new JScrollBar();
JTextField turnTextField = new JTextField();
JLabel headingLabel = new JLabel();
JLabel speedLabel = new JLabel();
JLabel turnRateLabel = new JLabel();
JLabel speedControlLabel = new JLabel();
JLabel turnRateControlLabel = new JLabel();
JLabel zeroTurnLabel = new JLabel();
JLabel plusFiftyTurnLabel = new JLabel();
JLabel negFiftyTurnLabel = new JLabel();
JLabel zeroSpeedLabel = new JLabel();
JLabel fiveSpeedLabel = new JLabel();
JLabel tenSpeedLabel = new JLabel();
JButton reverseButton = new JButton();
JButton forwardButton = new JButton();
JButton rangeButton = new JButton();
JButton azimuthButton = new JButton();
JTextField rangeTextField = new JTextField();
JTextField azimuthTextField = new JTextField();
JLabel maxRangeLabel = new JLabel();
JLabel currentAzmuthLabel = new JLabel();
JTextField antennaAngleTextField = new JTextField();
JLabel antennaAngleLabel = new JLabel();
JPanel jPanel4 = new JPanel();
private static int turnPosition = 0; // each of the scroll bars
private static int speedPosition = 0;
private static boolean leftAntennaTurnState; // 0 = not turning; 1 = turning
private static boolean rightAntennaTurnState; // 0 = not turning; 1 = turning
private static boolean forwardState;
private static boolean reverseState;
private static boolean upGunState;
private static boolean downGunState;
private static int mhainAmmo;
private static int mgAmmo;
private AntennaActionInterpreter antai;
JCheckBox transmitterPduCheckBox = new JCheckBox();
JCheckBox receiverPduCheckBox = new JCheckBox();
JCheckBox signalPduCheckBox = new JCheckBox();
JButton transmitterButton = new JButton();
JButton printButton = new JButton();
private static TransmitterPdu transmitter;
//variables for the action intrepreter
private String ipAddr;
private int portNum, timeToLive;
private short siteNum, appNum;
private Antenna myAntenna;
private boolean rtpHeaderEnabled;
//Construct the frame
//=============================================================================================
// Constructor
//=============================================================================================
public AntennaControlPanel(String pIpAddr, int pPortNum, int pTimeToLive,
short pSiteNum, short pAppNum, Antenna pAntenna,
boolean pRtpHeaderEnabled ) {
System.out.println("In Antenna Control Panel constructor");
// make me DIS this is the place to read the file (Join Button)
// antai = new AntennaActionInterpreter(ipAddr, portNum, timeToLive, siteNum,
// appNum, pAntenna, rtpHeaderEnabled,
// this);
ipAddr = pIpAddr;
portNum = pPortNum;
timeToLive = pTimeToLive;
siteNum = pSiteNum;
appNum = pAppNum;
myAntenna = pAntenna;
rtpHeaderEnabled = pRtpHeaderEnabled;
transmitter = new TransmitterPdu();
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
leftAntennaTurnState = false;
rightAntennaTurnState = false;
forwardState = true;
reverseState = false;
mhainAmmo = 40;
mgAmmo = 30;
// antai.start(); //start antena action interpeter dwl change this
}
//Component initialization
private void jbInit() throws Exception {
this.getContentPane().setLayout(null);
this.setSize(new Dimension(802, 174));
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screenSize.width - 765) / 2,
(screenSize.height - 175));
this.setVisible(true);
this.setBackground(Color.black);
this.setForeground(Color.black);
this.setFont(new Font("Courier", 1, 12));
String frameTitle = new String(myAntenna.getDescription() + " antenna, ID num " + myAntenna.getSite());
jPanel1.setLayout(null);
jPanel1.setBackground(new Color(150, 150, 150));
jPanel1.setFont(new Font("Serif", 0, 10));
jPanel1.setBounds(new Rectangle(0, 0, 370, 150));
jPanel2.setBackground(new Color(212, 131, 81));
jPanel2.setLayout(null);
jPanel2.setBounds(new Rectangle(370, 0, 20, 150));
jPanel3.setBackground(new Color(153, 153, 153));
jPanel3.setLayout(null);
jPanel3.setBounds(new Rectangle(388, 0, 410, 150));
higherAngleButton.setText("Higher Angle");
higherAngleButton.setBounds(new Rectangle(6, 93, 100, 23));
higherAngleButton.setFont(new Font("SansSerif", 1, 10));
higherAngleButton.setMaximumSize(new Dimension(85, 25));
higherAngleButton.setMinimumSize(new Dimension(85, 25));
higherAngleButton.setPreferredSize(new Dimension(101, 22));
higherAngleButton.addActionListener(this);
stopRotationButton.setText("Stop Rotation");
stopRotationButton.setBounds(new Rectangle(119, 67, 102, 23));
stopRotationButton.setFont(new Font("SansSerif", 1, 10));
stopRotationButton.setMaximumSize(new Dimension(85, 25));
stopRotationButton.setMinimumSize(new Dimension(85, 25));
stopRotationButton.setPreferredSize(new Dimension(101, 22));
stopRotationButton.addActionListener(this);
lowerAngleButton.setText("Lower Angle");
lowerAngleButton.setBounds(new Rectangle(7, 120, 101, 22));
lowerAngleButton.setFont(new Font("SansSerif", 1, 10));
lowerAngleButton.setMaximumSize(new Dimension(85, 25));
lowerAngleButton.setMinimumSize(new Dimension(85, 25));
lowerAngleButton.setPreferredSize(new Dimension(85, 25));
lowerAngleButton.addActionListener(this);
turnLeftButton.setText("Turn Left");
turnLeftButton.setBounds(new Rectangle(119, 120, 102, 21));
turnLeftButton.setFont(new Font("SansSerif", 1, 10));
turnLeftButton.setMaximumSize(new Dimension(85, 25));
turnLeftButton.setMinimumSize(new Dimension(85, 25));
turnLeftButton.setPreferredSize(new Dimension(101, 22));
turnLeftButton.addActionListener(this);
turnRightButton.setText("Turn Right");
turnRightButton.setBounds(new Rectangle(117, 94, 103, 22));
turnRightButton.setFont(new Font("SansSerif", 1, 10));
turnRightButton.setMaximumSize(new Dimension(85, 25));
turnRightButton.setMinimumSize(new Dimension(85, 25));
turnRightButton.setPreferredSize(new Dimension(101, 22));
turnRightButton.addActionListener(this);
zeroAngleButton.setText("Zero Angle");
zeroAngleButton.setBounds(new Rectangle(6, 67, 101, 22));
zeroAngleButton.setFont(new Font("SansSerif", 1, 10));
zeroAngleButton.setMaximumSize(new Dimension(85, 25));
zeroAngleButton.setMinimumSize(new Dimension(85, 25));
zeroAngleButton.setPreferredSize(new Dimension(85, 25));
zeroAngleButton.addActionListener(this);
newAntennaButton.setText("New Antenna");
newAntennaButton.setBounds(new Rectangle(7, 38, 101, 26));
newAntennaButton.setFont(new Font("SansSerif", 1, 9));
newAntennaButton.setMaximumSize(new Dimension(85, 25));
newAntennaButton.setMinimumSize(new Dimension(85, 25));
newAntennaButton.setPreferredSize(new Dimension(101, 22));
newAntennaButton.addActionListener(this);
headingTextField.setHorizontalAlignment(JTextField.CENTER);
headingTextField.setEditable(false);
headingTextField.setText("0");
headingTextField.setBounds(new Rectangle(170, 1, 35, 20));
speedScroll.setVisibleAmount(5);
speedScroll.setMaximum(15);
speedScroll.setFont(new Font("SansSerif", 1, 10));
speedScroll.setOrientation(JScrollBar.HORIZONTAL);
speedScroll.setBounds(new Rectangle(1, 50, 154, 20));
speedScroll.addAdjustmentListener(this);
speedTextField.setHorizontalAlignment(JTextField.CENTER);
speedTextField.setText("0");
speedTextField.setEditable(false);
speedTextField.setBounds(new Rectangle(170, 50, 35, 20));
turnScroll.setVisibleAmount(5);
turnScroll.setMaximum(55);
turnScroll.setOrientation(JScrollBar.HORIZONTAL);
turnScroll.setMinimum(-50);
turnScroll.setBounds(new Rectangle(1, 105, 154, 20));
turnScroll.addAdjustmentListener(this);
turnTextField.setHorizontalAlignment(JTextField.CENTER);
turnTextField.setText("0");
turnTextField.setEditable(false);
turnTextField.setBounds(new Rectangle(170, 105, 35, 20));
headingLabel.setForeground(Color.black);
headingLabel.setText("Heading");
headingLabel.setBounds(new Rectangle(163, 22, 51, 17));
speedLabel.setForeground(Color.black);
speedLabel.setText("Speed");
speedLabel.setBounds(new Rectangle(169, 71, 38, 18));
turnRateLabel.setForeground(Color.black);
turnRateLabel.setText("Turn Rate");
turnRateLabel.setBounds(new Rectangle(159, 125, 57, 17));
speedControlLabel.setForeground(Color.black);
speedControlLabel.setText("Speed Control");
speedControlLabel.setBounds(new Rectangle(37, 71, 83, 15));
turnRateControlLabel.setForeground(Color.black);
turnRateControlLabel.setText("Turn Rate Control");
turnRateControlLabel.setBounds(new Rectangle(28, 125, 99, 16));
zeroTurnLabel.setForeground(Color.black);
zeroTurnLabel.setText("0");
zeroTurnLabel.setBounds(new Rectangle(77, 90, 10, 14));
plusFiftyTurnLabel.setForeground(Color.black);
plusFiftyTurnLabel.setText("+50");
plusFiftyTurnLabel.setBounds(new Rectangle(125, 90, 21, 15));
negFiftyTurnLabel.setForeground(Color.black);
negFiftyTurnLabel.setText("-50");
negFiftyTurnLabel.setBounds(new Rectangle(8, 90, 23, 14));
zeroSpeedLabel.setForeground(Color.black);
zeroSpeedLabel.setText("0");
zeroSpeedLabel.setBounds(new Rectangle(10, 37, 12, 12));
fiveSpeedLabel.setForeground(Color.black);
fiveSpeedLabel.setText("5");
fiveSpeedLabel.setBounds(new Rectangle(70, 34, 18, 16));
tenSpeedLabel.setForeground(Color.black);
tenSpeedLabel.setText("10");
tenSpeedLabel.setBounds(new Rectangle(131, 35, 16, 14));
reverseButton.setText("Reverse");
reverseButton.setFont(new Font("SansSerif", 1, 9));
reverseButton.setBounds(new Rectangle(1, 1, 75, 30));
reverseButton.addActionListener(this);
forwardButton.setText("Forward");
forwardButton.setFont(new Font("SansSerif", 1, 10));
forwardButton.setBounds(new Rectangle(79, 1, 75, 30));
forwardButton.addActionListener(this);
rangeButton.setText("Set Range");
rangeButton.setFont(new Font("SansSerif", 1, 10));
rangeButton.setBounds(new Rectangle(246, 36, 115, 29));
rangeButton.addActionListener(this);
azimuthButton.setText("Set Azimuth");
azimuthButton.setFont(new Font("SansSerif", 1, 10));
azimuthButton.setMaximumSize(new Dimension(85, 25));
azimuthButton.setMinimumSize(new Dimension(85, 25));
azimuthButton.setPreferredSize(new Dimension(85, 25));
azimuthButton.setBounds(new Rectangle(245, 114, 115, 30));
azimuthButton.addActionListener(this);
rangeTextField.setHorizontalAlignment(JTextField.CENTER);
rangeTextField.setText("40");
rangeTextField.setEditable(false);
rangeTextField.setBounds(new Rectangle(288, 2, 31, 18));
azimuthTextField.setHorizontalAlignment(JTextField.CENTER);
azimuthTextField.setText("30");
azimuthTextField.setEditable(false);
azimuthTextField.setBounds(new Rectangle(293, 77, 31, 18));
maxRangeLabel.setForeground(Color.black);
maxRangeLabel.setText("Max Range (KM)");
maxRangeLabel.setBounds(new Rectangle(258, 18, 107, 15));
currentAzmuthLabel.setForeground(Color.black);
currentAzmuthLabel.setText("Current Azimuth (DEG)");
currentAzmuthLabel.setBounds(new Rectangle(231, 94, 131, 16));
antennaAngleTextField.setHorizontalAlignment(JTextField.CENTER);
antennaAngleTextField.setBounds(new Rectangle(25, 2, 34, 20));
antennaAngleTextField.setText("0");
antennaAngleTextField.setEditable(false);
antennaAngleLabel.setForeground(Color.black);
antennaAngleLabel.setText("Antenna Angle");
antennaAngleLabel.setBounds(new Rectangle(5, 22, 109, 16));
this.setResizable(false);
this.setTitle("Antenna Control Panel " + frameTitle);
this.setBackground(Color.black);
this.setFont(new Font("Courier", 1, 12));
transmitterPduCheckBox.setText(" TransmitterPdu");
transmitterPduCheckBox.setHorizontalAlignment(SwingConstants.CENTER);
transmitterPduCheckBox.setBounds(new Rectangle(248, 58, 145, 25));
transmitterPduCheckBox.addItemListener(new AntennaControlPanel_transmitterPduCheckBox_itemAdapter(this));
receiverPduCheckBox.setText(" ReceiverPdu ");
receiverPduCheckBox.setHorizontalAlignment(SwingConstants.CENTER);
receiverPduCheckBox.setBounds(new Rectangle(249, 91, 147, 25));
receiverPduCheckBox.addItemListener(new AntennaControlPanel_receiverPduCheckBox_itemAdapter(this));
signalPduCheckBox.setText(" SignalPdu ");
signalPduCheckBox.setHorizontalAlignment(SwingConstants.CENTER);
signalPduCheckBox.setBounds(new Rectangle(248, 120, 150, 25));
signalPduCheckBox.addItemListener(new AntennaControlPanel_signalPduCheckBox_itemAdapter(this));
transmitterButton.setText("Send PDU(s)");
transmitterButton.setBounds(new Rectangle(254, 19, 136, 25));
printButton.setText("Print Plan");
printButton.setBounds(new Rectangle(119, 39, 101, 25));
printButton.addMouseListener(new AntennaControlPanel_printButton_mouseAdapter(this));
this.getContentPane().add(jPanel1, null);
jPanel1.add(headingTextField, null);
jPanel1.add(speedScroll, null);
jPanel1.add(speedTextField, null);
jPanel1.add(turnScroll, null);
jPanel1.add(turnTextField, null);
jPanel1.add(headingLabel, null);
jPanel1.add(speedLabel, null);
jPanel1.add(turnRateLabel, null);
jPanel1.add(speedControlLabel, null);
jPanel1.add(turnRateControlLabel, null);
jPanel1.add(zeroTurnLabel, null);
jPanel1.add(plusFiftyTurnLabel, null);
jPanel1.add(negFiftyTurnLabel, null);
jPanel1.add(zeroSpeedLabel, null);
jPanel1.add(fiveSpeedLabel, null);
jPanel1.add(tenSpeedLabel, null);
jPanel1.add(reverseButton, null);
jPanel1.add(forwardButton, null);
jPanel1.add(rangeButton, null);
jPanel1.add(azimuthButton, null);
jPanel1.add(maxRangeLabel, null);
jPanel1.add(currentAzmuthLabel, null);
jPanel1.add(rangeTextField, null);
jPanel1.add(azimuthTextField, null);
this.getContentPane().add(jPanel2, null);
this.getContentPane().add(jPanel3, null);
jPanel3.add(antennaAngleTextField, null);
jPanel3.add(antennaAngleLabel, null);
jPanel3.add(turnLeftButton, null);
jPanel3.add(lowerAngleButton, null);
jPanel3.add(higherAngleButton, null);
jPanel3.add(zeroAngleButton, null);
jPanel3.add(turnRightButton, null);
jPanel3.add(stopRotationButton, null);
jPanel3.add(receiverPduCheckBox, null);
jPanel3.add(transmitterPduCheckBox, null);
jPanel3.add(signalPduCheckBox, null);
jPanel3.add(transmitterButton, null);
jPanel3.add(newAntennaButton, null);
jPanel3.add(printButton, null);
}
//Overriden so we can exit on System Close
// this is for the xbox in the coner of the window
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public void run() //dave
{
antai = new AntennaActionInterpreter(ipAddr, portNum, timeToLive, siteNum,
appNum, myAntenna, rtpHeaderEnabled,
this);
System.out.println("Site number for new antenna action interperter = " + siteNum);
antai.start(); //start antena action interpeter
}
//=============================================================================================
// Implements AdjustmentListener
//=============================================================================================
public void adjustmentValueChanged(AdjustmentEvent evt){
if (evt.getSource().equals(speedScroll)){
speedPosition = evt.getValue(); // update the current slider position
if (reverseState){
Integer temp1 = new Integer( -speedPosition);
speedTextField.setText(temp1.toString()); // print new value in the textField
System.out.println("Speed = " + temp1);
antai.setSpeed((new Float(temp1.intValue())).floatValue());
repaint(); }
else {
Integer temp1 = new Integer(speedPosition);
speedTextField.setText(temp1.toString()); // print new value in the textField
System.out.println("Speed = " + temp1);
System.out.println("antai in the control panel = " + antai);
antai.setSpeed((new Float(temp1.intValue())).floatValue());
repaint(); } // repaint the screen
} // end else if
// if the heading scroll is the source of the event
else if (evt.getSource().equals(turnScroll)){
turnPosition = evt.getValue(); // update the current slider position
if (turnPosition < 0){
if (!reverseState){
Integer temp1 = new Integer(turnPosition);
turnTextField.setText(temp1.toString()); // print new value in the textField
System.out.println("Angle of bank = " + temp1);
antai.setTurnAngle((new Float(temp1.intValue())).floatValue());
repaint(); // repaint the screen
} // end if
else {
Integer temp4 = new Integer(-turnPosition);
turnTextField.setText(temp4.toString()); // print new value in the textField
System.out.println("Angle of bank = " + temp4);
antai.setTurnAngle((new Float(temp4.intValue())).floatValue());
repaint(); // repaint the screen
} // end else
} //end if
else if (turnPosition == 0){
Integer temp2 = new Integer(0);
turnTextField.setText(temp2.toString()); // print new value in the textField
System.out.println("Angle of bank = " + temp2);
antai.setTurnAngle((new Float(temp2.intValue())).floatValue());
repaint();
} // end else if
else {
if (!reverseState){
Integer temp3 = new Integer(turnPosition);
turnTextField.setText(temp3.toString()); // print new value in the textField
System.out.println("Angle of bank = " + temp3);
antai.setTurnAngle((new Float(temp3.intValue())).floatValue());
repaint(); // repaint the screen
}//end if
else {
Integer temp5 = new Integer(-turnPosition);
turnTextField.setText(temp5.toString()); // print new value in the textField
System.out.println("Angle of bank = " + temp5);
antai.setTurnAngle((new Float(temp5.intValue())).floatValue());
repaint(); // repaint the screen
} // end else
} // end else
} // end else if
} // end adjustmentValueChanged()
//=============================================================================================
// Implements ActionListener
//=============================================================================================
public void actionPerformed(ActionEvent evt){
Object buttonName = evt.getSource();
if (antai.getIsCollided() == false){
if (buttonName.equals(zeroAngleButton)){
turnScroll.setValue(0);
turnTextField.setText("0");
speedScroll.setValue(0);
speedTextField.setText("0");
antai.reset();
repaint();
} // end if
// this should be fixed to read the antenna azmuth has changed
else if (buttonName.equals(rangeButton)){
System.out.println("Fire Mhain Button Pressed");
if (mhainAmmo > 0){
mhainAmmo = mhainAmmo - 1;
rangeTextField.setText((new Integer(mhainAmmo)).toString());
// antai.sendMhainFirePdu(); // dwl this causes a prblem
}
} // end else if
// this should be fixed to read the antenna ht has changed
else if (buttonName.equals(azimuthButton)){
System.out.println("Fire COAX Button Pressed");
if (mgAmmo > 0){
mgAmmo = mgAmmo - 1;
azimuthTextField.setText((new Integer(mgAmmo)).toString());
antai.sendFirePdu();}
} // end else if
else if (buttonName.equals(forwardButton)){
System.out.println("forward Button Pressed");
if (reverseState){
turnScroll.setValue(0);
turnTextField.setText("0");
speedScroll.setValue(0);
speedTextField.setText("0");
antai.brake();
reverseState = false;
forwardState = true;
repaint();
}
} // end else if
else if (buttonName.equals(reverseButton)){
System.out.println("reverse Button Pressed");
if (forwardState){
turnScroll.setValue(0);
turnTextField.setText("0");
speedScroll.setValue(0);
speedTextField.setText("0");
antai.brake();
reverseState = true;
forwardState = false;
repaint();
}
} // end else if
// change the angle of the dish
//
else if (buttonName.equals(higherAngleButton)){
System.out.println("rhaise Button Pressed");
downGunState = false;
if(upGunState){
antai.elevateGun();
upGunState = false;
return;
} // end if
antai.elevateGun();
repaint();
upGunState = true;
} // end else if
else if (buttonName.equals(lowerAngleButton)){
System.out.println("lower Button Pressed");
upGunState = false;
if(downGunState){
antai.depressGun();
downGunState = false;
return;
} // end if
antai.depressGun();
repaint();
downGunState = true;
} // end else if
else if (buttonName.equals(stopRotationButton)){
System.out.println("Brake Button Pressed");
turnScroll.setValue(0);
turnTextField.setText("0");
speedScroll.setValue(0);
speedTextField.setText("0");
antai.brake();
repaint();
} // end else if
else if (buttonName.equals(turnLeftButton)){
System.out.println("Lt Antenna Button Pressed");
rightAntennaTurnState = false;
if(leftAntennaTurnState){
antai.leftTurretTurn();
leftAntennaTurnState = false;
repaint();
return;
} // end if
leftAntennaTurnState = true;
antai.leftTurretTurn();
repaint();
} // end else if
else if (buttonName.equals(turnRightButton)){
System.out.println("Rt Antenna Button Pressed");
leftAntennaTurnState = false;
if(rightAntennaTurnState){
antai.rightTurretTurn();
rightAntennaTurnState = false;
repaint();
return;
} // end if
antai.rightTurretTurn();
repaint();
rightAntennaTurnState = true;
} // end else if
else if (buttonName.equals(zeroAngleButton)){
reset();
antai.reset();
} //end else if reset
else if (buttonName.equals(newAntennaButton)){
antai.selfDestruct();
antai.reset();
antai.stopRun();
antai.setDriving(false); //stop sending pdus
this.setVisible(false);
dispose();
StartPanel sp = new StartPanel(500,100);
sp.setVisible(true);
} //end else if restart
else {
System.out.println("Unknown button pressed");
} // end else
}//end iscollided if
else {
System.out.println("control panel locked due to death");
} //end else
} // end actionPerformed()
//=======================================================================
// Utility Methods
//=======================================================================
public void reset(){
turnScroll.setValue(0);
turnTextField.setText("0");
speedScroll.setValue(0);
speedTextField.setText("0");
rangeTextField.setText("40");
mhainAmmo = 40;
azimuthTextField.setText("30");
mgAmmo = 30;
repaint();
} //end reset
public void resetAmmo(){
rangeTextField.setText("40");
mhainAmmo = 40;
azimuthTextField.setText("30");
mgAmmo = 30;
repaint();
} //end resetAmmo
public void updateHeading(double mypsi){
if ( mypsi < 0 ) {
headingTextField.setText(new Integer((int)( 360 + (((mypsi * 180) / Math.PI) % 360)) ).toString());
}
else {
headingTextField.setText(new Integer((int)((mypsi * 180) / Math.PI) % 360 ).toString());
}
}
public void updateGunElev(double angle){
antennaAngleTextField.setText(new Integer((int) ((angle * 180) / Math.PI)).toString());
}
//=============================================================================================
// Main
//=============================================================================================
public static void main(String[] args){
/*
//TankControlPanel fsm = new TankControlPanel(860, 170);
// public AntennaStartPanel(int wdt, int ht);
AntennaControlPanel asm = new AntennaControlPanel("224.2.181.145", 62040, 15,
(short)0,(short)1, (short)70, "Antenna", false);
asm.show();
*/
} // end main
void transmitterPduCheckBox_itemStateChanged(ItemEvent e) {
System.out.println(" sending transmitterPdu ");
transmitter.setTransmitState(new UnsignedByte(3));
transmitter.setInputSource(new UnsignedByte(2));
transmitter.setAntennaLocation(new WorldCoordinate(3,4,5));
transmitter.setRelativeAntennaLocation(new EntityCoordinate(6,7,8));
transmitter.setAntennaPatternType(new UnsignedShort(44));
transmitter.setAntennaPatternLength(new UnsignedShort(10));
transmitter.setFrequency(new UnsignedLong(100.00));
}
void receiverPduCheckBox_itemStateChanged(ItemEvent e) {
}
void signalPduCheckBox_itemStateChanged(ItemEvent e) {
}
void printButton_mouseClicked(MouseEvent e) {
}
} // end of the class
//==============================================================================
// inner class
//==============================================================================
class AntennaControlPanel_transmitterPduCheckBox_itemAdapter implements java.awt.event.ItemListener {
AntennaControlPanel adaptee;
AntennaControlPanel_transmitterPduCheckBox_itemAdapter(AntennaControlPanel adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.transmitterPduCheckBox_itemStateChanged(e);
}
}// end of the inner class
//==============================================================================
// inner class
//==============================================================================
class AntennaControlPanel_receiverPduCheckBox_itemAdapter implements java.awt.event.ItemListener {
AntennaControlPanel adaptee;
AntennaControlPanel_receiverPduCheckBox_itemAdapter(AntennaControlPanel adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.receiverPduCheckBox_itemStateChanged(e);
}
}// end of the inner class
//==============================================================================
// inner class
//==============================================================================
class AntennaControlPanel_signalPduCheckBox_itemAdapter implements java.awt.event.ItemListener {
AntennaControlPanel adaptee;
AntennaControlPanel_signalPduCheckBox_itemAdapter(AntennaControlPanel adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.signalPduCheckBox_itemStateChanged(e);
}
}// end of the inner class
//==============================================================================
// inner class
//==============================================================================
class AntennaControlPanel_printButton_mouseAdapter extends java.awt.event.MouseAdapter {
AntennaControlPanel adaptee;
AntennaControlPanel_printButton_mouseAdapter(AntennaControlPanel adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.printButton_mouseClicked(e);
}
}
// end of file
//==============================================================================