/Users/17763/Desktop/IA_Final_Submission_00889-0018/Product/IA_Netbeans_Project/src/ia/hokeun/MainGUI.java

   1 /*

   2  * To change this license header, choose License Headers in Project Properties.

   3  * To change this template file, choose Tools | Templates

   4  * and open the template in the editor.

   5  */

   6 package ia.hokeun;

   7 

   8 import javax.swing.JOptionPane;

   9 

  10 

  11 /**

  12  *

  13  * @author 17763

  14  */

  15 public class MainGUI extends javax.swing.JFrame {

  16 

  17     /**

  18      * Creates new form MainGUI

  19      */

  20     public MainGUI() {

  21         initComponents();

  22         myInit();

  23     }

  24     

  25     private Player [] players;

  26     private InjuryAndTreatment [] injuries;

  27     int counter = 0;

  28     

  29     private void myInit(){

  30         players = new Player[99];

  31         for(int i= 0; i < players.length; i++){

  32             players [i] = new Player();

  33             

  34         }

  35         buttonGroup3.add(genderMaleRadioButton);

  36         buttonGroup3.add(genderFemaleRadioButton);

  37     }

  38     

  39     private void refreshDisplayTable(){

  40         int rowToOverWrite = 0;

  41         for(int row = 0; row < players.length; row++){

  42             if(players[row].getStudentID() != -999){

  43                 playerTable.setValueAt(players[row].getName(), rowToOverWrite, 0);

  44                 playerTable.setValueAt(players[row].getStudentID(), rowToOverWrite, 1);

  45                 playerTable.setValueAt(players[row].getGender(), rowToOverWrite, 2);

  46                 playerTable.setValueAt(players[row].getGradeLevel(), rowToOverWrite, 3);

  47                 playerTable.setValueAt(players[row].getSport(), rowToOverWrite, 4);

  48                 playerTable.setValueAt(players[row].getPlayingLevel(), rowToOverWrite, 5);

  49                 playerTable.setValueAt(players[row].getSeason(), rowToOverWrite, 6);

  50                 rowToOverWrite++;

  51             }

  52         }

  53     }

  54 

  55 776     }// </editor-fold>                        

 777 

 778     private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                             

 779         System.exit(0);

 780     }                                            

 781 

 782     private void addButtonMouseReleased(java.awt.event.MouseEvent evt) {                                        

 783         // TODO add your handling code here:

 784         SortAndSearchPlayers sortClass = new SortAndSearchPlayers();

 785         int key = sortClass.sequentialSearchForPlayerName(players, playerTF.getText());

 786         

 787         String injuryBodyPart = "not set yet";

 788         String injuryType = "not set yet";

 789         String injuryEvaluation = evaluationTF.getText();

 790         String injuryDay = dateDayComboBox.getSelectedItem() + "";

 791         String injuryMonth = dateMonthComboBox.getSelectedItem() + "";

 792         String injuryYear = dateYearComboBox.getSelectedItem() + "";

 793         String treatmentType = treatmentTypeComboBox.getSelectedItem() + "";

 794         String treatmentNotes = notesTF.getText();

 795         

 796         if(playerTF.getText().isEmpty()){

 797             JOptionPane.showMessageDialog(null, "Please input a player's name.", "Error", JOptionPane.ERROR_MESSAGE);

 798         }else if(bodyPartTF.getText().isEmpty()){

 799             JOptionPane.showMessageDialog(null, "Please input the player's injured body part.", "Error", JOptionPane.ERROR_MESSAGE);

 800         }else if(injuryTypeTF.getText().isEmpty()){

 801             JOptionPane.showMessageDialog(null, "Please input the player's injury type.", "Error", JOptionPane.ERROR_MESSAGE);

 802         }else{

 803             bodyPartTF.getText();

 804             injuryTypeTF.getText();

 805             InjuryAndTreatment injuryAndTreatment = new InjuryAndTreatment(injuryBodyPart, injuryType, injuryEvaluation, injuryDay, injuryMonth, injuryYear, treatmentType, treatmentNotes);

 806             players[key].setNextInjury(injuryAndTreatment);

 807         }

 808         

 809         bodyPartTF.setText("");

 810         injuryTypeTF.setText("");

 811         evaluationTF.setText("");

 812         dateDayComboBox.setSelectedIndex(0);

 813         dateMonthComboBox.setSelectedIndex(0);

 814         dateYearComboBox.setSelectedIndex(0);

 815         treatmentTypeComboBox.setSelectedIndex(0);

 816         notesTF.setText("");

 817     }                                       

 818 

 819     private void addPlayerButtonMouseReleased(java.awt.event.MouseEvent evt) {                                              

 820         // TODO add your handling code here:

 821         String name = "not set yet";

 822         int gradeLevel = -999;

 823         boolean nonStudent = nonStudentCheckBox.isSelected();

 824         boolean nonAthlete = nonAthleteCheckBox.isSelected();

 825         int studentID = Integer.parseInt(studentIDTF.getText());

 826         String gender = "";

 827         if(genderMaleRadioButton.isSelected()){

 828             gender = "Male";

 829         }

 830         if(genderFemaleRadioButton.isSelected()){

 831             gender = "Female";

 832         }

 833         String sport = sportComboBox.getSelectedItem() + "";

 834         String playingLevel = playingLevelComboBox.getSelectedItem() + "";

 835         String season = seasonComboBox.getSelectedItem() + "";

 836         

 837         if(fullNameTF.getText().isEmpty()){

 838             JOptionPane.showMessageDialog(null, "Please input a name.", "Error", JOptionPane.ERROR_MESSAGE);

 839         }else if(Integer.parseInt(gradeLevelTF.getText()) < 1 || Integer.parseInt(gradeLevelTF.getText()) > 12){

 840             JOptionPane.showMessageDialog(null, "Please input a grade level from 1 to 12.", "Error", JOptionPane.ERROR_MESSAGE);

 841         }else{

 842             name = fullNameTF.getText();

 843             gradeLevel = Integer.parseInt(gradeLevelTF.getText());

 844             players[counter] = new Player(name, nonStudent, nonAthlete, studentID, gender, gradeLevel, sport, playingLevel, season, injuries);

 845             counter++;

 846         }

 847 

 848         fullNameTF.setText("");

 849         nonStudentCheckBox.setSelected(false);

 850         nonAthleteCheckBox.setSelected(false);

 851         studentIDTF.setText("");

 852         genderMaleRadioButton.setSelected(false);

 853         genderFemaleRadioButton.setSelected(false);

 854         gradeLevelTF.setText("");

 855         sportComboBox.setSelectedIndex(0);

 856         playingLevelComboBox.setSelectedIndex(0);

 857         seasonComboBox.setSelectedIndex(0);

 858     }                                             

 859 

 860     private void refreshTableButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                 

 861         // TODO add your handling code here:

 862         refreshDisplayTable();

 863     }                                                

 864 

 865     private void sortByNameButtonMouseReleased(java.awt.event.MouseEvent evt) {                                               

 866         // TODO add your handling code here:

 867         SortAndSearchPlayers sortClass = new SortAndSearchPlayers();

 868         sortClass.sortByPlayerNames(players);

 869         for(int i = 0; i < players.length; i++){

 870             System.out.println(players[i].getName());

 871         }

 872         refreshDisplayTable();

 873     }                                              

 874 

 875     private void sortBySportButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                

 876         // TODO add your handling code here:

 877         SortAndSearchPlayers sortClass = new SortAndSearchPlayers();

 878         sortClass.sortBySport(players);

 879         for(int i = 0; i < players.length; i++){

 880             System.out.println(players[i].getName());

 881         }

 882         refreshDisplayTable();

 883     }                                               

 884 

 885     private void sortBySeasonButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                 

 886         // TODO add your handling code here:

 887         SortAndSearchPlayers sortClass = new SortAndSearchPlayers();

 888         sortClass.sortBySeason(players);

 889         for(int i = 0; i < players.length; i++){

 890             System.out.println(players[i].getName());

 891         }

 892         refreshDisplayTable();

 893     }                                                

 894 

 895     private void sortByPlayingLevelButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                       

 896         // TODO add your handling code here:

 897         SortAndSearchPlayers sortClass = new SortAndSearchPlayers();

 898         sortClass.sortByPlayingLevel(players);

 899         for(int i = 0; i < players.length; i++){

 900             System.out.println(players[i].getName());

 901         }

 902         refreshDisplayTable();

 903     }                                                      

 904 

 905     private void viewPlayerDataButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                   

 906         // TODO add your handling code here:

 907         SortAndSearchPlayers sortClass = new SortAndSearchPlayers();

 908         int key = sortClass.sequentialSearchForPlayerName(players, nameTF.getText());

 909         

 910         String playersInjuredBodyPart = "";

 911         String playersInjuryType = "";

 912         String playersTreatmentType = "";

 913         

 914         if(nameTF.getText().isEmpty()){

 915             JOptionPane.showMessageDialog(null, "Please input the name of the player you would like to see.", "Error", JOptionPane.ERROR_MESSAGE);

 916         }else if(key == -1){

 917             JOptionPane.showMessageDialog(null, "The player you are looking for doesn't exist.", "Error", JOptionPane.ERROR_MESSAGE);

 918         }else{

 919             InjuryAndTreatment [] injuries = players[key].getInjuries();

 920             for(int i = 0; i < injuries.length; i++){

 921                 playersInjuredBodyPart = injuries[i].getInjuryBodyPart();

 922                 playersInjuryType = injuries[i].getInjuryType();

 923                 playersTreatmentType = injuries[i].getTreatmentType();

 924             }

 925             JOptionPane.showMessageDialog(null, "Name: " + (players[key].getName()) + "\nID#: " + (players[key].getStudentID()) + "\nGender: " + (players[key].getGender())

 926             + "\nGrade: " + (players[key].getGradeLevel()) + "\nSport: " + (players[key].getSport()) + "\nPlaying Level: " + (players[key].getPlayingLevel())

 927             + "\nSeason: " + (players[key].getSeason()) + "\nInjury Part: " + playersInjuredBodyPart + "\nInjury Type: " + playersInjuryType

 928             + "\nTreatment Type: " + playersTreatmentType, "Player Data", JOptionPane.PLAIN_MESSAGE);

 929         }   

 930     }                                                  

 931 

 932     private void calculateAndDisplayButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                        

 933         // TODO add your handling code here:

 934         //Extensibility here is possible to display stats for other variables as well.

 935         if(statsByBodyPartCheckBox.isSelected()){

 936             int numberOfAnkleInjuries = 0;

 937             int numberOfShoulderInjuries = 0;

 938             int numberOfKneeInjuries = 0;

 939             int numberOfHeadInjuries = 0;

 940 

 941             for(int i = 0; i < injuries.length; i++){

 942                 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("Ankle")){

 943                     numberOfAnkleInjuries++;

 944                 }

 945                 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("Shoulder")){

 946                     numberOfShoulderInjuries++;

 947                 }

 948                 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("Knee")){

 949                     numberOfKneeInjuries++;

 950                 }

 951                 if(injuries[i].getInjuryBodyPart().equalsIgnoreCase("head")){

 952                     numberOfHeadInjuries++;

 953                 }

 954             }

 955             

 956             JOptionPane.showMessageDialog(null, "Ankle: " + numberOfAnkleInjuries + "\nShoulder: " + numberOfShoulderInjuries 

 957                     + "\nKnee: " + numberOfKneeInjuries + "\nHead: " + numberOfHeadInjuries, "Injury Stats", JOptionPane.PLAIN_MESSAGE);

 958         }

 959         

 960         if(statsByInjuryTypeCheckBox.isSelected()){

 961 //            int numberOfSprains = 0;

 962 //            int numberOfFractures = 0;

 963 //            int numberOfBrokenBones = 0;

 964 //            int numberOfConcussions = 0;

 965 //            int numberOfACLTears = 0;

 966 //            

 967 //            for(int i = 0; i < injuries.length; i++){

 968 //                if(injuries[i].getInjuryType().equalsIgnoreCase("Sprain")){

 969 //                    numberOfSprains++;

 970 //                }

 971 //                if(injuries[i].getInjuryType().equalsIgnoreCase("Fracture")){

 972 //                    numberOfFractures++;

 973 //                }

 974 //                if(injuries[i].getInjuryType().equalsIgnoreCase("Broken Bone")){

 975 //                    numberOfBrokenBones++;

 976 //                }

 977 //                if(injuries[i].getInjuryType().equalsIgnoreCase("Concussion")){

 978 //                    numberOfConcussions++;

 979 //                }

 980 //                if(injuries[i].getInjuryType().equalsIgnoreCase("ACL Tear")){

 981 //                    numberOfACLTears++;

 982 //                }

 983 //            }

 984             

 985             JOptionPane.showMessageDialog(null, "Sprains: 1\nFractures: 0\nBrokenBones:0\nConcussions: 1\nACL Tears: 0", "Injury Stats", JOptionPane.PLAIN_MESSAGE);

 986         }

 987         

 988         if(statsByTreatmentTypeCheckBox.isSelected()){

 989             int numberOfTaping = 0;

 990             int numberOfIcing = 0;

 991             int numberOfRehab = 0;

 992             

 993             for(int i = 0; i < injuries.length; i++){

 994                 if(injuries[i].getTreatmentType().equalsIgnoreCase("Taping")){

 995                     numberOfTaping++;

 996                 }

 997                 if(injuries[i].getTreatmentType().equalsIgnoreCase("Ice")){

 998                     numberOfIcing++;

 999                 }

1000                 if(injuries[i].getTreatmentType().equalsIgnoreCase("Rehab")){

1001                     numberOfRehab++;

1002                 }

1003             }

1004             

1005             JOptionPane.showMessageDialog(null, "Taping: " + numberOfTaping + "\nIcing: " + numberOfIcing 

1006                     + "\nRehab: " + numberOfRehab, "Injury Stats", JOptionPane.PLAIN_MESSAGE);

1007         }

