001 /* 002 * HumanBotPanel.java 003 * 004 * Created on February 22, 2002, 12:42 PM 005 */ 006 007 package edu.tamu.gamebots.humanbot; 008 009 import edu.isi.gamebots.client.*; 010 import edu.tamu.gamebots.ui.*; 011 import us.ca.la.anm.util.io.*; 012 import javax.swing.*; 013 import java.util.*; 014 import java.net.*; 015 016 /** 017 * <p> 018 * The User interface portion of the HumanBot. 019 * </p> 020 * @author Ryan Rozich (rozich@tamu.edu) 021 */ 022 public class HumanBotPanel extends javax.swing.JPanel { 023 024 HumanBot bot; 025 boolean connected = false; 026 027 /** 028 * <p> 029 * Creates new form HumanBotPanel 030 * </p> 031 * @param hBot The HumanBot that this interface is for. 032 */ 033 public HumanBotPanel(HumanBot hBot) { 034 bot = hBot; 035 initComponents(); 036 bot.setSyncMessagesTextArea((UnrealMessageTextArea)serverMessagesField); 037 bot.setASyncMessagesTextArea((UnrealMessageTextArea)asyncMessagesField); 038 bot.setCurrentBotStatePanel((CurrentBotStatePanel)statePanel); 039 bot.addJTableForMessages(asyncMessagesTable); 040 } 041 042 /** 043 * <p> 044 * This method is called from within the constructor to 045 * initialize the form. 046 * WARNING: Do NOT modify this code. The content of this method is 047 * always regenerated by the Form Editor. 048 * </p> 049 */ 050 private void initComponents() {//GEN-BEGIN:initComponents 051 mainPanel = new javax.swing.JPanel(); 052 jTabbedPane1 = new javax.swing.JTabbedPane(); 053 messagesPanel = new javax.swing.JPanel(); 054 jScrollPane1 = new javax.swing.JScrollPane(); 055 serverMessagesField = new UnrealMessageTextArea(); 056 jButton1 = new javax.swing.JButton(); 057 messageTablePanel = new javax.swing.JPanel(); 058 jScrollPane3 = new javax.swing.JScrollPane(); 059 asyncMessagesTable = new javax.swing.JTable(); 060 asyncMessagesTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 061 tableButtonPanel = new javax.swing.JPanel(); 062 pauseTableUpdateButton = new javax.swing.JButton(); 063 shootButton = new javax.swing.JButton(); 064 runToButton = new javax.swing.JButton(); 065 turnToButton = new javax.swing.JButton(); 066 rotateLeftButton = new javax.swing.JButton(); 067 rotateRightButton = new javax.swing.JButton(); 068 jPanel1 = new javax.swing.JPanel(); 069 jScrollPane2 = new javax.swing.JScrollPane(); 070 asyncMessagesField = new UnrealMessageTextArea(); 071 bottomPanel = new javax.swing.JPanel(); 072 inputPanel = new BotMessagesPanel(bot); 073 statePanel = new CurrentBotStatePanel(); 074 075 setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS)); 076 077 mainPanel.setLayout(new javax.swing.BoxLayout(mainPanel, javax.swing.BoxLayout.Y_AXIS)); 078 079 messagesPanel.setLayout(new javax.swing.BoxLayout(messagesPanel, javax.swing.BoxLayout.Y_AXIS)); 080 081 jScrollPane1.setPreferredSize(new java.awt.Dimension(400, 200)); 082 jScrollPane1.setViewportView(serverMessagesField); 083 084 messagesPanel.add(jScrollPane1); 085 086 jButton1.setText("Toggle Pause"); 087 jButton1.setMaximumSize(new java.awt.Dimension(4000, 27)); 088 jButton1.addActionListener(new java.awt.event.ActionListener() { 089 public void actionPerformed(java.awt.event.ActionEvent evt) { 090 jButton1ActionPerformed(evt); 091 } 092 }); 093 094 messagesPanel.add(jButton1); 095 096 jTabbedPane1.addTab("Sync Messages", messagesPanel); 097 098 messageTablePanel.setLayout(new javax.swing.BoxLayout(messageTablePanel, javax.swing.BoxLayout.Y_AXIS)); 099 100 jScrollPane3.setViewportView(asyncMessagesTable); 101 102 messageTablePanel.add(jScrollPane3); 103 104 tableButtonPanel.setLayout(new java.awt.GridLayout(1, 0)); 105 106 pauseTableUpdateButton.setText("Update"); 107 pauseTableUpdateButton.addActionListener(new java.awt.event.ActionListener() { 108 public void actionPerformed(java.awt.event.ActionEvent evt) { 109 pauseTableUpdateButtonActionPerformed(evt); 110 } 111 }); 112 113 tableButtonPanel.add(pauseTableUpdateButton); 114 115 shootButton.setText("Shoot"); 116 shootButton.addActionListener(new java.awt.event.ActionListener() { 117 public void actionPerformed(java.awt.event.ActionEvent evt) { 118 shootButtonActionPerformed(evt); 119 } 120 }); 121 122 tableButtonPanel.add(shootButton); 123 124 runToButton.setText("RunTo"); 125 runToButton.addActionListener(new java.awt.event.ActionListener() { 126 public void actionPerformed(java.awt.event.ActionEvent evt) { 127 runToButtonActionPerformed(evt); 128 } 129 }); 130 131 tableButtonPanel.add(runToButton); 132 133 turnToButton.setText("TurnTo"); 134 turnToButton.addActionListener(new java.awt.event.ActionListener() { 135 public void actionPerformed(java.awt.event.ActionEvent evt) { 136 turnToButtonActionPerformed(evt); 137 } 138 }); 139 140 tableButtonPanel.add(turnToButton); 141 142 rotateLeftButton.setText("Rotate Left"); 143 rotateLeftButton.addActionListener(new java.awt.event.ActionListener() { 144 public void actionPerformed(java.awt.event.ActionEvent evt) { 145 rotateLeftButtonActionPerformed(evt); 146 } 147 }); 148 149 tableButtonPanel.add(rotateLeftButton); 150 151 rotateRightButton.setText("Rotate Right"); 152 rotateRightButton.addActionListener(new java.awt.event.ActionListener() { 153 public void actionPerformed(java.awt.event.ActionEvent evt) { 154 rotateRightButtonActionPerformed(evt); 155 } 156 }); 157 158 tableButtonPanel.add(rotateRightButton); 159 160 messageTablePanel.add(tableButtonPanel); 161 162 jTabbedPane1.addTab("Visible Points", messageTablePanel); 163 164 jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.X_AXIS)); 165 166 jScrollPane2.setViewportView(asyncMessagesField); 167 168 jPanel1.add(jScrollPane2); 169 170 jTabbedPane1.addTab("ASync Messages", jPanel1); 171 172 mainPanel.add(jTabbedPane1); 173 174 bottomPanel.setLayout(new javax.swing.BoxLayout(bottomPanel, javax.swing.BoxLayout.Y_AXIS)); 175 176 bottomPanel.setMaximumSize(new java.awt.Dimension(99999999, 50)); 177 inputPanel.setLayout(new javax.swing.BoxLayout(inputPanel, javax.swing.BoxLayout.X_AXIS)); 178 179 bottomPanel.add(inputPanel); 180 181 mainPanel.add(bottomPanel); 182 183 add(mainPanel); 184 185 statePanel.setMaximumSize(new java.awt.Dimension(32767, 20)); 186 add(statePanel); 187 188 }//GEN-END:initComponents 189 190 private void rotateLeftButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotateLeftButtonActionPerformed 191 bot.rotate(-6000); 192 }//GEN-LAST:event_rotateLeftButtonActionPerformed 193 194 private void rotateRightButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotateRightButtonActionPerformed 195 bot.rotate(6000); 196 }//GEN-LAST:event_rotateRightButtonActionPerformed 197 198 private void turnToButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_turnToButtonActionPerformed 199 int selectedRow = asyncMessagesTable.getSelectedRow(); 200 if(asyncMessagesTable.getSelectedRow() != -1){ 201 String coord = (String)asyncMessagesTable.getValueAt(selectedRow, 2); 202 bot.turnToLoc(coord); 203 } 204 }//GEN-LAST:event_turnToButtonActionPerformed 205 206 private void runToButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_runToButtonActionPerformed 207 int selectedRow = asyncMessagesTable.getSelectedRow(); 208 if(asyncMessagesTable.getSelectedRow() != -1){ 209 String id = (String)asyncMessagesTable.getValueAt(selectedRow, 1); 210 bot.runTo(id); 211 } 212 }//GEN-LAST:event_runToButtonActionPerformed 213 214 private void shootButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shootButtonActionPerformed 215 int selectedRow = asyncMessagesTable.getSelectedRow(); 216 if(asyncMessagesTable.getSelectedRow() != -1){ 217 String id = (String)asyncMessagesTable.getValueAt(selectedRow, 1); 218 bot.shoot(id, false); 219 } 220 }//GEN-LAST:event_shootButtonActionPerformed 221 222 private void pauseTableUpdateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pauseTableUpdateButtonActionPerformed 223 bot.setUpdateTable(); 224 }//GEN-LAST:event_pauseTableUpdateButtonActionPerformed 225 226 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed 227 ((UnrealMessageTextArea)serverMessagesField).togglePause(); 228 }//GEN-LAST:event_jButton1ActionPerformed 229 230 231 // Variables declaration - do not modify//GEN-BEGIN:variables 232 private javax.swing.JPanel messageTablePanel; 233 private javax.swing.JButton runToButton; 234 private javax.swing.JPanel jPanel1; 235 private javax.swing.JButton jButton1; 236 private javax.swing.JScrollPane jScrollPane3; 237 private javax.swing.JPanel statePanel; 238 private javax.swing.JScrollPane jScrollPane2; 239 private javax.swing.JButton pauseTableUpdateButton; 240 private javax.swing.JTextPane asyncMessagesField; 241 private javax.swing.JScrollPane jScrollPane1; 242 private javax.swing.JButton shootButton; 243 private javax.swing.JButton turnToButton; 244 private javax.swing.JPanel inputPanel; 245 private javax.swing.JPanel bottomPanel; 246 private javax.swing.JPanel messagesPanel; 247 private javax.swing.JButton rotateLeftButton; 248 private javax.swing.JButton rotateRightButton; 249 private javax.swing.JTabbedPane jTabbedPane1; 250 private javax.swing.JTextPane serverMessagesField; 251 private javax.swing.JPanel mainPanel; 252 private javax.swing.JTable asyncMessagesTable; 253 private javax.swing.JPanel tableButtonPanel; 254 // End of variables declaration//GEN-END:variables 255 256 }