Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package scoutapp; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; //Excel File Read Packages import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * * @author spencersharp * @author emccosky */ public class MainWindow extends javax.swing.JFrame { private Season season; private String[][] teamListData; private String[][] teamMatchesData; private String[][] rankingsData; private String[][] matchesData; private Competition currentComp; private Match currentMatch; String compSelection; /** * Creates new form MainWindow */ public MainWindow() { initData(); initComponents(); } /** * 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 Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { addTeamDialog = new javax.swing.JDialog(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); addDialog_teamNumField = new javax.swing.JTextField(); addDialog_teamNameField = new javax.swing.JTextField(); addDialog_addButton = new javax.swing.JButton(); addDialog_cancelButton = new javax.swing.JButton(); addMatchDialog = new javax.swing.JDialog(); jPanel2 = new javax.swing.JPanel(); jLabel26 = new javax.swing.JLabel(); Blue1Field = new javax.swing.JTextField(); jLabel28 = new javax.swing.JLabel(); Blue2Field = new javax.swing.JTextField(); jLabel30 = new javax.swing.JLabel(); BlueScoreField = new javax.swing.JTextField(); jLabel31 = new javax.swing.JLabel(); BluePenaltiesField = new javax.swing.JTextField(); jLabel34 = new javax.swing.JLabel(); jScrollPane7 = new javax.swing.JScrollPane(); BlueComments = new javax.swing.JTextArea(); jPanel3 = new javax.swing.JPanel(); jLabel32 = new javax.swing.JLabel(); Red1Field = new javax.swing.JTextField(); jLabel33 = new javax.swing.JLabel(); Red2Field = new javax.swing.JTextField(); jLabel35 = new javax.swing.JLabel(); RedScoreField = new javax.swing.JTextField(); jLabel36 = new javax.swing.JLabel(); RedPenaltiesField = new javax.swing.JTextField(); jLabel37 = new javax.swing.JLabel(); jScrollPane8 = new javax.swing.JScrollPane(); RedComments = new javax.swing.JTextArea(); ConfirmAddDialogButton = new javax.swing.JButton(); CancelAddDialogButton = new javax.swing.JButton(); editMatchDialog = new javax.swing.JDialog(); jPanel6 = new javax.swing.JPanel(); jLabel38 = new javax.swing.JLabel(); Blue1Field1 = new javax.swing.JTextField(); jLabel39 = new javax.swing.JLabel(); Blue2Field1 = new javax.swing.JTextField(); jLabel40 = new javax.swing.JLabel(); BlueScoreField1 = new javax.swing.JTextField(); jLabel41 = new javax.swing.JLabel(); BluePenaltiesField1 = new javax.swing.JTextField(); jLabel42 = new javax.swing.JLabel(); jScrollPane9 = new javax.swing.JScrollPane(); BlueComments1 = new javax.swing.JTextArea(); jPanel7 = new javax.swing.JPanel(); jLabel43 = new javax.swing.JLabel(); Red1Field1 = new javax.swing.JTextField(); jLabel44 = new javax.swing.JLabel(); Red2Field1 = new javax.swing.JTextField(); jLabel45 = new javax.swing.JLabel(); RedScoreField1 = new javax.swing.JTextField(); jLabel46 = new javax.swing.JLabel(); RedPenaltiesField1 = new javax.swing.JTextField(); jLabel47 = new javax.swing.JLabel(); jScrollPane10 = new javax.swing.JScrollPane(); RedComments1 = new javax.swing.JTextArea(); ConfirmAddDialogButton1 = new javax.swing.JButton(); CancelAddDialogButton1 = new javax.swing.JButton(); Tabs = new javax.swing.JTabbedPane(); Team_Tab = new javax.swing.JPanel(); jScrollPane4 = new javax.swing.JScrollPane(); TeamTable = new javax.swing.JTable(); teamNameLabel = new javax.swing.JLabel(); teamNumLabel = new javax.swing.JLabel(); jScrollPane5 = new javax.swing.JScrollPane(); teamMatchesTable = new javax.swing.JTable(); jLabel6 = new javax.swing.JLabel(); teamNameField = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); teamLocationField = new javax.swing.JTextField(); jLabel10 = new javax.swing.JLabel(); teamNumField = new javax.swing.JTextField(); jPanel1 = new javax.swing.JPanel(); pushbotRadio = new javax.swing.JRadioButton(); notPushbotRadio = new javax.swing.JRadioButton(); jLabel13 = new javax.swing.JLabel(); jLabel15 = new javax.swing.JLabel(); debrisFloorBox = new javax.swing.JCheckBox(); debrisLowBox = new javax.swing.JCheckBox(); debrisMidBox = new javax.swing.JCheckBox(); debrisHighBox = new javax.swing.JCheckBox(); jLabel17 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); lowZoneBox = new javax.swing.JCheckBox(); midZoneBox = new javax.swing.JCheckBox(); highZoneBox = new javax.swing.JCheckBox(); hangBox = new javax.swing.JCheckBox(); noneEndgameBox = new javax.swing.JCheckBox(); autoClimbersBox = new javax.swing.JCheckBox(); autoNoneBox = new javax.swing.JCheckBox(); autoLowZoneBox = new javax.swing.JCheckBox(); autoMidZoneBox = new javax.swing.JCheckBox(); autoHighZoneBox = new javax.swing.JCheckBox(); autoBeaconBox = new javax.swing.JCheckBox(); autoPartlyBox = new javax.swing.JCheckBox(); jLabel19 = new javax.swing.JLabel(); debrisLevelSlider = new javax.swing.JSlider(); jLabel20 = new javax.swing.JLabel(); climbLevelSlider = new javax.swing.JSlider(); jLabel21 = new javax.swing.JLabel(); hangLevelSlider = new javax.swing.JSlider(); jLabel22 = new javax.swing.JLabel(); jLabel23 = new javax.swing.JLabel(); jScrollPane6 = new javax.swing.JScrollPane(); robotDesignField = new javax.swing.JTextArea(); baseTypeField = new javax.swing.JTextField(); jLabel24 = new javax.swing.JLabel(); jLabel25 = new javax.swing.JLabel(); teamAdjectiveField = new javax.swing.JTextField(); addTeamButton = new javax.swing.JButton(); removeTeamButton = new javax.swing.JButton(); Match_Tab = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); MatchTable = new javax.swing.JTable(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); MatchNumLabel = new javax.swing.JLabel(); CompetitionLabel = new javax.swing.JLabel(); DateLabel = new javax.swing.JLabel(); jPanel4 = new javax.swing.JPanel(); Blue1Label = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); Blue2Label = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); CommentsField = new javax.swing.JScrollPane(); BlueCommentsField = new javax.swing.JTextArea(); BlueScoreLabel = new javax.swing.JLabel(); jLabel27 = new javax.swing.JLabel(); jPanel5 = new javax.swing.JPanel(); jLabel12 = new javax.swing.JLabel(); Red1Label = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); jLabel16 = new javax.swing.JLabel(); Red2Label = new javax.swing.JLabel(); jScrollPane3 = new javax.swing.JScrollPane(); RedCommentsField = new javax.swing.JTextArea(); RedScoreLabel = new javax.swing.JLabel(); jLabel29 = new javax.swing.JLabel(); jButton2 = new javax.swing.JButton(); Rank_Tab = new javax.swing.JPanel(); ThisCompRadio = new javax.swing.JRadioButton(); SeasonRadio = new javax.swing.JRadioButton(); jScrollPane2 = new javax.swing.JScrollPane(); RankTable = new javax.swing.JTable(); GoToTeamPage = new javax.swing.JButton(); topMenuBar = new javax.swing.JMenuBar(); seasonMenu = new javax.swing.JMenu(); seasonOpenOption = new javax.swing.JMenuItem(); seasonSaveOption = new javax.swing.JMenuItem(); seasonSaveAsOption = new javax.swing.JMenuItem(); seasonCloseOption = new javax.swing.JMenuItem(); dataMenu = new javax.swing.JMenu(); dataImportTeamsOption = new javax.swing.JMenuItem(); dataExportTeamsOption = new javax.swing.JMenuItem(); dataExportRankingsOption = new javax.swing.JMenuItem(); dataImportMatchesOption = new javax.swing.JMenuItem(); dataExportMatchesOption = new javax.swing.JMenuItem(); compMenu = new javax.swing.JMenu(); compImportOption = new javax.swing.JMenuItem(); compExportOption = new javax.swing.JMenuItem(); currentCompMenu = new javax.swing.JMenu(); compCurrentSelectOption = new javax.swing.JMenuItem(); compCurrentReplaceOption = new javax.swing.JMenuItem(); addTeamDialog.setMinimumSize(new java.awt.Dimension(335, 160)); addTeamDialog.setModal(true); addTeamDialog.setResizable(false); jLabel4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel4.setText("Team Number:"); jLabel5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel5.setText("Team Name:"); addDialog_addButton.setText("Add Team"); addDialog_addButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addDialog_addButtonActionPerformed(evt); } }); addDialog_cancelButton.setText("Cancel"); addDialog_cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addDialog_cancelButtonActionPerformed(evt); } }); javax.swing.GroupLayout addTeamDialogLayout = new javax.swing.GroupLayout(addTeamDialog.getContentPane()); addTeamDialog.getContentPane().setLayout(addTeamDialogLayout); addTeamDialogLayout.setHorizontalGroup(addTeamDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addTeamDialogLayout.createSequentialGroup().addContainerGap().addGroup(addTeamDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addTeamDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(addTeamDialogLayout.createSequentialGroup().addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(addDialog_teamNumField)) .addGroup(addTeamDialogLayout.createSequentialGroup().addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(addDialog_teamNameField, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(addTeamDialogLayout.createSequentialGroup().addGap(69, 69, 69) .addComponent(addDialog_addButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(addDialog_cancelButton))) .addContainerGap(19, Short.MAX_VALUE))); addTeamDialogLayout.setVerticalGroup(addTeamDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addTeamDialogLayout.createSequentialGroup().addContainerGap().addGroup(addTeamDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel4) .addComponent(addDialog_teamNumField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup( addTeamDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel5).addComponent(addDialog_teamNameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup( addTeamDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(addDialog_addButton).addComponent(addDialog_cancelButton)) .addContainerGap(64, Short.MAX_VALUE))); addMatchDialog.setMinimumSize(new java.awt.Dimension(430, 600)); addMatchDialog.setModal(true); addMatchDialog.setResizable(false); jPanel2.setBackground(new java.awt.Color(0, 102, 255)); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Blue Alliance", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, java.awt.Color.white)); jPanel2.setMaximumSize(new java.awt.Dimension(392, 200)); jPanel2.setMinimumSize(new java.awt.Dimension(392, 200)); jLabel26.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel26.setForeground(new java.awt.Color(255, 255, 255)); jLabel26.setText("Blue 1:"); jLabel28.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel28.setForeground(new java.awt.Color(255, 255, 255)); jLabel28.setText("Blue 2:"); jLabel30.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel30.setForeground(new java.awt.Color(255, 255, 255)); jLabel30.setText("Score:"); jLabel31.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel31.setForeground(new java.awt.Color(255, 255, 255)); jLabel31.setText("Penalties:"); jLabel34.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel34.setForeground(new java.awt.Color(255, 255, 255)); jLabel34.setText("Comments:"); BlueComments.setColumns(20); BlueComments.setRows(5); jScrollPane7.setViewportView(BlueComments); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup(jPanel2Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane7) .addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel26) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Blue1Field)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addComponent(jLabel28) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Blue2Field)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout .createSequentialGroup().addComponent(jLabel30) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(BlueScoreField, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel31) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(BluePenaltiesField, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE)) .addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel34).addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel26) .addComponent(Blue1Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel28).addComponent(Blue2Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel30) .addComponent(BlueScoreField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel31).addComponent(BluePenaltiesField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel34) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE))); jPanel3.setBackground(new java.awt.Color(255, 51, 51)); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Red Alliance", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, java.awt.Color.white)); jPanel3.setMaximumSize(new java.awt.Dimension(392, 200)); jPanel3.setMinimumSize(new java.awt.Dimension(392, 200)); jLabel32.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel32.setForeground(new java.awt.Color(255, 255, 255)); jLabel32.setText("Red 1:"); jLabel33.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel33.setForeground(new java.awt.Color(255, 255, 255)); jLabel33.setText("Red 2:"); jLabel35.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel35.setForeground(new java.awt.Color(255, 255, 255)); jLabel35.setText("Score:"); jLabel36.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel36.setForeground(new java.awt.Color(255, 255, 255)); jLabel36.setText("Penalties:"); jLabel37.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel37.setForeground(new java.awt.Color(255, 255, 255)); jLabel37.setText("Comments:"); RedComments.setColumns(20); RedComments.setRows(5); jScrollPane8.setViewportView(RedComments); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup(jPanel3Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup().addContainerGap().addGroup(jPanel3Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane8) .addGroup(jPanel3Layout.createSequentialGroup().addComponent(jLabel32) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Red1Field)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup().addComponent(jLabel33) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Red2Field)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup().addComponent(jLabel35) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(RedScoreField, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel36) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(RedPenaltiesField, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE)) .addGroup(jPanel3Layout.createSequentialGroup().addComponent(jLabel37).addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel32) .addComponent(Red1Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel33).addComponent(Red2Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel35) .addComponent(RedScoreField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel36).addComponent(RedPenaltiesField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel37) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE))); ConfirmAddDialogButton.setText("Confirm"); ConfirmAddDialogButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ConfirmAddDialogButtonActionPerformed(evt); } }); CancelAddDialogButton.setText("Cancel"); CancelAddDialogButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { CancelAddDialogButtonActionPerformed(evt); } }); javax.swing.GroupLayout addMatchDialogLayout = new javax.swing.GroupLayout(addMatchDialog.getContentPane()); addMatchDialog.getContentPane().setLayout(addMatchDialogLayout); addMatchDialogLayout.setHorizontalGroup( addMatchDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addMatchDialogLayout.createSequentialGroup().addContainerGap() .addGroup(addMatchDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(addMatchDialogLayout.createSequentialGroup() .addComponent(ConfirmAddDialogButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(CancelAddDialogButton))) .addContainerGap())); addMatchDialogLayout.setVerticalGroup(addMatchDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(addMatchDialogLayout.createSequentialGroup().addContainerGap() .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup( addMatchDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ConfirmAddDialogButton).addComponent(CancelAddDialogButton)) .addContainerGap(44, Short.MAX_VALUE))); editMatchDialog.setMinimumSize(new java.awt.Dimension(430, 600)); editMatchDialog.setModal(true); editMatchDialog.setResizable(false); jPanel6.setBackground(new java.awt.Color(0, 102, 255)); jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Blue Alliance", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, java.awt.Color.white)); jPanel6.setMaximumSize(new java.awt.Dimension(392, 200)); jPanel6.setMinimumSize(new java.awt.Dimension(392, 200)); jLabel38.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel38.setForeground(new java.awt.Color(255, 255, 255)); jLabel38.setText("Blue 1:"); jLabel39.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel39.setForeground(new java.awt.Color(255, 255, 255)); jLabel39.setText("Blue 2:"); jLabel40.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel40.setForeground(new java.awt.Color(255, 255, 255)); jLabel40.setText("Score:"); jLabel41.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel41.setForeground(new java.awt.Color(255, 255, 255)); jLabel41.setText("Penalties:"); jLabel42.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel42.setForeground(new java.awt.Color(255, 255, 255)); jLabel42.setText("Comments:"); BlueComments1.setColumns(20); BlueComments1.setRows(5); jScrollPane9.setViewportView(BlueComments1); javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); jPanel6.setLayout(jPanel6Layout); jPanel6Layout.setHorizontalGroup(jPanel6Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane9) .addGroup(jPanel6Layout.createSequentialGroup().addComponent(jLabel38) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Blue1Field1)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup().addComponent(jLabel39) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Blue2Field1)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout .createSequentialGroup().addComponent(jLabel40) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(BlueScoreField1, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel41) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(BluePenaltiesField1, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE)) .addGroup(jPanel6Layout.createSequentialGroup().addComponent(jLabel42).addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); jPanel6Layout.setVerticalGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel38) .addComponent(Blue1Field1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel39).addComponent(Blue2Field1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel40) .addComponent(BlueScoreField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel41).addComponent(BluePenaltiesField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel42) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE))); jPanel7.setBackground(new java.awt.Color(255, 51, 51)); jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Red Alliance", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, java.awt.Color.white)); jPanel7.setMaximumSize(new java.awt.Dimension(392, 200)); jPanel7.setMinimumSize(new java.awt.Dimension(392, 200)); jLabel43.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel43.setForeground(new java.awt.Color(255, 255, 255)); jLabel43.setText("Red 1:"); jLabel44.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel44.setForeground(new java.awt.Color(255, 255, 255)); jLabel44.setText("Red 2:"); jLabel45.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel45.setForeground(new java.awt.Color(255, 255, 255)); jLabel45.setText("Score:"); jLabel46.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel46.setForeground(new java.awt.Color(255, 255, 255)); jLabel46.setText("Penalties:"); jLabel47.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel47.setForeground(new java.awt.Color(255, 255, 255)); jLabel47.setText("Comments:"); RedComments1.setColumns(20); RedComments1.setRows(5); jScrollPane10.setViewportView(RedComments1); javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); jPanel7.setLayout(jPanel7Layout); jPanel7Layout.setHorizontalGroup(jPanel7Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane10) .addGroup(jPanel7Layout.createSequentialGroup().addComponent(jLabel43) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Red1Field1)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup().addComponent(jLabel44) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Red2Field1)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout .createSequentialGroup().addComponent(jLabel45) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(RedScoreField1, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel46) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(RedPenaltiesField1, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE)) .addGroup(jPanel7Layout.createSequentialGroup().addComponent(jLabel47).addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); jPanel7Layout.setVerticalGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel43) .addComponent(Red1Field1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel44).addComponent(Red2Field1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel45) .addComponent(RedScoreField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel46).addComponent(RedPenaltiesField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel47) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 67, Short.MAX_VALUE))); ConfirmAddDialogButton1.setText("Confirm"); ConfirmAddDialogButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ConfirmAddDialogButton1ActionPerformed(evt); } }); CancelAddDialogButton1.setText("Cancel"); CancelAddDialogButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { CancelAddDialogButton1ActionPerformed(evt); } }); javax.swing.GroupLayout editMatchDialogLayout = new javax.swing.GroupLayout( editMatchDialog.getContentPane()); editMatchDialog.getContentPane().setLayout(editMatchDialogLayout); editMatchDialogLayout.setHorizontalGroup( editMatchDialogLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(editMatchDialogLayout.createSequentialGroup().addContainerGap() .addGroup(editMatchDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(editMatchDialogLayout.createSequentialGroup() .addComponent(ConfirmAddDialogButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(CancelAddDialogButton1))) .addContainerGap())); editMatchDialogLayout.setVerticalGroup(editMatchDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(editMatchDialogLayout.createSequentialGroup().addContainerGap() .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(editMatchDialogLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ConfirmAddDialogButton1).addComponent(CancelAddDialogButton1)) .addContainerGap(144, Short.MAX_VALUE))); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMinimumSize(new java.awt.Dimension(1100, 700)); setResizable(false); Tabs.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { TabsStateChanged(evt); } }); TeamTable.setModel(new TeamListTableModel(teamListData)); TeamTable.getTableHeader().setReorderingAllowed(false); TeamTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 1) { JTable target = (JTable) e.getSource(); int row = target.getSelectedRow(); int column = target.getSelectedColumn(); viewTeamStats(TeamTable.getValueAt(row, 0)); } } }); jScrollPane4.setViewportView(TeamTable); teamNameLabel.setFont(new java.awt.Font("Miriam", 1, 36)); // NOI18N teamNameLabel.setText("Team Name Goes Here"); teamNameLabel.setMaximumSize(new java.awt.Dimension(512, 38)); teamNameLabel.setMinimumSize(new java.awt.Dimension(512, 38)); teamNameLabel.setPreferredSize(new java.awt.Dimension(512, 38)); teamNumLabel.setFont(new java.awt.Font("Miriam", 1, 48)); // NOI18N teamNumLabel.setText("####"); teamMatchesTable.setModel(new TeamMatchesTableModel(teamMatchesData)); jScrollPane5.setViewportView(teamMatchesTable); jLabel6.setFont(new java.awt.Font("Miriam", 1, 14)); // NOI18N jLabel6.setText("Name:"); teamNameField.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { teamNameFieldFocusLost(evt); } }); jLabel8.setFont(new java.awt.Font("Miriam", 1, 14)); // NOI18N jLabel8.setText("Location:"); teamLocationField.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { teamLocationFieldFocusLost(evt); } }); jLabel10.setFont(new java.awt.Font("Miriam", 1, 14)); // NOI18N jLabel10.setText("Number:"); teamNumField.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { teamNumFieldFocusLost(evt); } }); jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); pushbotRadio.setFont(pushbotRadio.getFont().deriveFont(pushbotRadio.getFont().getSize() + 3f)); pushbotRadio.setText("Pushbot"); notPushbotRadio.setFont(notPushbotRadio.getFont().deriveFont(notPushbotRadio.getFont().getSize() + 3f)); notPushbotRadio.setText("Not Push Bot"); jLabel13.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel13.setText("Abilities:"); jLabel15.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N jLabel15.setText("Debris:"); debrisFloorBox.setText("Floor Goal"); debrisFloorBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { debrisFloorBoxActionPerformed(evt); } }); debrisLowBox.setText("Low Goal"); debrisMidBox.setText("Mid Goal"); debrisMidBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { debrisMidBoxActionPerformed(evt); } }); debrisHighBox.setText("High Goal"); jLabel17.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N jLabel17.setText("Autonomous:"); jLabel18.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N jLabel18.setText("Robot Information"); lowZoneBox.setText("Low Zone"); lowZoneBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { lowZoneBoxActionPerformed(evt); } }); midZoneBox.setText("Mid Zone"); highZoneBox.setText("High Zone"); highZoneBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { highZoneBoxActionPerformed(evt); } }); hangBox.setText("Hang"); noneEndgameBox.setText("None"); autoClimbersBox.setText("Climbers"); autoNoneBox.setText("None"); autoLowZoneBox.setText("Low Zone"); autoLowZoneBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { autoLowZoneBoxActionPerformed(evt); } }); autoMidZoneBox.setText("Mid Zone"); autoHighZoneBox.setText("High Zone"); autoHighZoneBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { autoHighZoneBoxActionPerformed(evt); } }); autoBeaconBox.setText("Beacon"); autoBeaconBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { autoBeaconBoxActionPerformed(evt); } }); autoPartlyBox.setText("Partly"); jLabel19.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N jLabel19.setText("End Game:"); jLabel20.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel20.setText("Debris Scoring Level"); jLabel21.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel21.setText("Mountain Climb Level"); jLabel22.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel22.setText("Hang Level:"); jLabel23.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel23.setText("Base Type:"); robotDesignField.setColumns(20); robotDesignField.setRows(5); jScrollPane6.setViewportView(robotDesignField); baseTypeField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { baseTypeFieldActionPerformed(evt); } }); jLabel24.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel24.setText("Robot Design Comments:"); jLabel25.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N jLabel25.setText("Team Adjective:"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(78, 78, 78) .addComponent(pushbotRadio).addGap(18, 18, 18) .addComponent(notPushbotRadio)) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() .addComponent(jLabel13)) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() .addComponent(jLabel15))) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(debrisFloorBox) .addGap(33, 33, 33).addComponent(debrisLowBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(debrisMidBox).addGap(18, 18, 18).addComponent(debrisHighBox)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addComponent(autoClimbersBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(autoBeaconBox).addGap(223, 223, 223)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addComponent(autoNoneBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(autoPartlyBox).addGap(18, 18, 18) .addComponent(autoLowZoneBox).addGap(10, 10, 10) .addComponent(autoMidZoneBox).addGap(10, 10, 10) .addComponent(autoHighZoneBox)) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(noneEndgameBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(lowZoneBox).addGap(10, 10, 10).addComponent(midZoneBox) .addGap(10, 10, 10).addComponent(highZoneBox).addGap(10, 10, 10) .addComponent(hangBox)) .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel17).addComponent(jLabel18).addComponent(jLabel19)) .addGap(0, 0, Short.MAX_VALUE))))) .addContainerGap()) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel21) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(climbLevelSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(hangLevelSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel20) .addGap(18, 18, 18).addComponent(debrisLevelSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(38, 38, 38)) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane6) .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel22) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel23) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(baseTypeField, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel24)).addGap(0, 0, Short.MAX_VALUE)) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel25) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(teamAdjectiveField))) .addContainerGap())); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(pushbotRadio).addComponent(notPushbotRadio)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel13).addGap(11, 11, 11).addComponent(jLabel15) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(debrisFloorBox).addComponent(debrisLowBox).addComponent(debrisMidBox) .addComponent(debrisHighBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel17).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(autoClimbersBox).addComponent(autoBeaconBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(autoLowZoneBox).addComponent(autoMidZoneBox) .addComponent(autoHighZoneBox).addComponent(autoNoneBox) .addComponent(autoPartlyBox)) .addGap(6, 6, 6).addComponent(jLabel19) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lowZoneBox).addComponent(midZoneBox).addComponent(highZoneBox) .addComponent(hangBox).addComponent(noneEndgameBox)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel18).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(debrisLevelSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addComponent(jLabel20, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(climbLevelSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addComponent(jLabel21)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(hangLevelSlider, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addComponent(jLabel22)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel23).addComponent(baseTypeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel24) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel25).addComponent(teamAdjectiveField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); addTeamButton.setText("Add Team"); addTeamButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addTeamButtonActionPerformed(evt); } }); removeTeamButton.setText("Remove Team"); javax.swing.GroupLayout Team_TabLayout = new javax.swing.GroupLayout(Team_Tab); Team_Tab.setLayout(Team_TabLayout); Team_TabLayout.setHorizontalGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(Team_TabLayout .createSequentialGroup().addContainerGap().addGroup( Team_TabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 202, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(Team_TabLayout.createSequentialGroup().addComponent(addTeamButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(removeTeamButton))) .addGroup(Team_TabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Team_TabLayout.createSequentialGroup().addGap(25, 25, 25) .addComponent(teamNumLabel).addGap(18, 18, 18) .addComponent(teamNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 512, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(Team_TabLayout.createSequentialGroup().addGap(18, 18, 18) .addGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Team_TabLayout.createSequentialGroup() .addComponent(jLabel6) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(teamNameField)) .addGroup(Team_TabLayout.createSequentialGroup() .addComponent(jLabel8) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(teamLocationField)) .addGroup(Team_TabLayout.createSequentialGroup() .addComponent(jLabel10) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(teamNumField)) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap())); Team_TabLayout.setVerticalGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Team_TabLayout.createSequentialGroup().addContainerGap().addGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Team_TabLayout.createSequentialGroup() .addGroup(Team_TabLayout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(teamNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(teamNumLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Team_TabLayout.createSequentialGroup().addGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel10).addComponent(teamNumField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(Team_TabLayout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel6).addComponent(teamNameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(Team_TabLayout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8).addComponent(teamLocationField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 562, Short.MAX_VALUE))) .addGroup(Team_TabLayout.createSequentialGroup() .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 583, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(Team_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(addTeamButton).addComponent(removeTeamButton)) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap())); Tabs.addTab("Teams", Team_Tab); Match_Tab.addFocusListener(new java.awt.event.FocusAdapter() { public void focusGained(java.awt.event.FocusEvent evt) { Match_TabFocusGained(evt); } }); MatchTable.setModel(new MatchTableModel(matchesData)); MatchTable.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { MatchTableKeyPressed(evt); } }); MatchTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 1) { JTable target = (JTable) e.getSource(); int row = target.getSelectedRow(); int column = target.getSelectedColumn(); viewMatchStats(MatchTable.getValueAt(row, 0), MatchTable.getValueAt(row, 1)); } else if (e.getClickCount() == 2) { JTable target = (JTable) e.getSource(); int row = target.getSelectedRow(); int column = target.getSelectedColumn(); editMatch(MatchTable.getValueAt(row, 0), MatchTable.getValueAt(row, 1)); } } }); jScrollPane1.setViewportView(MatchTable); jLabel1.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel1.setText("Match Number:"); jLabel2.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel2.setText("Date:"); jLabel3.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel3.setText("Competition:"); MatchNumLabel.setFont(new java.awt.Font("Miriam", 0, 18)); // NOI18N MatchNumLabel.setText("0"); CompetitionLabel.setFont(new java.awt.Font("Miriam", 0, 18)); // NOI18N CompetitionLabel.setText("NULL"); DateLabel.setFont(new java.awt.Font("Miriam", 0, 18)); // NOI18N DateLabel.setText("1-1-2015"); jPanel4.setBackground(new java.awt.Color(0, 102, 255)); jPanel4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); Blue1Label.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N Blue1Label.setForeground(new java.awt.Color(255, 255, 255)); Blue1Label.setText("NULL"); jLabel7.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel7.setForeground(new java.awt.Color(255, 255, 255)); jLabel7.setText("Blue 1:"); jLabel9.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel9.setForeground(new java.awt.Color(255, 255, 255)); jLabel9.setText("Blue 2:"); Blue2Label.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N Blue2Label.setForeground(new java.awt.Color(255, 255, 255)); Blue2Label.setText("NULL"); jLabel11.setFont(new java.awt.Font("Miriam", 1, 14)); // NOI18N jLabel11.setForeground(new java.awt.Color(255, 255, 255)); jLabel11.setText("Comments:"); BlueCommentsField.setEditable(false); BlueCommentsField.setColumns(20); BlueCommentsField.setRows(5); BlueCommentsField.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { BlueCommentsFieldFocusLost(evt); } }); CommentsField.setViewportView(BlueCommentsField); BlueScoreLabel.setFont(new java.awt.Font("Arial", 1, 24)); // NOI18N BlueScoreLabel.setForeground(new java.awt.Color(255, 255, 255)); BlueScoreLabel.setText("###"); jLabel27.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel27.setForeground(new java.awt.Color(255, 255, 255)); jLabel27.setText("Score:"); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addContainerGap().addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(CommentsField, javax.swing.GroupLayout.PREFERRED_SIZE, 500, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel4Layout.createSequentialGroup().addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Blue1Label, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Blue2Label, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) .addGroup(jPanel4Layout.createSequentialGroup().addComponent(jLabel11) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel27).addGap(18, 18, 18))) .addComponent(BlueScoreLabel))) .addContainerGap(15, Short.MAX_VALUE))); jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel4Layout.createSequentialGroup() .addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7).addComponent(Blue1Label) .addComponent(jLabel9).addComponent(Blue2Label)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel11)) .addGroup(jPanel4Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(BlueScoreLabel).addComponent(jLabel27))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(CommentsField, javax.swing.GroupLayout.DEFAULT_SIZE, 53, Short.MAX_VALUE) .addContainerGap())); jPanel5.setBackground(new java.awt.Color(255, 51, 51)); jPanel5.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); jLabel12.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel12.setForeground(new java.awt.Color(255, 255, 255)); jLabel12.setText("Red 1:"); Red1Label.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N Red1Label.setForeground(new java.awt.Color(255, 255, 255)); Red1Label.setText("NULL"); jLabel14.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel14.setForeground(new java.awt.Color(255, 255, 255)); jLabel14.setText("Red 2:"); jLabel16.setFont(new java.awt.Font("Miriam", 1, 14)); // NOI18N jLabel16.setForeground(new java.awt.Color(255, 255, 255)); jLabel16.setText("Comments:"); Red2Label.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N Red2Label.setForeground(new java.awt.Color(255, 255, 255)); Red2Label.setText("NULL"); RedCommentsField.setEditable(false); RedCommentsField.setColumns(20); RedCommentsField.setRows(5); RedCommentsField.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { RedCommentsFieldFocusLost(evt); } }); jScrollPane3.setViewportView(RedCommentsField); RedScoreLabel.setFont(new java.awt.Font("Arial", 1, 24)); // NOI18N RedScoreLabel.setForeground(new java.awt.Color(255, 255, 255)); RedScoreLabel.setText("###"); jLabel29.setFont(new java.awt.Font("Miriam", 1, 18)); // NOI18N jLabel29.setForeground(new java.awt.Color(255, 255, 255)); jLabel29.setText("Score:"); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup().addContainerGap().addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane3) .addGroup(jPanel5Layout.createSequentialGroup().addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup().addComponent(jLabel12) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Red1Label, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel14) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(Red2Label, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) .addGroup(jPanel5Layout.createSequentialGroup().addComponent(jLabel16) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel29).addGap(16, 16, 16))) .addComponent(RedScoreLabel))) .addContainerGap())); jPanel5Layout.setVerticalGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel5Layout.createSequentialGroup() .addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel12).addComponent(Red1Label) .addComponent(jLabel14).addComponent(Red2Label)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel16)) .addGroup(jPanel5Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(RedScoreLabel).addComponent(jLabel29))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 53, Short.MAX_VALUE) .addContainerGap())); jButton2.setText("Add Match"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); javax.swing.GroupLayout Match_TabLayout = new javax.swing.GroupLayout(Match_Tab); Match_Tab.setLayout(Match_TabLayout); Match_TabLayout.setHorizontalGroup(Match_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jScrollPane1) .addGroup(Match_TabLayout.createSequentialGroup().addGroup(Match_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Match_TabLayout.createSequentialGroup().addGap(21, 21, 21).addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(MatchNumLabel).addGap(40, 40, 40).addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(CompetitionLabel).addGap(257, 257, 257).addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(DateLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton2)) .addGroup(Match_TabLayout.createSequentialGroup().addGap(13, 13, 13) .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18).addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap())); Match_TabLayout.setVerticalGroup(Match_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Match_TabLayout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 454, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(Match_TabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1).addComponent(jLabel3).addComponent(jLabel2) .addComponent(MatchNumLabel).addComponent(CompetitionLabel).addComponent(DateLabel) .addComponent(jButton2)) .addGap(10, 10, 10) .addGroup(Match_TabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap())); Tabs.addTab("Matches", Match_Tab); ThisCompRadio.setText("This Competition"); ThisCompRadio.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ThisCompRadioActionPerformed(evt); } }); SeasonRadio.setText("Season"); SeasonRadio.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { SeasonRadioActionPerformed(evt); } }); RankTable.setModel(new RankingsTableModel(rankingsData)); RankTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { JTable target = (JTable) e.getSource(); int row = target.getSelectedRow(); int column = target.getSelectedColumn(); Tabs.setSelectedIndex(0); viewTeamStats(RankTable.getValueAt(row, 1)); } } }); jScrollPane2.setViewportView(RankTable); GoToTeamPage.setText("Go to Team Page"); GoToTeamPage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { GoToTeamPageActionPerformed(evt); } }); javax.swing.GroupLayout Rank_TabLayout = new javax.swing.GroupLayout(Rank_Tab); Rank_Tab.setLayout(Rank_TabLayout); Rank_TabLayout.setHorizontalGroup(Rank_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Rank_TabLayout.createSequentialGroup().addGap(22, 22, 22).addComponent(ThisCompRadio) .addGap(18, 18, 18).addComponent(SeasonRadio).addContainerGap(869, Short.MAX_VALUE)) .addGroup(Rank_TabLayout.createSequentialGroup().addContainerGap() .addGroup(Rank_TabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane2).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, Rank_TabLayout.createSequentialGroup().addGap(0, 0, Short.MAX_VALUE) .addComponent(GoToTeamPage))) .addContainerGap())); Rank_TabLayout.setVerticalGroup(Rank_TabLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(Rank_TabLayout.createSequentialGroup().addContainerGap() .addGroup(Rank_TabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ThisCompRadio).addComponent(SeasonRadio)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 557, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE) .addComponent(GoToTeamPage).addContainerGap())); Tabs.addTab("Rankings", Rank_Tab); seasonMenu.setText("Season"); seasonOpenOption.setText("Open"); seasonOpenOption.setToolTipText(""); seasonOpenOption.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { seasonOpenOptionActionPerformed(evt); } }); seasonMenu.add(seasonOpenOption); seasonSaveOption.setText("Save"); seasonSaveOption.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { seasonSaveOptionActionPerformed(evt); } }); seasonMenu.add(seasonSaveOption); seasonSaveAsOption.setText("Save As"); seasonMenu.add(seasonSaveAsOption); seasonCloseOption.setText("Close"); seasonMenu.add(seasonCloseOption); topMenuBar.add(seasonMenu); dataMenu.setText("Data"); dataImportTeamsOption.setText("Import Teams"); dataMenu.add(dataImportTeamsOption); dataExportTeamsOption.setText("Export Teams"); dataMenu.add(dataExportTeamsOption); dataExportRankingsOption.setText("Export Rankings"); dataMenu.add(dataExportRankingsOption); dataImportMatchesOption.setText("Import Matches"); dataMenu.add(dataImportMatchesOption); dataExportMatchesOption.setText("Export Matches"); dataMenu.add(dataExportMatchesOption); topMenuBar.add(dataMenu); compMenu.setText("Competition"); compImportOption.setText("Import"); compMenu.add(compImportOption); compExportOption.setText("Export"); compExportOption.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { compExportOptionActionPerformed(evt); } }); compMenu.add(compExportOption); currentCompMenu.setText("Current Competition"); compCurrentSelectOption.setText("Select"); currentCompMenu.add(compCurrentSelectOption); compCurrentReplaceOption.setText("Replace"); compCurrentReplaceOption.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { compCurrentReplaceOptionActionPerformed(evt); } }); currentCompMenu.add(compCurrentReplaceOption); compMenu.add(currentCompMenu); topMenuBar.add(compMenu); setJMenuBar(topMenuBar); 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().addComponent(Tabs).addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(Tabs))); pack(); }// </editor-fold>//GEN-END:initComponents /* TOP NAVBAR NOT YET IMPLEMENTED TODO: FIGURE OUT HOW TO WORK THE FILE EXPORT STUFF AND MULTI USER SHARING =========================================================================*/ private void seasonSaveOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_seasonSaveOptionActionPerformed // TODO add your handling code here: }//GEN-LAST:event_seasonSaveOptionActionPerformed private void compExportOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_compExportOptionActionPerformed // TODO add your handling code here: }//GEN-LAST:event_compExportOptionActionPerformed private void compCurrentReplaceOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_compCurrentReplaceOptionActionPerformed // TODO add your handling code here: }//GEN-LAST:event_compCurrentReplaceOptionActionPerformed private void debrisFloorBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_debrisFloorBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_debrisFloorBoxActionPerformed private void debrisMidBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_debrisMidBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_debrisMidBoxActionPerformed private void lowZoneBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_lowZoneBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_lowZoneBoxActionPerformed private void highZoneBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_highZoneBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_highZoneBoxActionPerformed private void autoLowZoneBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autoLowZoneBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_autoLowZoneBoxActionPerformed private void autoHighZoneBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autoHighZoneBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_autoHighZoneBoxActionPerformed private void autoBeaconBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autoBeaconBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_autoBeaconBoxActionPerformed private void baseTypeFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_baseTypeFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_baseTypeFieldActionPerformed private void seasonOpenOptionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_seasonOpenOptionActionPerformed // TODO add your handling code here: }//GEN-LAST:event_seasonOpenOptionActionPerformed //When add team button pressed private void addTeamButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addTeamButtonActionPerformed addTeamDialog.setVisible(true); }//GEN-LAST:event_addTeamButtonActionPerformed //Cancel button on the add team dialog box private void addDialog_cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addDialog_cancelButtonActionPerformed addTeamDialog.dispose(); addTeamDialog.setVisible(false); }//GEN-LAST:event_addDialog_cancelButtonActionPerformed //When add button on add team dialog pressed, add a match to the current season private void addDialog_addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addDialog_addButtonActionPerformed String num = addDialog_teamNumField.getText(); String name = addDialog_teamNameField.getText(); addTeam(num, name, currentComp.getCompetitionID()); addTeamDialog.dispose(); addTeamDialog.setVisible(false); }//GEN-LAST:event_addDialog_addButtonActionPerformed //Something I tried, didn't work, don't know how to get rid of this aut-gen code private void Match_TabFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_Match_TabFocusGained }//GEN-LAST:event_Match_TabFocusGained //When the user switches tabs, call the updateTabs() method private void TabsStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_TabsStateChanged updateTabs(); }//GEN-LAST:event_TabsStateChanged //Team number is an immutable attribute, it would then be a different team private void teamNumFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_teamNumFieldFocusLost }//GEN-LAST:event_teamNumFieldFocusLost //When the user is done editing the team name private void teamNameFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_teamNameFieldFocusLost season.changeTeamName(Integer.parseInt(teamNumLabel.getText()), teamNameField.getText()); //Update the team display viewTeamStats(teamNumLabel.getText()); updateTeamTab(); }//GEN-LAST:event_teamNameFieldFocusLost //When the user is done editing the team loation private void teamLocationFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_teamLocationFieldFocusLost season.changeTeamLocation(Integer.parseInt(teamNumLabel.getText()), teamLocationField.getText()); //Update the team display viewTeamStats(teamNumLabel.getText()); updateTeamTab(); }//GEN-LAST:event_teamLocationFieldFocusLost //Once again, can't get rid of auto-gen code private void MatchTableKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_MatchTableKeyPressed // TODO add your handling code here: }//GEN-LAST:event_MatchTableKeyPressed //Once again, can't get rid of auto-gen code private void BlueCommentsFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_BlueCommentsFieldFocusLost }//GEN-LAST:event_BlueCommentsFieldFocusLost //Once again, can't get rid of auto-gen code private void RedCommentsFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_RedCommentsFieldFocusLost }//GEN-LAST:event_RedCommentsFieldFocusLost //When the user is done adding a match, add the match to the current competition private void ConfirmAddDialogButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ConfirmAddDialogButtonActionPerformed //initial variable declarations int red1ID = 0; int red2ID = 0; int blue1ID = 0; int blue2ID = 0; int redTotalScore = 0; int blueTotalScore = 0; String blueComments = ""; String redComments = ""; //catch any number format errors try { red1ID = Integer.parseInt(Red1Field.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { red2ID = Integer.parseInt(Red2Field.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { blue1ID = Integer.parseInt(Blue1Field.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { blue2ID = Integer.parseInt(Blue2Field.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { redTotalScore = Integer.parseInt(RedScoreField.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Score must be a number!"); } try { blueTotalScore = Integer.parseInt(BlueScoreField.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Score must be a number!"); } //get the match comments blueComments = BlueComments.getText(); redComments = RedComments.getText(); //add a match to the season, in doing so, the match is added to the correct competition and the team list is checked/updated season.addMatch(new Match(currentComp.getCompetitionID(), currentComp.getNextMatchID(), red1ID, red2ID, blue1ID, blue2ID, redTotalScore, blueTotalScore, blueComments, redComments)); addMatchDialog.setVisible(false); addMatchDialog.dispose(); updateTabs(); }//GEN-LAST:event_ConfirmAddDialogButtonActionPerformed //When the add match button is clicked, open the add match window private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed addMatchDialog.setVisible(true); }//GEN-LAST:event_jButton2ActionPerformed //When the add match window cancel button is clicked, close the add match window without saving private void CancelAddDialogButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CancelAddDialogButtonActionPerformed addMatchDialog.setVisible(false); addMatchDialog.dispose(); }//GEN-LAST:event_CancelAddDialogButtonActionPerformed //When clicks the confirm button on the Edit match window private void ConfirmAddDialogButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ConfirmAddDialogButton1ActionPerformed //check for anc catch all number format errors try { currentMatch.setRed1ID((int) Integer.parseInt(Red1Field1.getText())); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { currentMatch.setRed2ID((int) Integer.parseInt(Red2Field1.getText())); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { currentMatch.setBlue1ID((int) Integer.parseInt(Blue1Field1.getText())); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { currentMatch.setBlue2ID((int) Integer.parseInt(Blue2Field1.getText())); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team Numbers must be numbers!"); } try { currentMatch.setRedTotalScore((int) Integer.parseInt(RedScoreField1.getText())); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Score must be a number!"); } try { currentMatch.setBlueTotalScore((int) Integer.parseInt(BlueScoreField1.getText())); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Score must be a number!"); } //set the match comments currentMatch.setBlueComments(BlueComments1.getText()); currentMatch.setRedComments(RedComments1.getText()); //replace the match and update all comp data with the new edited match currentComp.replaceMatch(currentMatch.getMatchNum(), currentMatch); season.replaceComp(currentComp.getCompetitionID(), currentComp); editMatchDialog.setVisible(false); editMatchDialog.dispose(); updateTabs(); }//GEN-LAST:event_ConfirmAddDialogButton1ActionPerformed //When the edit match window cancel button is clicked, close the edit match window without saving private void CancelAddDialogButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CancelAddDialogButton1ActionPerformed editMatchDialog.setVisible(false); editMatchDialog.dispose(); }//GEN-LAST:event_CancelAddDialogButton1ActionPerformed //radio button in rankings tab for viewing just this competition private void ThisCompRadioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ThisCompRadioActionPerformed //make sure only one to the radio buttons is selected if (ThisCompRadio.isSelected()) { SeasonRadio.setSelected(false); } else { SeasonRadio.setSelected(true); } //set the selection variable (used to update the rank tab) compSelection = "current"; updateTabs(); }//GEN-LAST:event_ThisCompRadioActionPerformed //radio button in rankings tab for viewing the whole season private void SeasonRadioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SeasonRadioActionPerformed //make sure only one to the radio buttons is selected if (SeasonRadio.isSelected()) { ThisCompRadio.setSelected(false); } else { ThisCompRadio.setSelected(true); } //set the selection variable (used to update the rank tab) compSelection = "all"; updateTabs(); }//GEN-LAST:event_SeasonRadioActionPerformed // a button that takes you to the team's page when they are selected on the ranking table //Double clicking also does this private void GoToTeamPageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_GoToTeamPageActionPerformed String teamID = (String) RankTable.getValueAt(RankTable.getSelectedRow(), 1); Tabs.setSelectedIndex(0); viewTeamStats(teamID); }//GEN-LAST:event_GoToTeamPageActionPerformed //initialize data and variables when first opening application private void initData() { season = new Season(); currentComp = new Competition(season.getNextCompID()); currentComp.setCompName("South SR Bluford"); season.addCompetition(currentComp); compSelection = "current"; teamListData = new String[10][2]; teamMatchesData = new String[10][8]; rankingsData = new String[10][9]; matchesData = new String[10][11]; //Import the match data from the match spreadsheet importMatches(); } //Adds a team to the specified competition and season (For use with the add team dialog) private void addTeam(String num, String name, int compID) { //Create temporary data arrays and initialize variables ArrayList<Team> tempTeams = season.getTeams(); ArrayList<Competition> tempComps = season.getCompetitions(); Team newTeam = null; //Catch team number format errors try { newTeam = new Team(Integer.parseInt(num), name); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Team number must be a number!"); } //add a team to the team list tempTeams.add(newTeam); //find the desired competition in the unsorted list int currentCompSpot = 0; for (int i = 0; i < tempComps.size(); i++) { if (tempComps.get(i).getCompetitionID() == compID) { currentCompSpot = i; } } //update the team list for that competition Competition tempComp = tempComps.get(currentCompSpot); tempComp.addTeam(newTeam); season.addTeam(newTeam); tempComps.set(currentCompSpot, tempComp); //update gui updateTeamTab(); } //Called to display the team info on the team page private void viewTeamStats(Object teamNum) { if (teamNum != null) { //save the info of the currently displayed team saveCurrentTeamStats(); //update match info to make sure the user sees the correct info updateTeamMatches(); //Try-Catch not needed, team num not a number already caught Team selectedTeam = season.getTeam((int) Integer.parseInt((String) teamNum)); //get the scouting data for the team to be displayed ArrayList<String> labels = selectedTeam.getLabels(); ArrayList<String> sliderLabels = selectedTeam.getSliderLabels(); Boolean[] scouting = selectedTeam.getScouting(); Integer[] sliders = selectedTeam.getSliders(); //Set the text-based basic team info data teamNumLabel.setText(selectedTeam.getTeamID() + ""); teamNameLabel.setText(selectedTeam.getTeamName() + ""); teamNumField.setText(selectedTeam.getTeamID() + ""); teamNameField.setText(selectedTeam.getTeamName() + ""); teamLocationField.setText(selectedTeam.getLocation() + ""); //Set the checkbox scouting data autoBeaconBox.setSelected(scouting[labels.indexOf("autoBeaconBox")]); autoClimbersBox.setSelected(scouting[labels.indexOf("autoClimbersBox")]); autoHighZoneBox.setSelected(scouting[labels.indexOf("autoHighZoneBox")]); autoLowZoneBox.setSelected(scouting[labels.indexOf("autoLowZoneBox")]); autoMidZoneBox.setSelected(scouting[labels.indexOf("autoMidZoneBox")]); autoNoneBox.setSelected(scouting[labels.indexOf("autoNoneBox")]); autoPartlyBox.setSelected(scouting[labels.indexOf("autoPartlyBox")]); debrisFloorBox.setSelected(scouting[labels.indexOf("debrisFloorBox")]); debrisHighBox.setSelected(scouting[labels.indexOf("debrisHighBox")]); debrisLowBox.setSelected(scouting[labels.indexOf("debrisLowBox")]); debrisMidBox.setSelected(scouting[labels.indexOf("debrisMidBox")]); midZoneBox.setSelected(scouting[labels.indexOf("midZoneBox")]); highZoneBox.setSelected(scouting[labels.indexOf("highZoneBox")]); lowZoneBox.setSelected(scouting[labels.indexOf("lowZoneBox")]); hangBox.setSelected(scouting[labels.indexOf("hangBox")]); noneEndgameBox.setSelected(scouting[labels.indexOf("noneEndgameBox")]); //set the slider and text feld scouting data debrisLevelSlider.setValue(sliders[sliderLabels.indexOf("debrisLevelSlider")]); climbLevelSlider.setValue(sliders[sliderLabels.indexOf("climbLevelSlider")]); hangLevelSlider.setValue(sliders[sliderLabels.indexOf("hangLevelSlider")]); baseTypeField.setText(selectedTeam.getBaseType()); robotDesignField.setText(selectedTeam.getDesignComments()); teamAdjectiveField.setText(selectedTeam.getAdjective()); //update the team Match list table ArrayList<Match> teamMatches = selectedTeam.getMatches(); teamMatchesData = new String[teamMatches.size()][8]; if (teamMatches.size() > 0) { //display each row (one per match) for (int i = 0; i < teamMatches.size(); i++) { teamMatchesData[i][0] = teamMatches.get(i).getMatchNum() + ""; teamMatchesData[i][1] = teamMatches.get(i).getCompetitionID() + ""; teamMatchesData[i][2] = teamMatches.get(i).getBlue1ID() + ""; teamMatchesData[i][3] = teamMatches.get(i).getBlue2ID() + ""; teamMatchesData[i][4] = teamMatches.get(i).getBlueTotalScore() + ""; teamMatchesData[i][5] = teamMatches.get(i).getRed1ID() + ""; teamMatchesData[i][6] = teamMatches.get(i).getRed2ID() + ""; teamMatchesData[i][7] = teamMatches.get(i).getRedTotalScore() + ""; } teamMatchesTable.setModel(new TeamMatchesTableModel(teamMatchesData)); } } else { //prevent from trying to view data if there is none to view JOptionPane.showMessageDialog(this, "No Data to View!"); } } //Save the scouting form info for the currently displaed team private void saveCurrentTeamStats() { //check if there even is a team currently displayed if (!teamNumLabel.getText().equals("####")) { //initialize data lists Team currentTeam = season.getTeam((int) Integer.parseInt(teamNumLabel.getText())); ArrayList<String> labels = currentTeam.getLabels(); ArrayList<String> sliderLabels = currentTeam.getSliderLabels(); Boolean[] scouting = currentTeam.getScouting(); Integer[] sliders = currentTeam.getSliders(); //set the team values based on whats in the fields //checkbox values scouting[labels.indexOf("autoBeaconBox")] = autoBeaconBox.isSelected(); scouting[labels.indexOf("autoClimbersBox")] = autoClimbersBox.isSelected(); scouting[labels.indexOf("autoHighZoneBox")] = autoHighZoneBox.isSelected(); scouting[labels.indexOf("autoLowZoneBox")] = autoLowZoneBox.isSelected(); scouting[labels.indexOf("autoMidZoneBox")] = autoMidZoneBox.isSelected(); scouting[labels.indexOf("autoNoneBox")] = autoNoneBox.isSelected(); scouting[labels.indexOf("autoPartlyBox")] = autoPartlyBox.isSelected(); scouting[labels.indexOf("debrisFloorBox")] = debrisFloorBox.isSelected(); scouting[labels.indexOf("debrisHighBox")] = debrisHighBox.isSelected(); scouting[labels.indexOf("debrisLowBox")] = debrisLowBox.isSelected(); scouting[labels.indexOf("debrisMidBox")] = debrisMidBox.isSelected(); scouting[labels.indexOf("midZoneBox")] = midZoneBox.isSelected(); scouting[labels.indexOf("highZoneBox")] = highZoneBox.isSelected(); scouting[labels.indexOf("lowZoneBox")] = lowZoneBox.isSelected(); scouting[labels.indexOf("hangBox")] = hangBox.isSelected(); scouting[labels.indexOf("noneEndgameBox")] = noneEndgameBox.isSelected(); //slider and text feld values sliders[sliderLabels.indexOf("debrisLevelSlider")] = debrisLevelSlider.getValue(); sliders[sliderLabels.indexOf("climbLevelSlider")] = climbLevelSlider.getValue(); sliders[sliderLabels.indexOf("hangLevelSlider")] = hangLevelSlider.getValue(); currentTeam.setBaseType(baseTypeField.getText()); currentTeam.setDesignComments(robotDesignField.getText()); currentTeam.setAdjective(teamAdjectiveField.getText()); } } //import matches from a spreadsheet private void importMatches() { //Read the file and open it as an Excel workbook with the Apache POI libraries File myFile = new File("src/scoutapp/Data/SR_South_Bluford.xlsx"); InputStream inp = null; try { inp = new FileInputStream(myFile); } catch (FileNotFoundException ex) { Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); } XSSFWorkbook wb = null; try { wb = new XSSFWorkbook(inp); } catch (IOException ex) { Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); } //Access the match result sheet Sheet matchList = wb.getSheetAt(0); Row matchNumRow = matchList.getRow(0); Cell amount = matchNumRow.getCell(0); //get the number of matches Double matchNum = amount.getNumericCellValue(); //import each match and add it to the season System.out.println("Importing Matches..."); for (int i = 2; i < matchNum + 2; i++) { //get the teams and score data Row row = matchList.getRow(i); Cell red1 = row.getCell(1); int red1Name = (int) Integer.parseInt(String.valueOf((int) red1.getNumericCellValue())); Cell red2 = row.getCell(2); int red2Name = (int) Integer.parseInt(String.valueOf((int) red2.getNumericCellValue())); Cell blue1 = row.getCell(3); int blue1Name = (int) Integer.parseInt(String.valueOf((int) blue1.getNumericCellValue())); Cell blue2 = row.getCell(4); int blue2Name = (int) Integer.parseInt(String.valueOf((int) blue2.getNumericCellValue())); Cell redScore = row.getCell(5); int rScore = (int) redScore.getNumericCellValue(); Cell blueScore = row.getCell(6); int bScore = (int) blueScore.getNumericCellValue(); Match match = new Match(currentComp.getCompetitionID(), i - 1, red1Name, red2Name, blue1Name, blue2Name, rScore, bScore, "", ""); season.addMatch(match); } try { inp.close(); } catch (IOException ex) { Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); } } //View info for a match (Sets the values for the detail view below match list) //Accessed by the mouse click listener private void viewMatchStats(Object matchNum, Object compName) { //get the desired competition Competition tempComp = season.getCompByName((String) compName); if (tempComp != null) { //set the fields for the selected match Match tempMatch = tempComp.getMatchByNum((int) Integer.parseInt((String) matchNum)); if (tempMatch != null) { Blue1Label.setText(tempMatch.getBlue1ID() + ""); Blue2Label.setText(tempMatch.getBlue2ID() + ""); BlueCommentsField.setText(tempMatch.getBlueComments()); BlueScoreLabel.setText(tempMatch.getBlueTotalScore() + ""); Red1Label.setText(tempMatch.getRed1ID() + ""); Red2Label.setText(tempMatch.getRed2ID() + ""); RedCommentsField.setText(tempMatch.getRedComments()); RedScoreLabel.setText(tempMatch.getRedTotalScore() + ""); MatchNumLabel.setText(tempMatch.getMatchNum() + ""); CompetitionLabel.setText(season.getCompByID(tempMatch.getMatchCompetitionID()).getCompName()); DateLabel.setText(season.getCompByID(tempMatch.getMatchCompetitionID()).getCompDate()); } } } //When the edit match window is opened (Match is double clicked) open the edit window and populate the fields witht he current data private void editMatch(Object matchNum, Object compID) { Competition tempComp = season.getCompByName((String) compID); currentMatch = tempComp.getMatchByNum((int) Integer.parseInt((String) matchNum)); Blue1Field1.setText(currentMatch.getBlue1ID() + ""); Blue2Field1.setText(currentMatch.getBlue2ID() + ""); Red1Field1.setText(currentMatch.getRed1ID() + ""); Red2Field1.setText(currentMatch.getRed2ID() + ""); BlueScoreField1.setText(currentMatch.getBlueTotalScore() + ""); RedScoreField1.setText(currentMatch.getRedTotalScore() + ""); BlueComments1.setText(currentMatch.getBlueComments()); RedComments1.setText(currentMatch.getRedComments()); editMatchDialog.setVisible(true); } //checks the radio buttons on the rank tab for viewing just the current competition or the whole season private boolean isCurrentCompSelected() { if (compSelection.equals("current")) { return true; } return false; } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(MainWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(MainWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(MainWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(MainWindow.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MainWindow().setVisible(true); } }); } //make sure the season has all the teams it needs to (the ones that are in matches) private void checkTeams() { ArrayList<Competition> tempComps = season.getCompetitions(); ArrayList<Integer> compTeams = new ArrayList<Integer>(); for (Competition comp : tempComps) { compTeams = comp.getTeamIDs(); for (Integer team : compTeams) { if (!season.hasTeam(team)) { season.addTeam(new Team(team)); } } } } //update the data displayed in the tabs private void updateTabs() { //peform data updates based on what tab is selected switch (Tabs.getSelectedIndex()) { //Team Tab accessed case 0: updateTeamTab(); break; //Match Tab Accessed case 1: updateMatchTab(); break; //Rankings tab accessed case 2: updateRankTab(); break; //There isn't any other option but heres a default anyways default: break; } } //Update the data on for the team tab //Called whenever the team tab is selected or the team list is changed private void updateTeamTab() { updateTeamMatches(); //update the list of teams in the season (left side of window) ArrayList<Team> tempTeams = season.getTeams(); teamListData = new String[tempTeams.size()][2]; for (int i = 0; i < tempTeams.size(); i++) { teamListData[i][0] = tempTeams.get(i).getTeamID() + ""; teamListData[i][1] = tempTeams.get(i).getTeamName(); } TeamTable.setModel(new TeamListTableModel(teamListData)); } //Update the matches tab //Called whenever the Matches tab is selected or the match list is changed private void updateMatchTab() { //make sure all the matches are correctly assigned to teams updateTeamMatches(); //set the data in the match table ArrayList<Match> tempMatches = currentComp.getMatches(); matchesData = new String[tempMatches.size()][11]; //add data for each row (one row per match) for (int i = 0; i < tempMatches.size(); i++) { matchesData[i][0] = tempMatches.get(i).getMatchNum() + ""; matchesData[i][1] = season.getCompByID(tempMatches.get(i).getMatchCompetitionID()).getCompName() + ""; matchesData[i][2] = season.getCompByID(tempMatches.get(i).getMatchCompetitionID()).getCompDate() + ""; matchesData[i][3] = tempMatches.get(i).getBlue1ID() + ""; matchesData[i][4] = tempMatches.get(i).getBlue2ID() + ""; matchesData[i][5] = "-"; matchesData[i][6] = tempMatches.get(i).getBlueTotalScore() + ""; matchesData[i][7] = tempMatches.get(i).getRed1ID() + ""; matchesData[i][8] = tempMatches.get(i).getRed2ID() + ""; matchesData[i][9] = "-"; matchesData[i][10] = tempMatches.get(i).getRedTotalScore() + ""; } MatchTable.setModel(new MatchTableModel(matchesData)); } //update the rankings tab with ranking data private void updateRankTab() { //make sure all the matches are correctly assigned to teams updateTeamMatches(); //initialize temporary data lists ArrayList<Team> tempTeams = season.getTeams(); TreeMap teamMMRs = new TreeMap<Integer, Integer>(); ArrayList<Integer> rankTeams = new ArrayList<Integer>(); ArrayList<Integer> rankMMRs = new ArrayList<Integer>(); //add the teams and thier mmr to a tree map for (Team t : tempTeams) { //System.out.println("Team 1st Access"); if (isCurrentCompSelected()) { teamMMRs.put(t.getTeamID(), t.getMMRAtCompetition(currentComp.getCompetitionID())); } else { teamMMRs.put(t.getTeamID(), t.getMMR()); } //System.out.println("Team MMR Got"); } //sort the teams by MMR int highestMMR = Integer.MIN_VALUE; int highestTeam = 0000; //while teams left in the staging tree map while (!teamMMRs.isEmpty()) { Iterator teamItr = teamMMRs.keySet().iterator(); //find the highest while (teamItr.hasNext()) { Integer team = (Integer) teamItr.next(); Integer mmr = (Integer) teamMMRs.get(team); if (mmr > highestMMR) { highestTeam = team; highestMMR = mmr; //System.out.println("Highest MMR Team Found"); } } //Add the highest team's number to a sorted list and remove them from the staging tree map and prepare to start again //System.out.println("Removing team and starting over"); rankTeams.add(highestTeam); rankMMRs.add(highestMMR); teamMMRs.remove(highestTeam); highestMMR = Integer.MIN_VALUE; highestTeam = 0000; } //System.out.println("All teams ranked"); //Set the data in the rankings table (one row per team) rankingsData = new String[rankTeams.size()][9]; for (int i = 0; i < rankTeams.size(); i++) { rankingsData[i][0] = i + 1 + ""; rankingsData[i][1] = rankTeams.get(i) + ""; rankingsData[i][2] = rankMMRs.get(i) + ""; rankingsData[i][3] = season.getTeam(rankTeams.get(i)).getAvgScoreAtCompetition(i) + ""; //data depending on the radio button selected (Current comp only or whole season) if (isCurrentCompSelected()) { rankingsData[i][3] = season.getTeam(rankTeams.get(i)) .getAvgScoreAtCompetition(currentComp.getCompetitionID()) + ""; rankingsData[i][4] = season.getTeam(rankTeams.get(i)) .getPredictedScoreRangeAtCompetition(currentComp.getCompetitionID()) + ""; rankingsData[i][5] = season.getTeam(rankTeams.get(i)) .getConsistencyAtCompetition(currentComp.getCompetitionID()) + ""; rankingsData[i][6] = season.getTeam(rankTeams.get(i)) .getAvgPartnerMMRAtCompetition(currentComp.getCompetitionID()) + ""; rankingsData[i][7] = season.getTeam(rankTeams.get(i)) .getQPAtCompetition(currentComp.getCompetitionID()) + ""; rankingsData[i][8] = season.getTeam(rankTeams.get(i)) .getRPAtCompetition(currentComp.getCompetitionID()) + ""; } else { rankingsData[i][3] = season.getTeam(rankTeams.get(i)).getAvgScore() + ""; rankingsData[i][4] = season.getTeam(rankTeams.get(i)).getPredictedScoreRange() + ""; rankingsData[i][5] = season.getTeam(rankTeams.get(i)).getConsistency() + ""; rankingsData[i][6] = season.getTeam(rankTeams.get(i)).getAvgPartnerMMR() + ""; rankingsData[i][7] = season.getTeam(rankTeams.get(i)).getQP() + ""; rankingsData[i][8] = season.getTeam(rankTeams.get(i)).getRP() + ""; } } RankTable.setModel(new RankingsTableModel(rankingsData)); } //Loops through all the teams and makes sure that they have matches //assigned to them that they were in private void updateTeamMatches() { //make sure all the teams exist checkTeams(); //temporary data list initialization ArrayList<Team> tempTeams = season.getTeams(); //for each team, look through each match, and if it they are in it, make sure they have it in their list for (int i = 0; i < tempTeams.size(); i++) { ArrayList<Competition> tempComps = season.getCompetitions(); ArrayList<Integer> tempIDs = new ArrayList<Integer>(); ArrayList<Match> tempMatches = new ArrayList<Match>(); Team tempTeam = tempTeams.get(i); ArrayList<Match> teamMatches = tempTeam.getMatches(); //for each competition for (Competition comp : tempComps) { tempIDs = comp.getTeamIDs(); //First see if the team in question is even in that competition for (Integer id : tempIDs) { if (id == tempTeams.get(i).getTeamID()) { tempMatches = comp.getMatches(); //if they are, loom through each match for (Match tempMatch : tempMatches) { //if they are in the match if (tempMatch.contains(tempTeams.get(i).getTeamID())) { //make sure the team has that match if (!teamMatches.contains(tempMatch)) { tempTeam.addMatch(tempMatch); } tempTeams.set(i, tempTeam); } } } } } } //put the updated team list abck into the season season.setTeams(tempTeams); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField Blue1Field; private javax.swing.JTextField Blue1Field1; private javax.swing.JLabel Blue1Label; private javax.swing.JTextField Blue2Field; private javax.swing.JTextField Blue2Field1; private javax.swing.JLabel Blue2Label; private javax.swing.JTextArea BlueComments; private javax.swing.JTextArea BlueComments1; private javax.swing.JTextArea BlueCommentsField; private javax.swing.JTextField BluePenaltiesField; private javax.swing.JTextField BluePenaltiesField1; private javax.swing.JTextField BlueScoreField; private javax.swing.JTextField BlueScoreField1; private javax.swing.JLabel BlueScoreLabel; private javax.swing.JButton CancelAddDialogButton; private javax.swing.JButton CancelAddDialogButton1; private javax.swing.JScrollPane CommentsField; private javax.swing.JLabel CompetitionLabel; private javax.swing.JButton ConfirmAddDialogButton; private javax.swing.JButton ConfirmAddDialogButton1; private javax.swing.JLabel DateLabel; private javax.swing.JButton GoToTeamPage; private javax.swing.JLabel MatchNumLabel; private javax.swing.JTable MatchTable; private javax.swing.JPanel Match_Tab; private javax.swing.JTable RankTable; private javax.swing.JPanel Rank_Tab; private javax.swing.JTextField Red1Field; private javax.swing.JTextField Red1Field1; private javax.swing.JLabel Red1Label; private javax.swing.JTextField Red2Field; private javax.swing.JTextField Red2Field1; private javax.swing.JLabel Red2Label; private javax.swing.JTextArea RedComments; private javax.swing.JTextArea RedComments1; private javax.swing.JTextArea RedCommentsField; private javax.swing.JTextField RedPenaltiesField; private javax.swing.JTextField RedPenaltiesField1; private javax.swing.JTextField RedScoreField; private javax.swing.JTextField RedScoreField1; private javax.swing.JLabel RedScoreLabel; private javax.swing.JRadioButton SeasonRadio; private javax.swing.JTabbedPane Tabs; private javax.swing.JTable TeamTable; private javax.swing.JPanel Team_Tab; private javax.swing.JRadioButton ThisCompRadio; private javax.swing.JButton addDialog_addButton; private javax.swing.JButton addDialog_cancelButton; private javax.swing.JTextField addDialog_teamNameField; private javax.swing.JTextField addDialog_teamNumField; private javax.swing.JDialog addMatchDialog; private javax.swing.JButton addTeamButton; private javax.swing.JDialog addTeamDialog; private javax.swing.JCheckBox autoBeaconBox; private javax.swing.JCheckBox autoClimbersBox; private javax.swing.JCheckBox autoHighZoneBox; private javax.swing.JCheckBox autoLowZoneBox; private javax.swing.JCheckBox autoMidZoneBox; private javax.swing.JCheckBox autoNoneBox; private javax.swing.JCheckBox autoPartlyBox; private javax.swing.JTextField baseTypeField; private javax.swing.JSlider climbLevelSlider; private javax.swing.JMenuItem compCurrentReplaceOption; private javax.swing.JMenuItem compCurrentSelectOption; private javax.swing.JMenuItem compExportOption; private javax.swing.JMenuItem compImportOption; private javax.swing.JMenu compMenu; private javax.swing.JMenu currentCompMenu; private javax.swing.JMenuItem dataExportMatchesOption; private javax.swing.JMenuItem dataExportRankingsOption; private javax.swing.JMenuItem dataExportTeamsOption; private javax.swing.JMenuItem dataImportMatchesOption; private javax.swing.JMenuItem dataImportTeamsOption; private javax.swing.JMenu dataMenu; private javax.swing.JCheckBox debrisFloorBox; private javax.swing.JCheckBox debrisHighBox; private javax.swing.JSlider debrisLevelSlider; private javax.swing.JCheckBox debrisLowBox; private javax.swing.JCheckBox debrisMidBox; private javax.swing.JDialog editMatchDialog; private javax.swing.JCheckBox hangBox; private javax.swing.JSlider hangLevelSlider; private javax.swing.JCheckBox highZoneBox; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel22; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel26; private javax.swing.JLabel jLabel27; private javax.swing.JLabel jLabel28; private javax.swing.JLabel jLabel29; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel30; private javax.swing.JLabel jLabel31; private javax.swing.JLabel jLabel32; private javax.swing.JLabel jLabel33; private javax.swing.JLabel jLabel34; private javax.swing.JLabel jLabel35; private javax.swing.JLabel jLabel36; private javax.swing.JLabel jLabel37; private javax.swing.JLabel jLabel38; private javax.swing.JLabel jLabel39; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel40; private javax.swing.JLabel jLabel41; private javax.swing.JLabel jLabel42; private javax.swing.JLabel jLabel43; private javax.swing.JLabel jLabel44; private javax.swing.JLabel jLabel45; private javax.swing.JLabel jLabel46; private javax.swing.JLabel jLabel47; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane10; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JScrollPane jScrollPane5; private javax.swing.JScrollPane jScrollPane6; private javax.swing.JScrollPane jScrollPane7; private javax.swing.JScrollPane jScrollPane8; private javax.swing.JScrollPane jScrollPane9; private javax.swing.JCheckBox lowZoneBox; private javax.swing.JCheckBox midZoneBox; private javax.swing.JCheckBox noneEndgameBox; private javax.swing.JRadioButton notPushbotRadio; private javax.swing.JRadioButton pushbotRadio; private javax.swing.JButton removeTeamButton; private javax.swing.JTextArea robotDesignField; private javax.swing.JMenuItem seasonCloseOption; private javax.swing.JMenu seasonMenu; private javax.swing.JMenuItem seasonOpenOption; private javax.swing.JMenuItem seasonSaveAsOption; private javax.swing.JMenuItem seasonSaveOption; private javax.swing.JTextField teamAdjectiveField; private javax.swing.JTextField teamLocationField; private javax.swing.JTable teamMatchesTable; private javax.swing.JTextField teamNameField; private javax.swing.JLabel teamNameLabel; private javax.swing.JTextField teamNumField; private javax.swing.JLabel teamNumLabel; private javax.swing.JMenuBar topMenuBar; // End of variables declaration//GEN-END:variables }