/Users/johnr/Dropbox/johnrayworth.info/largeFilesOutsideJSR/__IB-Other/Other/IA-Solutions-2019/Gabriel/Product/Code2/src/code2/MainGUI.java
   1 package code2;
   2 
   3 import java.awt.event.ActionEvent;
   4 import java.util.ArrayList;
   5 /*
   6 # Extensibility/TODO list
   7 + Add file reading/writing capability
   8   + Write to a file when modifictions are made, read from it on startup
   9 + Allow the user to define and edit categories
  10 + Allow a Person to be placed in multiple categories
  11 + Give functionality to the import/export tab
  12 + Replace email and phone arrays in Person template class with an ArrayList of contact information
  13   + View contact information with a table
  14 + Investigate the ability to use Selenium Webdriver to fetch contact information from webmail services
  15   + Add method using Selenium Webdriver to Rickroll the user if the input a person named Rick
  16 + Improve modularity and elegance of the code by making the main class independent of the GUI class
  17 + Improve layout and look/feel
  18 + Switch to the edit person tab when the edit person button is pressed
  19 */
  20 public class MainGUI extends javax.swing.JFrame {
  21 
  22     //Declaration of the array list of class People central to the database 
  23     private ArrayList<Person> peopleArrayList = new ArrayList<Person>();
  24     
  25     /**
  26      * Creates new form MainGUI
  27      */
  28     public MainGUI() {
  29         initComponents();
  30     }
  31     //It breaks if I delete these :c
  32     private void searchTFActionPerformed(java.awt.event.ActionEvent evt){}
  33     private void deleteProfileButtonActionPerformed(java.awt.event.ActionEvent evt){}
  34 
  35     
  36 
  37     @SuppressWarnings("unchecked")
  38     
 939 
 940 
 941     private void enterPersonButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                
 942         //Create new instance of Person 
 943         String [] email = {firstEmailTF.getText(), secondEmailTF.getText(), thirdEmailTF.getText()};
 944         String [] phone = {firstPhoneTF.getText(), secondPhoneTF.getText(), thirdPhoneTF.getText()};
 945         
 946         peopleArrayList.add(new Person(
 947                 nameTF.getText(),
 948                 ageTF.getText(),
 949                 dateCB.getSelectedItem()+"",
 950                 monthCB.getSelectedItem()+"",
 951                 yearCB.getSelectedItem()+"",
 952                 email,
 953                 phone,
 954                 organizationTF.getText(),
 955                 categoryCB.getSelectedItem()+"",
 956                 notesTA.getText(),
 957                 streetTF.getText(),
 958                 stateTF.getText(),
 959                 countryTF.getText(),
 960                 zipTF.getText()
 961         ));
 962         System.out.println("LOG: new instance of Person in peopleArrayList");
 963         
 964         //Clear Text field after pressing enter
 965         nameTF.setText("");
 966         ageTF.setText("");
 967         dateCB.setSelectedIndex(0);
 968         monthCB.setSelectedIndex(0);
 969         yearCB.setSelectedIndex(0);
 970         firstEmailTF.setText("");
 971         secondEmailTF.setText("");
 972         thirdEmailTF.setText("");
 973         firstPhoneTF.setText("");
 974         secondPhoneTF.setText("");
 975         thirdPhoneTF.setText("");
 976         organizationTF.setText("");
 977         streetTF.setText("");
 978         stateTF.setText("");
 979         countryTF.setText("");
 980         zipTF.setText("");
 981         categoryCB.setSelectedIndex(0);
 982         notesTA.setText("");
 983         System.out.println("LOG: cleared text fields");
 984         
 985         //adds the new instance of person to the table
 986         clearDetails(); 
 987         clearTable();
 988         writePeopleToTable();
 989         System.out.println("LOG: added new Person to table");
 990         System.out.println(" ");
 991         
 992         
 993     }                                               
 994 
 995 
 996     private void exportButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
 997         //No functionality yet :c
 998     }                                            
 999 
