001    /*
002     * botMessagesPanel.java
003     *
004     * Created on February 19, 2002, 11:24 AM
005     */
006    
007    package edu.tamu.gamebots.humanbot;
008    import javax.swing.*;
009    import java.util.*;
010    
011    /**
012     *
013     * @author  rtr7684
014     */
015    public class BotMessagesPanel extends javax.swing.JPanel {
016      
017      Object[] values = {"RunTo", "TurnToRot", "TurnToLoc", "SetWalk", "Stop", "Jump", "Strafe", "Rotate", "Shoot", "ChangeWeapon", "StopShoot", "Say", "ArbitraryMessage"};
018      HumanBot bot;
019      
020      /** Creates new form botMessagesPanel */
021      public BotMessagesPanel() {
022        initComponents();
023      }
024      
025      public BotMessagesPanel(HumanBot HumanBot){
026        bot = HumanBot;
027        initComponents();
028      }
029      
030      /** This method is called from within the constructor to
031       * initialize the form.
032       * WARNING: Do NOT modify this code. The content of this method is
033       * always regenerated by the Form Editor.
034       */
035      private void initComponents() {//GEN-BEGIN:initComponents
036        jPanel1 = new javax.swing.JPanel();
037        jPanel2 = new javax.swing.JPanel();
038        jLabel1 = new javax.swing.JLabel();
039        actionTypeComboBox = new JComboBox(values);
040        jLabel2 = new javax.swing.JLabel();
041        argumentsTextField = new javax.swing.JTextField();
042        jPanel3 = new javax.swing.JPanel();
043        instructionLabel = new javax.swing.JLabel();
044        jButton1 = new javax.swing.JButton();
045    
046        setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.X_AXIS));
047    
048        jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS));
049    
050        jPanel2.setLayout(new java.awt.GridLayout(2, 2));
051    
052        jLabel1.setText("Action Type: ");
053        jPanel2.add(jLabel1);
054    
055        actionTypeComboBox.addActionListener(new java.awt.event.ActionListener() {
056          public void actionPerformed(java.awt.event.ActionEvent evt) {
057            actionTypeComboBoxActionPerformed(evt);
058          }
059        });
060    
061        jPanel2.add(actionTypeComboBox);
062    
063        jLabel2.setText("Comma delimited arguments: ");
064        jPanel2.add(jLabel2);
065    
066        jPanel2.add(argumentsTextField);
067    
068        jPanel1.add(jPanel2);
069    
070        instructionLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
071        instructionLabel.setText("RunTo takes either: String-objectID OR location doubles-x,y,z");
072        jPanel3.add(instructionLabel);
073    
074        jPanel1.add(jPanel3);
075    
076        add(jPanel1);
077    
078        jButton1.setText("Send");
079        jButton1.setMaximumSize(new java.awt.Dimension(63, 600));
080        jButton1.setMinimumSize(new java.awt.Dimension(81, 27));
081        jButton1.addActionListener(new java.awt.event.ActionListener() {
082          public void actionPerformed(java.awt.event.ActionEvent evt) {
083            jButton1ActionPerformed(evt);
084          }
085        });
086    
087        add(jButton1);
088    
089      }//GEN-END:initComponents
090      
091      private void actionTypeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_actionTypeComboBoxActionPerformed
092        if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("RunTo")){
093          argumentsTextField.setEditable(true);
094          instructionLabel.setText("RunTo takes either: String-objectID OR location doubles-x,y,z");
095        }
096        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToRot")){
097          argumentsTextField.setEditable(true);
098          instructionLabel.setText("Arguments(3): pitch,yaw,roll");
099        }
100        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToLoc")){
101          argumentsTextField.setEditable(true);
102          instructionLabel.setText("Arguments(3): x,y,z");
103        }
104        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("SetWalk")){
105          argumentsTextField.setEditable(true);
106          instructionLabel.setText("Arguments(1): True or False to walk or run, respectively");
107        }
108        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Stop")){
109          argumentsTextField.setText("");
110          argumentsTextField.setEditable(false);
111          instructionLabel.setText("No Arguments");
112        }
113        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Jump")){
114          argumentsTextField.setText("");
115          argumentsTextField.setEditable(false);
116          instructionLabel.setText("No Arguments");
117        }
118        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Strafe")){
119          argumentsTextField.setEditable(true);
120          instructionLabel.setText("Arguments(4): x,y,z(target),objectIDToface");
121        }
122        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Rotate")){
123          argumentsTextField.setEditable(true);
124          instructionLabel.setText("Arguments(1): amount");
125        }
126        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Shoot")){
127          argumentsTextField.setEditable(true);
128          instructionLabel.setText("No Arguments OR Arguments(5): x,y,z(target),targetID,boolean(altFire)");
129        }
130        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ChangeWeapon")){
131          argumentsTextField.setEditable(true);
132          instructionLabel.setText("Arguments(1): weaponID ");
133        }
134        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("StopShoot")){
135          argumentsTextField.setText("");
136          argumentsTextField.setEditable(false);
137          instructionLabel.setText("No Arguments");
138        }
139        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ArbitraryMessage")){
140          argumentsTextField.setText("");
141          argumentsTextField.setEditable(true);
142          instructionLabel.setText("ArbitraryMessage");
143        }
144        else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Say")){
145          argumentsTextField.setText("");
146          argumentsTextField.setEditable(true);
147          instructionLabel.setText("Arguments(2) - Message, Global (True = said to both teams)");
148        }
149      }//GEN-LAST:event_actionTypeComboBoxActionPerformed
150      
151      private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
152        if(bot != null){
153          StringTokenizer strtok = new StringTokenizer(argumentsTextField.getText(),",");
154          if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("RunTo")){
155            if(strtok.countTokens() == 3){
156              double x = Double.parseDouble(strtok.nextToken());
157              double y = Double.parseDouble(strtok.nextToken());
158              double z = Double.parseDouble(strtok.nextToken());
159              bot.runTo(x,y,z);
160            }
161            else if(strtok.countTokens() == 1){
162              String id = strtok.nextToken();
163              bot.runTo(id);
164            }
165          }
166          else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToRot")){
167            if(strtok.countTokens() == 3){
168              double pitch = Double.parseDouble(strtok.nextToken());
169              double yaw = Double.parseDouble(strtok.nextToken());
170              double roll = Double.parseDouble(strtok.nextToken());
171              bot.turnTo(pitch,yaw,roll);
172            }
173          }
174          else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("TurnToLoc")){
175            if(strtok.countTokens() == 3){
176              double x = Double.parseDouble(strtok.nextToken());
177              double y = Double.parseDouble(strtok.nextToken());
178              double z = Double.parseDouble(strtok.nextToken());
179              bot.turnToLoc(x,y,z);
180            }
181          }
182          else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("SetWalk")){
183            if(strtok.countTokens() == 1){
184              bot.setWalk(Boolean.getBoolean(strtok.nextToken()));
185            }
186          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Stop")){
187            bot.stop();
188          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Jump")){
189            bot.jump();
190          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Strafe")){
191            if(strtok.countTokens() == 4){
192              double x = Double.parseDouble(strtok.nextToken());
193              double y = Double.parseDouble(strtok.nextToken());
194              double z = Double.parseDouble(strtok.nextToken());
195              String targetID = strtok.nextToken();
196              bot.strafe(x,y,z,targetID);
197            }
198          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Rotate")){
199            if(strtok.countTokens() == 1){
200              bot.rotate(Double.parseDouble(strtok.nextToken()));
201            }
202          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Shoot")){
203            if(strtok.countTokens() == 5){
204              double x = Double.parseDouble(strtok.nextToken());
205              double y = Double.parseDouble(strtok.nextToken());
206              double z = Double.parseDouble(strtok.nextToken());
207              String targetID = strtok.nextToken();
208              boolean altFire = Boolean.valueOf(strtok.nextToken().trim()).booleanValue();
209              bot.shoot(x,y,z,targetID,altFire);
210            }
211            else if(strtok.countTokens() == 0){
212              bot.shoot();
213            }
214          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ChangeWeapon")){
215            if(strtok.countTokens() == 1){
216              bot.changeWeapon(strtok.nextToken());
217            }
218          }else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("StopShoot")){
219              bot.stopShoot();
220          }
221          else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("ArbitraryMessage")){
222            bot.getClient().sendMessage(argumentsTextField.getText());
223          }
224          else if(((String)actionTypeComboBox.getSelectedItem()).equalsIgnoreCase("Say")){
225            if(strtok.countTokens() == 2){
226              bot.say(strtok.nextToken(), Boolean.valueOf(strtok.nextToken().trim()).booleanValue());
227            }
228          }
229        }
230      }//GEN-LAST:event_jButton1ActionPerformed
231      
232      
233      // Variables declaration - do not modify//GEN-BEGIN:variables
234      private javax.swing.JPanel jPanel3;
235      private javax.swing.JPanel jPanel2;
236      private javax.swing.JPanel jPanel1;
237      private javax.swing.JButton jButton1;
238      private javax.swing.JTextField argumentsTextField;
239      private javax.swing.JComboBox actionTypeComboBox;
240      private javax.swing.JLabel jLabel2;
241      private javax.swing.JLabel jLabel1;
242      private javax.swing.JLabel instructionLabel;
243      // End of variables declaration//GEN-END:variables
244      
245    }