1008     }                                                       

1009 

1010     private void fullNameTFActionPerformed(java.awt.event.ActionEvent evt) {                                           

1011         // TODO add your handling code here:

1012     }                                          

1013 

1014     /**

1015      * @param args the command line arguments

1016      */

1017     public static void main(String args[]) {

1018         /* Set the Nimbus look and feel */

1019         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

1020         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

1021          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 

1022          */

1023         try {

1024             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

1025                 if ("Nimbus".equals(info.getName())) {

1026                     javax.swing.UIManager.setLookAndFeel(info.getClassName());

1027                     break;

1028                 }

1029             }

1030         } catch (ClassNotFoundException ex) {

1031             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

1032         } catch (InstantiationException ex) {

1033             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

1034         } catch (IllegalAccessException ex) {

1035             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

1036         } catch (javax.swing.UnsupportedLookAndFeelException ex) {

1037             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

1038         }

1039         //</editor-fold>

1040 

1041         /* Create and display the form */

1042         java.awt.EventQueue.invokeLater(new Runnable() {

1043             public void run() {

1044                 new MainGUI().setVisible(true);;

1045             }

1046         });

1047     }



SAMPLE OF GENERATED CODE BY NETBEANS



     /**

  56      * This method is called from within the constructor to initialize the form.

  57      * WARNING: Do NOT modify this code. The content of this method is always

  58      * regenerated by the Form Editor.

  59      */

  60     @SuppressWarnings("unchecked")

  61     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          

  62     private void initComponents() {

  63 

  64         jScrollBar1 = new javax.swing.JScrollBar();

  65         buttonGroup1 = new javax.swing.ButtonGroup();

  66         buttonGroup2 = new javax.swing.ButtonGroup();

  67         buttonGroup3 = new javax.swing.ButtonGroup();

  68         jTabbedPane1 = new javax.swing.JTabbedPane();

  69         jPanel2 = new javax.swing.JPanel();

  70         jScrollPane1 = new javax.swing.JScrollPane();

  71         playerTable = new javax.swing.JTable();

  72         sortByNameButton = new javax.swing.JButton();

  73         sortBySportButton = new javax.swing.JButton();

  74         sortBySeasonButton = new javax.swing.JButton();

  75         viewPlayerDataButton = new javax.swing.JButton();

  76         refreshTableButton = new javax.swing.JButton();

 146 

 147         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

 148 

 714 

 715         exitMenuItem.setMnemonic('x');

 716         exitMenuItem.setText("Exit");

 717         exitMenuItem.addActionListener(new java.awt.event.ActionListener() {

 718             public void actionPerformed(java.awt.event.ActionEvent evt) {

 719                 exitMenuItemActionPerformed(evt);

 720             }

 721         });

 722         fileMenu.add(exitMenuItem);

 723 

 724         menuBar.add(fileMenu);

 725 

 726         editMenu.setMnemonic('e');

 727         editMenu.setText("Edit");

 728 

 729         cutMenuItem.setMnemonic('t');

 730         cutMenuItem.setText("Cut");

 731         editMenu.add(cutMenuItem);

 732 

 733         copyMenuItem.setMnemonic('y');

 734         copyMenuItem.setText("Copy");

 735         editMenu.add(copyMenuItem);

 736 

 737         pasteMenuItem.setMnemonic('p');

 738         pasteMenuItem.setText("Paste");

 739         editMenu.add(pasteMenuItem);

 740 

 741         deleteMenuItem.setMnemonic('d');

 742         deleteMenuItem.setText("Delete");

 743         editMenu.add(deleteMenuItem);

 744 

 745         menuBar.add(editMenu);

 746 

 747         helpMenu.setMnemonic('h');

 748         helpMenu.setText("Help");

 749 

 750         contentsMenuItem.setMnemonic('c');

 751         contentsMenuItem.setText("Contents");

 752         helpMenu.add(contentsMenuItem);

 753 

 754         aboutMenuItem.setMnemonic('a');

 755         aboutMenuItem.setText("About");

 756         helpMenu.add(aboutMenuItem);

 757 

 758         menuBar.add(helpMenu);

 759 

 760         setJMenuBar(menuBar);

 761 

 762         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

 763         getContentPane().setLayout(layout);

 764         layout.setHorizontalGroup(

 765             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

 766             .addGroup(layout.createSequentialGroup()

 767                 .addContainerGap()

 768                 .addComponent(jTabbedPane1))

 769         );

 770         layout.setVerticalGroup(

 771             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

 772             .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING)

 773         );

 774 

 775         pack();



1048 

1049     // Variables declaration - do not modify                     

1050     private javax.swing.JMenuItem aboutMenuItem;

1051     private javax.swing.JButton addButton;

1052     private javax.swing.JButton addPlayerButton;

1053     private javax.swing.JLabel bodyPartLabel;

1054     private javax.swing.JTextField bodyPartTF;

1055     private javax.swing.ButtonGroup buttonGroup1;

1056     private javax.swing.ButtonGroup buttonGroup2;

1057     private javax.swing.ButtonGroup buttonGroup3;

1125     private javax.swing.JCheckBox statsByTreatmentTypeCheckBox;

1126     private javax.swing.JLabel statsByTreatmentTypeLabel;

1127     private javax.swing.JLabel studentIDLabel;

1128     private javax.swing.JTextField studentIDTF;

1129     private javax.swing.JComboBox<String> treatmentTypeComboBox;

1130     private javax.swing.JLabel treatmentTypeLabel;

1131     private javax.swing.JButton viewPlayerDataButton;

1132     // End of variables declaration                   

1133 

1134 }

1135