1000     private void deleteProfileButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                  
1001         //Displays the delete person dialogue box
1002         deletePersonDialogue.setVisible(true);
1003         //Sets the size and location on screen (in that order) of the dialogue box
1004         deletePersonDialogue.setBounds(500, 300, 300, 100);
1005     }                                                 
1006 
1007     private void searchButtonMouseReleased(java.awt.event.MouseEvent evt) {                                           
1008         //Searches the array list by name
1009         String searchTerm = searchTF.getText();
1010         SearchSort s = new SearchSort();
1011         //creates temporary ArrayList of the search results assignes it to the return value of the searhc method in SearchSort
1012         ArrayList<Person> searchResultArrayList = s.search(peopleArrayList, searchTerm);
1013         //writes the temporary array list to the table
1014         clearTable();
1015         if(searchResultArrayList.size() <= peopleTable.getRowCount()){
1016             for(int row = 0 ; row < searchResultArrayList.size(); row++){
1017                 peopleTable.setValueAt(searchResultArrayList.get(row).getName(), row, 0);
1018                 peopleTable.setValueAt(searchResultArrayList.get(row).getCategory().toString(), row, 1);
1019             }
1020         }
1021         System.out.println("LOG: wrote search results to table");
1022         System.out.println(" ");
1023     }                                          
1024 
1025     private void queryButtonMouseReleased(java.awt.event.MouseEvent evt) {                                          
1026         //Queries the ArrayList by category
1027         String queryCategory = categoryQueryCB.getSelectedItem()+"";
1028         SearchSort s = new SearchSort();
1029         //Creates temporary array list of the query results and assigns it to the return value of the method query in the SearchSort class
1030         ArrayList<Person> queryResultArrayList = s.query(peopleArrayList, queryCategory);
1031         //Writes temporary Array List to the table
1032         clearTable();
1033         if(queryResultArrayList.size() <= peopleTable.getRowCount()){
1034             for(int row = 0 ; row < queryResultArrayList.size(); row++){
1035                 peopleTable.setValueAt(queryResultArrayList.get(row).getName(), row, 0);
1036                 peopleTable.setValueAt(queryResultArrayList.get(row).getCategory().toString(), row, 1);
1037             }
1038         }
1039         System.out.println("LOG: wrote query results to table");
1040         System.out.println(" ");
1041     }                                         
1042 
1043     private void editProfileButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                
1044         //Get the name of the selected person
1045         int selected = peopleTable.getSelectedRow();
1046         String namePersonToEdit = peopleTable.getValueAt(selected, 0)+"";
1047         //Loops throught the Array List until the person has been found  
1048         int index = 0;
1049         for(int i = 0; i < peopleArrayList.size(); i++){
1050             if(namePersonToEdit.equals(peopleArrayList.get(i).getName())){
1051                 index = i;
1052                 break;
1053             } 
1054         }
1055         //Set text fields on new person tab
1056         String [] email = peopleArrayList.get(index).getEmail(); 
1057         String [] phone = peopleArrayList.get(index).getPhone();
1058         nameTF.setText(peopleArrayList.get(index).getName());
1059         ageTF.setText(peopleArrayList.get(index).getAge());
1060         //dateCB.setSelectedIndex(peopleArrayList.get(index).getDate());
1061         //monthCB.setSelectedIndex();
1062         yearCB.setSelectedIndex(0);
1063         firstEmailTF.setText(email[0]);
1064         secondEmailTF.setText(email[1]);
1065         thirdEmailTF.setText(email[2]);
1066         firstPhoneTF.setText(phone[0]);
1067         secondPhoneTF.setText(phone[1]);
1068         thirdPhoneTF.setText(phone[2]);
1069         organizationTF.setText(peopleArrayList.get(index).getOrganization());
1070         streetTF.setText(peopleArrayList.get(index).getStreet());
1071         stateTF.setText(peopleArrayList.get(index).getState());
1072         countryTF.setText(peopleArrayList.get(index).getCountry());
1073         zipTF.setText(peopleArrayList.get(index).getZip());
1074         //categoryCB.setSelectedIndex(peopleArrayList.get(index).getCategory());//something with arrays
1075         notesTA.setText(peopleArrayList.get(index).getNotes());
1076         
1077         // Switch to edit person tab
1078         //editPersonPanel.
1079         
1080         //Remove pre-edited profile from the list
1081         peopleArrayList.remove(index);
1082         
1083         //Refresh table and details
1084         clearTable();
1085         clearDetails();
1086         writePeopleToTable();
1087         System.out.println("LOG: edited person");
1088     }                                               
1089 
1090     private void peopleTableMouseReleased(java.awt.event.MouseEvent evt) {                                          
1091         //display the information fo the selected entry in the table in the labels to the right
1092         //Finds selected person in the database
1093         int selected = peopleTable.getSelectedRow();
1094         String namePersonToDisplay = peopleTable.getValueAt(selected, 0)+"";
1095         int index = 0;
1096         for(int i = 0; i < peopleArrayList.size(); i++){
1097             if(namePersonToDisplay.equals(peopleArrayList.get(i).getName())){
1098                 index = i;
1099                 break;
1100             } 
1101         }
1102         //display everything -- switch to method?
1103         String [] email = peopleArrayList.get(index).getEmail(); 
1104         String [] phone = peopleArrayList.get(index).getPhone();
1105        
1106         displayNameLabel.setText(peopleArrayList.get(index).getName());     
1107         displayAgeLabel.setText(peopleArrayList.get(index).getAge());
1108         displayDateLabel.setText(peopleArrayList.get(index).getDate() + " -- " + peopleArrayList.get(index).getMonth() + " -- " + peopleArrayList.get(index).getYear());
1109         displayEmail1Label.setText(email[0]); 
1110         displayEmail2Label.setText(email[1]);
1111         displayEmail3Label.setText(email[2]);
1112         displayPhone1Label.setText(phone[0]);
1113         displayPhone2Label.setText(phone[1]);
1114         displayPhone3Label.setText(phone[2]);
1115         displayOrganizationLabel.setText(peopleArrayList.get(index).getOrganization());
1116         displayAddressLabel.setText(peopleArrayList.get(index).getStreet() + ", " + peopleArrayList.get(index).getState() + ", " + peopleArrayList.get(index).getCountry());
1117         displayCategoryLabel.setText(peopleArrayList.get(index).getCategory());
1118         displayNotesLabel.setText(peopleArrayList.get(index).getNotes());
1119         System.out.println("LOG: displayed details of selected person");
1120         System.out.println(" ");
1121         
1122     }                                         
1123 
1124     private void refreshButtonMouseReleased(java.awt.event.MouseEvent evt) {                                            
1125         // Refreshes the table and the detail entries
1126         clearTable();
1127         writePeopleToTable();
1128         clearDetails();
1129         //TODO: set query combo box to clear
1130     }                                           
1131 
1132     private void cancelDeleteButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                 
1133         deletePersonDialogue.setVisible(false);
1134         System.out.println("LOG: delete person dialogue canceled");
1135     }                                                
1136 
1137     private void confirmDeletePersonButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                        
1138         // Delete a person from the arraylist
1139         //Find the person from the table in the arraylist
1140         int selected = peopleTable.getSelectedRow();
1141         String namePersonToDelete = peopleTable.getValueAt(selected, 0)+"";
1142         int index = 0;
1143         for(int i = 0; i < peopleArrayList.size(); i++){
1144             if(namePersonToDelete.equals(peopleArrayList.get(i).getName())){
1145                 index = i;
1146                 break;
1147             } 
1148         }
1149         //remove the selected person from the array list
1150         peopleArrayList.remove(index);
1151         deletePersonDialogue.setVisible(false);
1152         clearTable();
1153         writePeopleToTable();
1154         System.out.println("LOG: removed person");
1155         
1156     }                                                       
1157 
1158     private void newCategoryTFActionPerformed(java.awt.event.ActionEvent evt) {                                              
1159               
1160     }                                             
1161 
1162     private void cancelEditCategoryButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                       
1163         
1164     }                                                      
1165 
1166     private void deleteCategoryButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                   
1167         
1168     }                                                  
1169 
1170     private void newCategoryButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                
1171         
1172     }                                               
1173 
1174     private void categoriesTableMouseReleased(java.awt.event.MouseEvent evt) {                                              
1175         
1176     }                                             
1177 
1178     private void addCategoryButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                
1179 
1180     }                                               
1181 
1182     /**
1183      * @param args the command line arguments
1184      */
1185     public static void main(String args[]) {
1186         /* Set the Nimbus look and feel */
1187         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
1188         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
1189          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
1190          */
1191         try {
1192             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1193                 if ("Nimbus".equals(info.getName())) {
1194                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
1195                     break;
1196                 }
1197             }
1198         } catch (ClassNotFoundException ex) {
1199             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1200         } catch (InstantiationException ex) {
1201             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1202         } catch (IllegalAccessException ex) {
1203             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1204         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1205             java.util.logging.Logger.getLogger(MainGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1206         }
1207         //</editor-fold>
1208 
1209         /* Create and display the form */
1210         java.awt.EventQueue.invokeLater(new Runnable() {
1211             public void run() {
1212                 new MainGUI().setVisible(true);
1213             }
1214         });
1215     }
1216     
1217     //method to clear people table 
1218     public void clearTable() {
1219         for(int i = 0; i < peopleTable.getRowCount(); i++){
1220             for(int k = 0; k < peopleTable.getColumnCount(); k++){
1221                 peopleTable.setValueAt("", i, k);
1222             }
1223         }
1224     }
1225     //method to clear details in labels
1226     public void clearDetails(){
1227         displayNameLabel.setText(" ");
1228         displayAgeLabel.setText("");
1229         displayDateLabel.setText("");
1230         displayEmail1Label.setText("");
1231         displayEmail2Label.setText("");
1232         displayEmail3Label.setText("");
1233         displayPhone1Label.setText("");
1234         displayPhone2Label.setText("");
1235         displayPhone3Label.setText("");
1236         displayOrganizationLabel.setText("");
1237         displayAddressLabel.setText("");
1238         displayCategoryLabel.setText("");
1239         displayNotesLabel.setText("");
1240     }
1241     //method to display information in the table
1242     public void writePeopleToTable(){
1243         if(peopleArrayList.size() <= peopleTable.getRowCount()){
1244             for(int row = 0 ; row < peopleArrayList.size(); row++){
1245                 peopleTable.setValueAt(peopleArrayList.get(row).getName(), row, 0);
1246                 peopleTable.setValueAt(peopleArrayList.get(row).getCategory().toString(), row, 1);
1247             }
1248         }
1249     }
1250  
1251     







/*
  39 ####################################################################
  40 ####################################################################
  41 ####################################################################
  42 ####################################################################
  43 ####################################################################
  44 
  45 *************** NOTE THAT ALL THE CODE WHICH IS ********************
  46 *************** HIGHLIGHTED GREY BLOCK IS AUTO- ********************
  47 *************** GENERATED FROM NETBEANS, NOT BY ********************
  48 *************** ME. (It's mainly the GUI stuff.)********************
  49 
  50 ####################################################################
  51 ####################################################################
  52 ####################################################################
  53 ####################################################################
  54 ####################################################################
  55 */
  56     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  57     private void initComponents() {
  58 
  59         deletePersonDialogue = new javax.swing.JDialog();
  60         jPanel1 = new javax.swing.JPanel();
  61         jLabel7 = new javax.swing.JLabel();
  62         confirmDeletePersonButton = new javax.swing.JButton();
  63         cancelDeleteButton = new javax.swing.JButton();
  64         editCategoryDialogue = new javax.swing.JDialog();
  65         jPanel2 = new javax.swing.JPanel();
  66         jScrollPane1 = new javax.swing.JScrollPane();
  67         categoriesTable = new javax.swing.JTable();
  68         newCategoryTF = new javax.swing.JTextField();
  69         newCategoryButton = new javax.swing.JButton();
  70         deleteCategoryButton = new javax.swing.JButton();
  71         categoryLabel = new javax.swing.JLabel();
  72         cancelEditCategoryButton = new javax.swing.JButton();
  73         Pane = new javax.swing.JTabbedPane();
  74         peoplePanel = new javax.swing.JPanel();
  75         emailLabel = new javax.swing.JLabel();
  76         organizatonLabel = new javax.swing.JLabel();
  77         addressLabel = new javax.swing.JLabel();
  78         categoriesLabel = new javax.swing.JLabel();
  79         notesLabel = new javax.swing.JLabel();
  80         email2Label = new javax.swing.JLabel();
  81         phone2Label = new javax.swing.JLabel();
  82         nameLabel = new javax.swing.JLabel();
  83         searchTF = new javax.swing.JTextField();
  84         ageLabel = new javax.swing.JLabel();
  85         deleteProfileButton = new javax.swing.JButton();
  86         editProfileButton = new javax.swing.JButton();
  87         jLabel6 = new javax.swing.JLabel();
  88         phoneLabel = new javax.swing.JLabel();
  89         phone3Label = new javax.swing.JLabel();
  90         searchButton = new javax.swing.JButton();
  91         categoryQueryCB = new javax.swing.JComboBox<>();
  92         queryButton = new javax.swing.JButton();
  93         jScrollPane3 = new javax.swing.JScrollPane();
  94         peopleTable = new javax.swing.JTable();
  95         doBLabel = new javax.swing.JLabel();
  96         displayNameLabel = new javax.swing.JLabel();
  97         displayAgeLabel = new javax.swing.JLabel();
  98         displayEmail1Label = new javax.swing.JLabel();
  99         displayEmail2Label = new javax.swing.JLabel();
 100         displayEmail3Label = new javax.swing.JLabel();
 101         displayPhone1Label = new javax.swing.JLabel();
 102         displayPhone2Label = new javax.swing.JLabel();
 103         displayPhone3Label = new javax.swing.JLabel();
 104         displayOrganizationLabel = new javax.swing.JLabel();
 105         displayAddressLabel = new javax.swing.JLabel();
 106         displayDateLabel = new javax.swing.JLabel();
 107         displayCategoryLabel = new javax.swing.JLabel();
 108         displayNotesLabel = new javax.swing.JLabel();
 109         refreshButton = new javax.swing.JButton();
 110         editPersonPanel = new javax.swing.JPanel();
 111         streetTF = new javax.swing.JTextField();
 112         stateTF = new javax.swing.JTextField();
 113         jScrollPane2 = new javax.swing.JScrollPane();
 114         notesTA = new javax.swing.JTextArea();
 115         countryTF = new javax.swing.JTextField();
 116         zipTF = new javax.swing.JTextField();
 117         dateCB = new javax.swing.JComboBox<>();
 118         jLabel38 = new javax.swing.JLabel();
 119         monthCB = new javax.swing.JComboBox<>();
 120         yearCB = new javax.swing.JComboBox<>();
 121         categoryCB = new javax.swing.JComboBox<>();
 122         jLabel42 = new javax.swing.JLabel();
 123         jLabel43 = new javax.swing.JLabel();
 124         jLabel44 = new javax.swing.JLabel();
 125         jLabel45 = new javax.swing.JLabel();
 126         jLabel46 = new javax.swing.JLabel();
 127         jLabel47 = new javax.swing.JLabel();
 128         addCategoryButton = new javax.swing.JButton();
 129         enterPersonButton = new javax.swing.JButton();
 130         nameTF = new javax.swing.JTextField();
 131         ageTF = new javax.swing.JTextField();
 132         firstEmailTF = new javax.swing.JTextField();
 133         secondEmailTF = new javax.swing.JTextField();
 134         thirdEmailTF = new javax.swing.JTextField();
 135         secondPhoneTF = new javax.swing.JTextField();
 136         firstPhoneTF = new javax.swing.JTextField();
 137         thirdPhoneTF = new javax.swing.JTextField();
 138         organizationTF = new javax.swing.JTextField();
 139         jLabel1 = new javax.swing.JLabel();
 140         jLabel2 = new javax.swing.JLabel();
 141         jLabel3 = new javax.swing.JLabel();
 142         jLabel4 = new javax.swing.JLabel();
 143         jLabel5 = new javax.swing.JLabel();
 144         jLabel18 = new javax.swing.JLabel();
 145         exportImportPanel = new javax.swing.JPanel();
 146         exportButton = new javax.swing.JButton();
 147         jLabel17 = new javax.swing.JLabel();
 148         exportFamilyCB = new javax.swing.JCheckBox();
 149         exportWorkCB = new javax.swing.JCheckBox();
 150         jLabel24 = new javax.swing.JLabel();
 151         jRadioButton1 = new javax.swing.JRadioButton();
 152         jRadioButton2 = new javax.swing.JRadioButton();
 153         jRadioButton3 = new javax.swing.JRadioButton();
 154         exportPersonalCB = new javax.swing.JCheckBox();
 155 
 156         jLabel7.setText("Are you sure you want to delete this entry?");
 157 
 158         confirmDeletePersonButton.setText("Yes");
 159         confirmDeletePersonButton.addMouseListener(new java.awt.event.MouseAdapter() {
 160             public void mouseReleased(java.awt.event.MouseEvent evt) {
 161                 confirmDeletePersonButtonMouseReleased(evt);
 162             }
 163         });
 164 
 165         cancelDeleteButton.setText("No, Cancel");
 166         cancelDeleteButton.addMouseListener(new java.awt.event.MouseAdapter() {
 167             public void mouseReleased(java.awt.event.MouseEvent evt) {
 168                 cancelDeleteButtonMouseReleased(evt);
 169             }
 170         });
 171 
 172         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
 173         jPanel1.setLayout(jPanel1Layout);
 174         jPanel1Layout.setHorizontalGroup(
 175             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 176             .addGroup(jPanel1Layout.createSequentialGroup()
 177                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 178                     .addGroup(jPanel1Layout.createSequentialGroup()
 179                         .addComponent(confirmDeletePersonButton)
 180                         .addGap(141, 141, 141)
 181                         .addComponent(cancelDeleteButton))
 182                     .addComponent(jLabel7))
 183                 .addGap(0, 0, Short.MAX_VALUE))
 184         );
 185         jPanel1Layout.setVerticalGroup(
 186             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 187             .addGroup(jPanel1Layout.createSequentialGroup()
 188                 .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
 189                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE)
 190                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 191                     .addComponent(confirmDeletePersonButton)
 192                     .addComponent(cancelDeleteButton)))
 193         );
 194 
 195         javax.swing.GroupLayout deletePersonDialogueLayout = new javax.swing.GroupLayout(deletePersonDialogue.getContentPane());
 196         deletePersonDialogue.getContentPane().setLayout(deletePersonDialogueLayout);
 197         deletePersonDialogueLayout.setHorizontalGroup(
 198             deletePersonDialogueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 199             .addGroup(deletePersonDialogueLayout.createSequentialGroup()
 200                 .addContainerGap()
 201                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 202                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 203         );
 204         deletePersonDialogueLayout.setVerticalGroup(
 205             deletePersonDialogueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 206             .addGroup(deletePersonDialogueLayout.createSequentialGroup()
 207                 .addContainerGap()
 208                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 209                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 210         );
 211 
 212         categoriesTable.setModel(new javax.swing.table.DefaultTableModel(
 213             new Object [][] {
 214                 {null},
 215                 {null},
 216                 {null},
 217                 {null},
 218                 {null},
 219                 {null},
 220                 {null},
 221                 {null},
 222                 {null}
 223             },
 224             new String [] {
 225                 "Categories"
 226             }
 227         ));
 228         categoriesTable.addMouseListener(new java.awt.event.MouseAdapter() {
 229             public void mouseReleased(java.awt.event.MouseEvent evt) {
 230                 categoriesTableMouseReleased(evt);
 231             }
 232         });
 233         jScrollPane1.setViewportView(categoriesTable);
 234 
 235         newCategoryTF.addActionListener(new java.awt.event.ActionListener() {
 236             public void actionPerformed(java.awt.event.ActionEvent evt) {
 237                 newCategoryTFActionPerformed(evt);
 238             }
 239         });
 240 
 241         newCategoryButton.setText("Add New Category");
 242         newCategoryButton.addMouseListener(new java.awt.event.MouseAdapter() {
 243             public void mouseReleased(java.awt.event.MouseEvent evt) {
 244                 newCategoryButtonMouseReleased(evt);
 245             }
 246         });
 247 
 248         deleteCategoryButton.setText("Delete Category");
 249         deleteCategoryButton.addMouseListener(new java.awt.event.MouseAdapter() {
 250             public void mouseReleased(java.awt.event.MouseEvent evt) {
 251                 deleteCategoryButtonMouseReleased(evt);
 252             }
 253         });
 254 
 255         categoryLabel.setText("jLabel8");
 256 
 257         cancelEditCategoryButton.setText("Cancel");
 258         cancelEditCategoryButton.addMouseListener(new java.awt.event.MouseAdapter() {
 259             public void mouseReleased(java.awt.event.MouseEvent evt) {
 260                 cancelEditCategoryButtonMouseReleased(evt);
 261             }
 262         });
 263 
 264         javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
 265         jPanel2.setLayout(jPanel2Layout);
 266         jPanel2Layout.setHorizontalGroup(
 267             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 268             .addGroup(jPanel2Layout.createSequentialGroup()
 269                 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
 270                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 271                 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 272                     .addComponent(deleteCategoryButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 273                     .addComponent(categoryLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 274                     .addGroup(jPanel2Layout.createSequentialGroup()
 275                         .addComponent(newCategoryTF, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
 276                         .addGap(0, 0, Short.MAX_VALUE))
 277                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
 278                         .addGap(0, 0, Short.MAX_VALUE)
 279                         .addComponent(newCategoryButton))
 280                     .addComponent(cancelEditCategoryButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
 281         );
 282         jPanel2Layout.setVerticalGroup(
 283             jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 284             .addGroup(jPanel2Layout.createSequentialGroup()
 285                 .addComponent(categoryLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
 286                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 287                 .addComponent(deleteCategoryButton)
 288                 .addGap(18, 18, 18)
 289                 .addComponent(newCategoryTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 290                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 291                 .addComponent(newCategoryButton)
 292                 .addGap(18, 18, 18)
 293                 .addComponent(cancelEditCategoryButton)
 294                 .addGap(0, 0, Short.MAX_VALUE))
 295             .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
 296         );
 297 
 298         javax.swing.GroupLayout editCategoryDialogueLayout = new javax.swing.GroupLayout(editCategoryDialogue.getContentPane());
 299         editCategoryDialogue.getContentPane().setLayout(editCategoryDialogueLayout);
 300         editCategoryDialogueLayout.setHorizontalGroup(
 301             editCategoryDialogueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 302             .addGroup(editCategoryDialogueLayout.createSequentialGroup()
 303                 .addContainerGap()
 304                 .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 305                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 306         );
 307         editCategoryDialogueLayout.setVerticalGroup(
 308             editCategoryDialogueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 309             .addGroup(editCategoryDialogueLayout.createSequentialGroup()
 310                 .addContainerGap()
 311                 .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 312                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 313         );
 314 
 315         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 316 
 317         emailLabel.setText("Email:");
 318 
 319         organizatonLabel.setText("Organization:");
 320 
 321         addressLabel.setText("Address:");
 322 
 323         categoriesLabel.setText("Categories:");
 324 
 325         notesLabel.setText("Notes:");
 326 
 327         email2Label.setText("Email 2 :");
 328 
 329         phone2Label.setText("Phone 2:");
 330 
 331         nameLabel.setText("Name:");
 332 
 333         searchTF.addActionListener(new java.awt.event.ActionListener() {
 334             public void actionPerformed(java.awt.event.ActionEvent evt) {
 335                 searchTFActionPerformed(evt);
 336             }
 337         });
 338 
 339         ageLabel.setText("Age:");
 340 
 341         deleteProfileButton.setText("Delete Person");
 342         deleteProfileButton.addMouseListener(new java.awt.event.MouseAdapter() {
 343             public void mouseReleased(java.awt.event.MouseEvent evt) {
 344                 deleteProfileButtonMouseReleased(evt);
 345             }
 346         });
 347         deleteProfileButton.addActionListener(new java.awt.event.ActionListener() {
 348             public void actionPerformed(java.awt.event.ActionEvent evt) {
 349                 deleteProfileButtonActionPerformed(evt);
 350             }
 351         });
 352 
 353         editProfileButton.setText("Edit Person");
 354         editProfileButton.addMouseListener(new java.awt.event.MouseAdapter() {
 355             public void mouseReleased(java.awt.event.MouseEvent evt) {
 356                 editProfileButtonMouseReleased(evt);
 357             }
 358         });
 359 
 360         jLabel6.setText("Email 3: ");
 361 
 362         phoneLabel.setText("Phone:");
 363 
 364         phone3Label.setText("Phone 3:");
 365 
 366         searchButton.setText("Search");
 367         searchButton.addMouseListener(new java.awt.event.MouseAdapter() {
 368             public void mouseReleased(java.awt.event.MouseEvent evt) {
 369                 searchButtonMouseReleased(evt);
 370             }
 371         });
 372 
 373         categoryQueryCB.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { " ", "Family", "Work", "Personal" }));
 374 
 375         queryButton.setText("Find");
 376         queryButton.addMouseListener(new java.awt.event.MouseAdapter() {
 377             public void mouseReleased(java.awt.event.MouseEvent evt) {
 378                 queryButtonMouseReleased(evt);
 379             }
 380         });
 381 
 382         peopleTable.setModel(new javax.swing.table.DefaultTableModel(
 383             new Object [][] {
 384                 {null, null},
 385                 {null, null},
 386                 {null, null},
 387                 {null, null},
 388                 {null, null},
 389                 {null, null},
 390                 {null, null},
 391                 {null, null},
 392                 {null, null},
 393                 {null, null},
 394                 {null, null},
 395                 {null, null},
 396                 {null, null},
 397                 {null, null},
 398                 {null, null},
 399                 {null, null},
 400                 {null, null},
 401                 {null, null},
 402                 {null, null},
 403                 {null, null},
 404                 {null, null},
 405                 {null, null},
 406                 {null, null},
 407                 {null, null},
 408                 {null, null},
 409                 {null, null},
 410                 {null, null},
 411                 {null, null},
 412                 {null, null},
 413                 {null, null},
 414                 {null, null},
 415                 {null, null},
 416                 {null, null},
 417                 {null, null},
 418                 {null, null},
 419                 {null, null},
 420                 {null, null},
 421                 {null, null},
 422                 {null, null},
 423                 {null, null},
 424                 {null, null},
 425                 {null, null},
 426                 {null, null},
 427                 {null, null},
 428                 {null, null},
 429                 {null, null}
 430             },
 431             new String [] {
 432                 "Name", "Category"
 433             }
 434         ) {
 435             Class[] types = new Class [] {
 436                 java.lang.String.class, java.lang.String.class
 437             };
 438             boolean[] canEdit = new boolean [] {
 439                 false, false
 440             };
 441 
 442             public Class getColumnClass(int columnIndex) {
 443                 return types [columnIndex];
 444             }
 445 
 446             public boolean isCellEditable(int rowIndex, int columnIndex) {
 447                 return canEdit [columnIndex];
 448             }
 449         });
 450         peopleTable.addMouseListener(new java.awt.event.MouseAdapter() {
 451             public void mouseReleased(java.awt.event.MouseEvent evt) {
 452                 peopleTableMouseReleased(evt);
 453             }
 454         });
 455         jScrollPane3.setViewportView(peopleTable);
 456 
 457         doBLabel.setText("Date of Birth");
 458 
 459         displayNameLabel.setText("jLabel8");
 460 
 461         displayAgeLabel.setText("jLabel9");
 462 
 463         displayEmail1Label.setText("jLabel10");
 464 
 465         displayEmail2Label.setText("jLabel11");
 466 
 467         displayEmail3Label.setText("jLabel12");
 468 
 469         displayPhone1Label.setText("jLabel13");
 470 
 471         displayPhone2Label.setText("jLabel14");
 472 
 473         displayPhone3Label.setText("jLabel15");
 474 
 475         displayOrganizationLabel.setText("jLabel16");
 476 
 477         displayAddressLabel.setText("jLabel");
 478 
 479         displayDateLabel.setText("jLabel");
 480 
 481         displayCategoryLabel.setText("jLabel28");
 482 
 483         displayNotesLabel.setText("jLabel10");
 484 
 485         refreshButton.setText("Refresh");
 486         refreshButton.addMouseListener(new java.awt.event.MouseAdapter() {
 487             public void mouseReleased(java.awt.event.MouseEvent evt) {
 488                 refreshButtonMouseReleased(evt);
 489             }
 490         });
 491 
 492         javax.swing.GroupLayout peoplePanelLayout = new javax.swing.GroupLayout(peoplePanel);
 493         peoplePanel.setLayout(peoplePanelLayout);
 494         peoplePanelLayout.setHorizontalGroup(
 495             peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 496             .addGroup(peoplePanelLayout.createSequentialGroup()
 497                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 498                     .addGroup(peoplePanelLayout.createSequentialGroup()
 499                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 500                             .addComponent(searchTF, javax.swing.GroupLayout.DEFAULT_SIZE, 161, Short.MAX_VALUE)
 501                             .addComponent(categoryQueryCB, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 502                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 503                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 504                             .addComponent(searchButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 505                             .addComponent(queryButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 506                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 507                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 508                             .addComponent(deleteProfileButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 509                             .addComponent(editProfileButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
 510                     .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
 511                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 512                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 513                     .addGroup(peoplePanelLayout.createSequentialGroup()
 514                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 515                             .addGroup(peoplePanelLayout.createSequentialGroup()
 516                                 .addComponent(nameLabel)
 517                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 518                                 .addComponent(displayNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 519                             .addGroup(peoplePanelLayout.createSequentialGroup()
 520                                 .addComponent(emailLabel)
 521                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 522                                 .addComponent(displayEmail1Label, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 523                             .addGroup(peoplePanelLayout.createSequentialGroup()
 524                                 .addComponent(email2Label)
 525                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 526                                 .addComponent(displayEmail2Label, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 527                             .addGroup(peoplePanelLayout.createSequentialGroup()
 528                                 .addComponent(jLabel6)
 529                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 530                                 .addComponent(displayEmail3Label, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 531                             .addGroup(peoplePanelLayout.createSequentialGroup()
 532                                 .addComponent(phoneLabel)
 533                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 534                                 .addComponent(displayPhone1Label, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 535                             .addGroup(peoplePanelLayout.createSequentialGroup()
 536                                 .addComponent(phone2Label)
 537                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 65, Short.MAX_VALUE)
 538                                 .addComponent(displayPhone2Label, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 539                             .addGroup(peoplePanelLayout.createSequentialGroup()
 540                                 .addComponent(phone3Label)
 541                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 542                                 .addComponent(displayPhone3Label, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE))
 543                             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, peoplePanelLayout.createSequentialGroup()
 544                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 545                                     .addComponent(ageLabel)
 546                                     .addComponent(doBLabel))
 547                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 548                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
 549                                     .addComponent(displayAgeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE)
 550                                     .addComponent(displayDateLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
 551                             .addGroup(peoplePanelLayout.createSequentialGroup()
 552                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 553                                     .addComponent(organizatonLabel)
 554                                     .addComponent(addressLabel)
 555                                     .addComponent(notesLabel)
 556                                     .addComponent(categoriesLabel))
 557                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 558                                     .addGroup(peoplePanelLayout.createSequentialGroup()
 559                                         .addGap(29, 29, 29)
 560                                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 561                                             .addGroup(peoplePanelLayout.createSequentialGroup()
 562                                                 .addComponent(displayCategoryLabel)
 563                                                 .addGap(0, 0, Short.MAX_VALUE))
 564                                             .addComponent(displayNotesLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
 565                                     .addGroup(peoplePanelLayout.createSequentialGroup()
 566                                         .addGap(24, 24, 24)
 567                                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 568                                             .addComponent(displayAddressLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 569                                             .addComponent(displayOrganizationLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))))
 570                         .addContainerGap())
 571                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, peoplePanelLayout.createSequentialGroup()
 572                         .addGap(0, 0, Short.MAX_VALUE)
 573                         .addComponent(refreshButton))))
 574         );
 575         peoplePanelLayout.setVerticalGroup(
 576             peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 577             .addGroup(peoplePanelLayout.createSequentialGroup()
 578                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 579                     .addComponent(searchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
 580                     .addComponent(searchButton)
 581                     .addComponent(editProfileButton)
 582                     .addComponent(refreshButton))
 583                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 584                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 585                     .addGroup(peoplePanelLayout.createSequentialGroup()
 586                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 587                             .addComponent(categoryQueryCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 588                             .addComponent(queryButton)
 589                             .addComponent(deleteProfileButton))
 590                         .addGap(5, 5, 5)
 591                         .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 521, Short.MAX_VALUE))
 592                     .addGroup(peoplePanelLayout.createSequentialGroup()
 593                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 594                             .addComponent(nameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE)
 595                             .addComponent(displayNameLabel))
 596                         .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 597                             .addGroup(peoplePanelLayout.createSequentialGroup()
 598                                 .addGap(10, 10, 10)
 599                                 .addComponent(displayAgeLabel)
 600                                 .addGap(18, 18, 18)
 601                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 602                                     .addComponent(doBLabel)
 603                                     .addComponent(displayDateLabel))
 604                                 .addGap(18, 18, 18)
 605                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 606                                     .addComponent(emailLabel)
 607                                     .addComponent(displayEmail1Label))
 608                                 .addGap(18, 18, 18)
 609                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 610                                     .addComponent(email2Label)
 611                                     .addComponent(displayEmail2Label))
 612                                 .addGap(18, 18, 18)
 613                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 614                                     .addComponent(jLabel6)
 615                                     .addComponent(displayEmail3Label))
 616                                 .addGap(18, 18, 18)
 617                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 618                                     .addComponent(phoneLabel)
 619                                     .addComponent(displayPhone1Label))
 620                                 .addGap(18, 18, 18)
 621                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 622                                     .addComponent(phone2Label)
 623                                     .addComponent(displayPhone2Label))
 624                                 .addGap(18, 18, 18)
 625                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 626                                     .addComponent(phone3Label)
 627                                     .addComponent(displayPhone3Label))
 628                                 .addGap(18, 18, 18)
 629                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 630                                     .addComponent(organizatonLabel)
 631                                     .addComponent(displayOrganizationLabel))
 632                                 .addGap(18, 18, 18)
 633                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 634                                     .addComponent(addressLabel)
 635                                     .addComponent(displayAddressLabel))
 636                                 .addGap(18, 18, 18)
 637                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 638                                     .addComponent(categoriesLabel)
 639                                     .addComponent(displayCategoryLabel))
 640                                 .addGap(18, 18, 18)
 641                                 .addGroup(peoplePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 642                                     .addComponent(notesLabel)
 643                                     .addComponent(displayNotesLabel)))
 644                             .addGroup(peoplePanelLayout.createSequentialGroup()
 645                                 .addGap(9, 9, 9)
 646                                 .addComponent(ageLabel)))
 647                         .addGap(0, 0, Short.MAX_VALUE))))
 648         );
 649 
 650         Pane.addTab("Search People", peoplePanel);
 651 
 652         notesTA.setColumns(20);
 653         notesTA.setRows(5);
 654         jScrollPane2.setViewportView(notesTA);
 655 
 656         dateCB.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { " ", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
 657 
 658         jLabel38.setText("Date of Birth:");
 659 
 660         monthCB.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { " ", "January", "February", "March ", "April", "May", "June", "July", "August", "September", "October", "November", "December" }));
 661 
 662         yearCB.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { " ", "1900", "1901", "1902", "1903", "1904", "1905", "1906", "1907", "1908", "1909", "1910", "1911", "1912", "1913", "1914", "1915", "1916", "1917", "1918", "1919", "1920", "1921", "1922", "1923", "1924", "1925", "1926", "1927", "1928", "1929", "1930", "1931", "1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", "1940", "1941", "1942", "1943", "1944", "1945", "1946", "1947", "1948", "1949", "1950", "1951", "1952", "1953", "1954", "1955", "1956", "1957", "1958", "1959", "1960", "1961", "1962", "1963", "1964", "1965", "1966", "1967", "1968", "1969", "1970", "1971", "1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979", "1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", " " }));
 663 
 664         categoryCB.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { " ", "Family", "Work", "Personal" }));
 665 
 666         jLabel42.setText("Phone 1:");
 667 
 668         jLabel43.setText("Phone 2:");
 669 
 670         jLabel44.setText("Phone 3:");
 671 
 672         jLabel45.setText("Organization:");
 673 
 674         jLabel46.setText("Address:");
 675 
 676         jLabel47.setText("Categories:");
 677 
 678         addCategoryButton.setText("Add Category");
 679         addCategoryButton.addMouseListener(new java.awt.event.MouseAdapter() {
 680             public void mouseReleased(java.awt.event.MouseEvent evt) {
 681                 addCategoryButtonMouseReleased(evt);
 682             }
 683         });
 684 
 685         enterPersonButton.setText("Enter");
 686         enterPersonButton.addMouseListener(new java.awt.event.MouseAdapter() {
 687             public void mouseReleased(java.awt.event.MouseEvent evt) {
 688                 enterPersonButtonMouseReleased(evt);
 689             }
 690         });
 691 
 692         jLabel1.setText("Name");
 693 
 694         jLabel2.setText("Age");
 695 
 696         jLabel3.setText("Email 1:");
 697 
 698         jLabel4.setText("Eamil 2:");
 699 
 700         jLabel5.setText("Email 3:");
 701 
 702         jLabel18.setText("Notes:");
 703 
 704         javax.swing.GroupLayout editPersonPanelLayout = new javax.swing.GroupLayout(editPersonPanel);
 705         editPersonPanel.setLayout(editPersonPanelLayout);
 706         editPersonPanelLayout.setHorizontalGroup(
 707             editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 708             .addGroup(editPersonPanelLayout.createSequentialGroup()
 709                 .addContainerGap()
 710                 .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 711                     .addComponent(jLabel1)
 712                     .addComponent(jLabel2)
 713                     .addComponent(jLabel3)
 714                     .addComponent(jLabel4)
 715                     .addComponent(jLabel5)
 716                     .addComponent(jLabel42)
 717                     .addComponent(jLabel18))
 718                 .addContainerGap(745, Short.MAX_VALUE))
 719             .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 720                 .addGroup(editPersonPanelLayout.createSequentialGroup()
 721                     .addContainerGap()
 722                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 723                         .addGroup(editPersonPanelLayout.createSequentialGroup()
 724                             .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 725                                 .addComponent(jLabel38)
 726                                 .addComponent(jLabel43)
 727                                 .addComponent(jLabel44)
 728                                 .addComponent(jLabel45)
 729                                 .addComponent(jLabel46)
 730                                 .addComponent(jLabel47))
 731                             .addGap(63, 63, 63)
 732                             .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 733                                 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 734                                 .addComponent(organizationTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 735                                 .addComponent(thirdPhoneTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 736                                 .addComponent(secondPhoneTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 737                                 .addComponent(thirdEmailTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 738                                 .addComponent(secondEmailTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 739                                 .addComponent(firstEmailTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 740                                 .addComponent(nameTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 741                                 .addComponent(firstPhoneTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 742                                 .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
 743                                     .addGroup(editPersonPanelLayout.createSequentialGroup()
 744                                         .addComponent(categoryCB, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 745                                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 746                                         .addComponent(addCategoryButton))
 747                                     .addGroup(javax.swing.GroupLayout.Alignment.LEADING, editPersonPanelLayout.createSequentialGroup()
 748                                         .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
 749                                             .addGroup(javax.swing.GroupLayout.Alignment.LEADING, editPersonPanelLayout.createSequentialGroup()
 750                                                 .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
 751                                                     .addGroup(editPersonPanelLayout.createSequentialGroup()
 752                                                         .addComponent(dateCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 753                                                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 754                                                         .addComponent(monthCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 755                                                     .addComponent(ageTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
 756                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 757                                                 .addComponent(yearCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 758                                             .addGroup(editPersonPanelLayout.createSequentialGroup()
 759                                                 .addComponent(streetTF, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
 760                                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
 761                                                 .addComponent(stateTF, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)))
 762                                         .addGap(18, 18, 18)
 763                                         .addComponent(countryTF, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE)
 764                                         .addGap(18, 18, 18)
 765                                         .addComponent(zipTF, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE))))
 766                             .addGap(0, 119, Short.MAX_VALUE))
 767                         .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, editPersonPanelLayout.createSequentialGroup()
 768                             .addGap(0, 0, Short.MAX_VALUE)
 769                             .addComponent(enterPersonButton)))
 770                     .addContainerGap()))
 771         );
 772         editPersonPanelLayout.setVerticalGroup(
 773             editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 774             .addGroup(editPersonPanelLayout.createSequentialGroup()
 775                 .addContainerGap()
 776                 .addComponent(jLabel1)
 777                 .addGap(26, 26, 26)
 778                 .addComponent(jLabel2)
 779                 .addGap(59, 59, 59)
 780                 .addComponent(jLabel3)
 781                 .addGap(24, 24, 24)
 782                 .addComponent(jLabel4)
 783                 .addGap(20, 20, 20)
 784                 .addComponent(jLabel5)
 785                 .addGap(18, 18, 18)
 786                 .addComponent(jLabel42, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
 787                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 208, Short.MAX_VALUE)
 788                 .addComponent(jLabel18)
 789                 .addGap(112, 112, 112))
 790             .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 791                 .addGroup(editPersonPanelLayout.createSequentialGroup()
 792                     .addContainerGap()
 793                     .addComponent(nameTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 794                     .addGap(18, 18, 18)
 795                     .addComponent(ageTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 796                     .addGap(18, 18, 18)
 797                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 798                         .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 799                             .addComponent(jLabel38)
 800                             .addComponent(dateCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 801                         .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 802                             .addComponent(monthCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 803                             .addComponent(yearCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
 804                     .addGap(18, 18, 18)
 805                     .addComponent(firstEmailTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 806                     .addGap(18, 18, 18)
 807                     .addComponent(secondEmailTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 808                     .addGap(18, 18, 18)
 809                     .addComponent(thirdEmailTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 810                     .addGap(18, 18, 18)
 811                     .addComponent(firstPhoneTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 812                     .addGap(18, 18, 18)
 813                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 814                         .addComponent(jLabel43)
 815                         .addComponent(secondPhoneTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 816                     .addGap(18, 18, 18)
 817                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 818                         .addComponent(jLabel44)
 819                         .addComponent(thirdPhoneTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 820                     .addGap(18, 18, 18)
 821                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 822                         .addComponent(jLabel45)
 823                         .addComponent(organizationTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 824                     .addGap(18, 18, 18)
 825                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 826                         .addComponent(jLabel46)
 827                         .addComponent(streetTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 828                         .addComponent(stateTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 829                         .addComponent(countryTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 830                         .addComponent(zipTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 831                     .addGap(18, 18, 18)
 832                     .addGroup(editPersonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 833                         .addComponent(jLabel47)
 834                         .addComponent(categoryCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 835                         .addComponent(addCategoryButton))
 836                     .addGap(18, 18, 18)
 837                     .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 838                     .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 839                     .addComponent(enterPersonButton)
 840                     .addContainerGap()))
 841         );
 842 
 843         Pane.addTab("Edit Person", editPersonPanel);
 844 
 845         exportButton.setText("Export");
 846         exportButton.addActionListener(new java.awt.event.ActionListener() {
 847             public void actionPerformed(java.awt.event.ActionEvent evt) {
 848                 exportButtonActionPerformed(evt);
 849             }
 850         });
 851 
 852         jLabel17.setText("Export by ...");
 853 
 854         exportFamilyCB.setText("Family");
 855 
 856         exportWorkCB.setText("Work");
 857 
 858         jLabel24.setText("Export as ...");
 859 
 860         jRadioButton1.setText(".csv file");
 861 
 862         jRadioButton2.setText(".vcf file");
 863 
 864         jRadioButton3.setText(".xml file ");
 865 
 866         exportPersonalCB.setText("Personal");
 867 
 868         javax.swing.GroupLayout exportImportPanelLayout = new javax.swing.GroupLayout(exportImportPanel);
 869         exportImportPanel.setLayout(exportImportPanelLayout);
 870         exportImportPanelLayout.setHorizontalGroup(
 871             exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 872             .addGroup(exportImportPanelLayout.createSequentialGroup()
 873                 .addContainerGap()
 874                 .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 875                     .addGroup(exportImportPanelLayout.createSequentialGroup()
 876                         .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 877                             .addComponent(jLabel17)
 878                             .addComponent(exportFamilyCB))
 879                         .addGap(38, 38, 38))
 880                     .addGroup(javax.swing.GroupLayout.Alignment.LEADING, exportImportPanelLayout.createSequentialGroup()
 881                         .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 882                             .addComponent(exportWorkCB, javax.swing.GroupLayout.Alignment.LEADING)
 883                             .addComponent(exportPersonalCB, javax.swing.GroupLayout.Alignment.LEADING))
 884                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
 885                 .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 886                     .addComponent(jRadioButton2)
 887                     .addComponent(jRadioButton1)
 888                     .addComponent(jLabel24)
 889                     .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
 890                         .addComponent(exportButton)
 891                         .addComponent(jRadioButton3)))
 892                 .addContainerGap(599, Short.MAX_VALUE))
 893         );
 894         exportImportPanelLayout.setVerticalGroup(
 895             exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 896             .addGroup(exportImportPanelLayout.createSequentialGroup()
 897                 .addContainerGap()
 898                 .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 899                     .addComponent(jLabel17)
 900                     .addComponent(jLabel24))
 901                 .addGap(18, 18, 18)
 902                 .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 903                     .addComponent(exportFamilyCB)
 904                     .addComponent(jRadioButton1))
 905                 .addGap(18, 18, 18)
 906                 .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 907                     .addComponent(jRadioButton2)
 908                     .addComponent(exportWorkCB))
 909                 .addGap(18, 18, 18)
 910                 .addGroup(exportImportPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 911                     .addComponent(jRadioButton3)
 912                     .addComponent(exportPersonalCB))
 913                 .addGap(18, 18, 18)
 914                 .addComponent(exportButton)
 915                 .addContainerGap(395, Short.MAX_VALUE))
 916         );
 917 
 918         Pane.addTab("Export/Import Person", exportImportPanel);
 919 
 920         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 921         getContentPane().setLayout(layout);
 922         layout.setHorizontalGroup(
 923             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 924             .addGroup(layout.createSequentialGroup()
 925                 .addContainerGap()
 926                 .addComponent(Pane, javax.swing.GroupLayout.DEFAULT_SIZE, 819, Short.MAX_VALUE)
 927                 .addContainerGap())
 928         );
 929         layout.setVerticalGroup(
 930             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 931             .addGroup(layout.createSequentialGroup()
 932                 .addContainerGap()
 933                 .addComponent(Pane)
 934                 .addContainerGap())
 935         );
 936 
 937         pack();
 938     }// </editor-fold>                        
1252 
1253     // Variables declaration - do not modify                     
1254     private javax.swing.JTabbedPane Pane;
1255     private javax.swing.JButton addCategoryButton;
1256     private javax.swing.JLabel addressLabel;
1257     private javax.swing.JLabel ageLabel;
1258     private javax.swing.JTextField ageTF;
1259     private javax.swing.JButton cancelDeleteButton;
1260     private javax.swing.JButton cancelEditCategoryButton;
1261     private javax.swing.JLabel categoriesLabel;
1262     private javax.swing.JTable categoriesTable;
1263     private javax.swing.JComboBox<String> categoryCB;
1264     private javax.swing.JLabel categoryLabel;
1265     private javax.swing.JComboBox<String> categoryQueryCB;
1266     private javax.swing.JButton confirmDeletePersonButton;
1267     private javax.swing.JTextField countryTF;
1268     private javax.swing.JComboBox<String> dateCB;
1269     private javax.swing.JButton deleteCategoryButton;
1270     private javax.swing.JDialog deletePersonDialogue;
1271     private javax.swing.JButton deleteProfileButton;
1272     private javax.swing.JLabel displayAddressLabel;
1273     private javax.swing.JLabel displayAgeLabel;
1274     private javax.swing.JLabel displayCategoryLabel;
1275     private javax.swing.JLabel displayDateLabel;
1276     private javax.swing.JLabel displayEmail1Label;
1277     private javax.swing.JLabel displayEmail2Label;
1278     private javax.swing.JLabel displayEmail3Label;
1279     private javax.swing.JLabel displayNameLabel;
1280     private javax.swing.JLabel displayNotesLabel;
1281     private javax.swing.JLabel displayOrganizationLabel;
1282     private javax.swing.JLabel displayPhone1Label;
1283     private javax.swing.JLabel displayPhone2Label;
1284     private javax.swing.JLabel displayPhone3Label;
1285     private javax.swing.JLabel doBLabel;
1286     private javax.swing.JDialog editCategoryDialogue;
1287     private javax.swing.JPanel editPersonPanel;
1288     private javax.swing.JButton editProfileButton;
1289     private javax.swing.JLabel email2Label;
1290     private javax.swing.JLabel emailLabel;
1291     private javax.swing.JButton enterPersonButton;
1292     private javax.swing.JButton exportButton;
1293     private javax.swing.JCheckBox exportFamilyCB;
1294     private javax.swing.JPanel exportImportPanel;
1295     private javax.swing.JCheckBox exportPersonalCB;
1296     private javax.swing.JCheckBox exportWorkCB;
1297     private javax.swing.JTextField firstEmailTF;
1298     private javax.swing.JTextField firstPhoneTF;
1299     private javax.swing.JLabel jLabel1;
1300     private javax.swing.JLabel jLabel17;
1301     private javax.swing.JLabel jLabel18;
1302     private javax.swing.JLabel jLabel2;
1303     private javax.swing.JLabel jLabel24;
1304     private javax.swing.JLabel jLabel3;
1305     private javax.swing.JLabel jLabel38;
1306     private javax.swing.JLabel jLabel4;
1307     private javax.swing.JLabel jLabel42;
1308     private javax.swing.JLabel jLabel43;
1309     private javax.swing.JLabel jLabel44;
1310     private javax.swing.JLabel jLabel45;
1311     private javax.swing.JLabel jLabel46;
1312     private javax.swing.JLabel jLabel47;
1313     private javax.swing.JLabel jLabel5;
1314     private javax.swing.JLabel jLabel6;
1315     private javax.swing.JLabel jLabel7;
1316     private javax.swing.JPanel jPanel1;
1317     private javax.swing.JPanel jPanel2;
1318     private javax.swing.JRadioButton jRadioButton1;
1319     private javax.swing.JRadioButton jRadioButton2;
1320     private javax.swing.JRadioButton jRadioButton3;
1321     private javax.swing.JScrollPane jScrollPane1;
1322     private javax.swing.JScrollPane jScrollPane2;
1323     private javax.swing.JScrollPane jScrollPane3;
1324     private javax.swing.JComboBox<String> monthCB;
1325     private javax.swing.JLabel nameLabel;
1326     private javax.swing.JTextField nameTF;
1327     private javax.swing.JButton newCategoryButton;
1328     private javax.swing.JTextField newCategoryTF;
1329     private javax.swing.JLabel notesLabel;
1330     private javax.swing.JTextArea notesTA;
1331     private javax.swing.JTextField organizationTF;
1332     private javax.swing.JLabel organizatonLabel;
1333     private javax.swing.JPanel peoplePanel;
1334     private javax.swing.JTable peopleTable;
1335     private javax.swing.JLabel phone2Label;
1336     private javax.swing.JLabel phone3Label;
1337     private javax.swing.JLabel phoneLabel;
1338     private javax.swing.JButton queryButton;
1339     private javax.swing.JButton refreshButton;
1340     private javax.swing.JButton searchButton;
1341     private javax.swing.JTextField searchTF;
1342     private javax.swing.JTextField secondEmailTF;
1343     private javax.swing.JTextField secondPhoneTF;
1344     private javax.swing.JTextField stateTF;
1345     private javax.swing.JTextField streetTF;
1346     private javax.swing.JTextField thirdEmailTF;
1347     private javax.swing.JTextField thirdPhoneTF;
1348     private javax.swing.JComboBox<String> yearCB;
1349     private javax.swing.JTextField zipTF;
1350     // End of variables declaration                   
1351 }
1352