/* * SubjectInfo.java * * Created on April 8, 2002, 2:04 PM */ package subjectData; /** * * @author Joset A. Etzel */ import java.io.*; import java.util.*; import javax.swing.*; import java.sql.*; import javax.swing.filechooser.*; import java.awt.*; import java.awt.event.*; import subjectData.*; public class SubjectInfo extends javax.swing.JInternalFrame { Connection conData; Statement stmSQL; //variables for sql database access private boolean bolStarted = false; /** Creates new form SubjectInfo */ public SubjectInfo() { ResultSet rssSubjects; initComponents(); //connect to the database try { Class.forName("org.gjt.mm.mysql.Driver"); conData = SubjectData.getDatabaseConnection(); } catch (Exception e) { e.printStackTrace(); } FillCombos(); try { //get the education categories stmSQL = conData.createStatement(); rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'Education' ORDER BY boxChoice"); while(rssSubjects.next()) { cboEducation.addItem(rssSubjects.getString("boxChoice")); } stmSQL = conData.createStatement(); rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'Ethnicity' ORDER BY boxChoice"); while(rssSubjects.next()) { cboEthnicity.addItem(rssSubjects.getString("boxChoice")); } stmSQL = conData.createStatement(); rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'Hearing' ORDER BY boxChoice"); while(rssSubjects.next()) { cboHearing.addItem(rssSubjects.getString("boxChoice")); } stmSQL = conData.createStatement(); rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'Sight' ORDER BY boxChoice"); while(rssSubjects.next()) { cboSight.addItem(rssSubjects.getString("boxChoice")); } stmSQL = conData.createStatement(); rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'Handedness' ORDER BY boxChoice"); while(rssSubjects.next()) { cboHandedness.addItem(rssSubjects.getString("boxChoice")); } stmSQL = conData.createStatement(); //stmSQL is global - have to get it ready rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'SubjectType'"); while(rssSubjects.next()) { cboType.addItem(rssSubjects.getString("boxChoice")); } rssSubjects = stmSQL.executeQuery("SELECT boxChoice FROM comboBoxes WHERE boxID = 'SubjectSubType'"); while(rssSubjects.next()) { cboSubType.addItem(rssSubjects.getString("boxChoice")); } } catch(java.sql.SQLException e) { e.printStackTrace(); } bolStarted = true; //set flag so know that the form is all loaded DisableGUI(); } private void FillCombos() { //fills cboSubject from the database String strNames = ""; String strTemp = ""; bolStarted = false; //so cboSubject won't try to update the screen cboSubject.removeAllItems(); try { stmSQL = conData.createStatement(); //stmSQL is global - have to get it ready ResultSet rssSubjects = stmSQL.executeQuery("SELECT subID, PPG, firstName, middleInitial, lastName FROM subject ORDER BY lastName, PPG"); cboSubject.addItem(""); while(rssSubjects.next()) { //fill up cboSubject w/subject names & PPG numbers strTemp = rssSubjects.getString("PPG"); if ( strTemp.equals("") == false ) { strNames = rssSubjects.getInt("subID") + ": " + strTemp; } else { strNames = rssSubjects.getInt("subID") + ": " + rssSubjects.getString("lastName") + ", " + rssSubjects.getString("firstName") + " " + rssSubjects.getString("middleInitial") + "."; } cboSubject.addItem(strNames); } } catch(java.sql.SQLException e) { e.printStackTrace(); } bolStarted = true; //routine is done } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; lblFirstName = new javax.swing.JLabel(); txtFirstName = new javax.swing.JTextField(); lblLastName = new javax.swing.JLabel(); txtLastName = new javax.swing.JTextField(); cboGender = new javax.swing.JComboBox(); cboGender.addItem("male"); cboGender.addItem("female"); lblYear = new javax.swing.JLabel(); cboEducation = new javax.swing.JComboBox(); lblEducation = new javax.swing.JLabel(); lblLesion = new javax.swing.JLabel(); cboLesion = new javax.swing.JComboBox(); cboLesion.addItem("yes"); cboLesion.addItem("no"); lblGender = new javax.swing.JLabel(); lblMonth = new javax.swing.JLabel(); lblMiddle = new javax.swing.JLabel(); txtMiddleInitial = new javax.swing.JTextField(); cboSubject = new javax.swing.JComboBox(); cmdAdd = new javax.swing.JButton(); cmdDelete = new javax.swing.JButton(); cmdClose = new javax.swing.JButton(); lblEthnicity = new javax.swing.JLabel(); cboEthnicity = new javax.swing.JComboBox(); lblHearing = new javax.swing.JLabel(); lblSight = new javax.swing.JLabel(); lblHandedness = new javax.swing.JLabel(); cboHearing = new javax.swing.JComboBox(); cboSight = new javax.swing.JComboBox(); cboHandedness = new javax.swing.JComboBox(); txtComment = new javax.swing.JTextField(); lblComment = new javax.swing.JLabel(); lblOr = new javax.swing.JLabel(); lblName = new javax.swing.JLabel(); txtPPG = new javax.swing.JTextField(); txtBirthDate = new javax.swing.JTextField(); cmdSave = new javax.swing.JButton(); jSeparator3 = new javax.swing.JSeparator(); lblType = new javax.swing.JLabel(); cboType = new javax.swing.JComboBox(); lblSubType = new javax.swing.JLabel(); cboSubType = new javax.swing.JComboBox(); cmdEdit = new javax.swing.JButton(); cmdCancel = new javax.swing.JButton(); getContentPane().setLayout(new java.awt.GridBagLayout()); setIconifiable(true); setMaximizable(true); setResizable(true); setTitle("Work With Subjects"); setMinimumSize(new java.awt.Dimension(790, 250)); setPreferredSize(new java.awt.Dimension(790, 250)); lblFirstName.setText("first"); lblFirstName.setToolTipText(""); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; getContentPane().add(lblFirstName, gridBagConstraints); txtFirstName.setMinimumSize(new java.awt.Dimension(130, 26)); txtFirstName.setPreferredSize(new java.awt.Dimension(130, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.ipady = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(txtFirstName, gridBagConstraints); lblLastName.setText("last"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 3; getContentPane().add(lblLastName, gridBagConstraints); txtLastName.setMinimumSize(new java.awt.Dimension(130, 21)); txtLastName.setPreferredSize(new java.awt.Dimension(130, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 2; gridBagConstraints.ipady = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; getContentPane().add(txtLastName, gridBagConstraints); cboGender.setMaximumRowCount(2); cboGender.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboGender, gridBagConstraints); lblYear.setText("(yyyy-mm-dd, or 0000-00-00 if unknown)"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(lblYear, gridBagConstraints); cboEducation.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboEducation, gridBagConstraints); lblEducation.setText("education:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(lblEducation, gridBagConstraints); lblLesion.setText("lesion: "); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(lblLesion, gridBagConstraints); cboLesion.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 5; gridBagConstraints.ipady = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboLesion, gridBagConstraints); lblGender.setText("gender:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; getContentPane().add(lblGender, gridBagConstraints); lblMonth.setText("birth date:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; getContentPane().add(lblMonth, gridBagConstraints); lblMiddle.setText("MI"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 3; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(lblMiddle, gridBagConstraints); txtMiddleInitial.setColumns(2); txtMiddleInitial.setMinimumSize(new java.awt.Dimension(11, 21)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 2; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(txtMiddleInitial, gridBagConstraints); cboSubject.setPreferredSize(new java.awt.Dimension(200, 20)); cboSubject.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cboSubjectItemStateChanged(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(cboSubject, gridBagConstraints); cmdAdd.setMnemonic('A'); cmdAdd.setText("Add New"); cmdAdd.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdAddActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2); getContentPane().add(cmdAdd, gridBagConstraints); cmdDelete.setMnemonic('D'); cmdDelete.setText("Delete"); cmdDelete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdDeleteActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 0; getContentPane().add(cmdDelete, gridBagConstraints); cmdClose.setMnemonic('C'); cmdClose.setText("Close"); cmdClose.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdCloseActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 6; gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0); getContentPane().add(cmdClose, gridBagConstraints); lblEthnicity.setText("ethnicity: "); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; getContentPane().add(lblEthnicity, gridBagConstraints); cboEthnicity.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboEthnicity, gridBagConstraints); lblHearing.setText("hearing: "); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; getContentPane().add(lblHearing, gridBagConstraints); lblSight.setText("sight: "); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; getContentPane().add(lblSight, gridBagConstraints); lblHandedness.setText("handedness: "); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(lblHandedness, gridBagConstraints); cboHearing.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 6; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboHearing, gridBagConstraints); cboSight.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 7; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboSight, gridBagConstraints); cboHandedness.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(cboHandedness, gridBagConstraints); txtComment.setMinimumSize(new java.awt.Dimension(100, 26)); txtComment.setPreferredSize(new java.awt.Dimension(620, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 8; gridBagConstraints.gridwidth = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 0); getContentPane().add(txtComment, gridBagConstraints); lblComment.setText("comment:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 8; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(lblComment, gridBagConstraints); lblOr.setText("OR enter ID code:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 4; gridBagConstraints.gridy = 2; getContentPane().add(lblOr, gridBagConstraints); lblName.setText("enter name:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; getContentPane().add(lblName, gridBagConstraints); txtPPG.setMinimumSize(new java.awt.Dimension(40, 26)); txtPPG.setPreferredSize(new java.awt.Dimension(80, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; getContentPane().add(txtPPG, gridBagConstraints); txtBirthDate.setText("0000-00-00"); txtBirthDate.setMinimumSize(new java.awt.Dimension(100, 20)); txtBirthDate.setPreferredSize(new java.awt.Dimension(130, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(txtBirthDate, gridBagConstraints); cmdSave.setMnemonic('S'); cmdSave.setText("Save"); cmdSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdSaveActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 5; gridBagConstraints.gridy = 0; getContentPane().add(cmdSave, gridBagConstraints); jSeparator3.setMinimumSize(new java.awt.Dimension(200, 3)); jSeparator3.setPreferredSize(new java.awt.Dimension(500, 3)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = 7; gridBagConstraints.insets = new java.awt.Insets(10, 0, 10, 0); getContentPane().add(jSeparator3, gridBagConstraints); lblType.setText("subject type:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; getContentPane().add(lblType, gridBagConstraints); cboType.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); getContentPane().add(cboType, gridBagConstraints); lblSubType.setText("subject subtype:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0); getContentPane().add(lblSubType, gridBagConstraints); cboSubType.setPreferredSize(new java.awt.Dimension(150, 19)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 0); getContentPane().add(cboSubType, gridBagConstraints); cmdEdit.setLabel("Edit"); cmdEdit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdEditActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 3; gridBagConstraints.gridy = 0; getContentPane().add(cmdEdit, gridBagConstraints); cmdCancel.setText("Cancel"); cmdCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cmdCancelActionPerformed(evt); } }); getContentPane().add(cmdCancel, new java.awt.GridBagConstraints()); pack(); }//GEN-END:initComponents private void cmdCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdCancelActionPerformed DisableGUI(); cboSubject.setSelectedIndex(0); ClearScreen(); }//GEN-LAST:event_cmdCancelActionPerformed private void cmdEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdEditActionPerformed //enable the GUI so can edit the information if (!((String)cboSubject.getSelectedItem()).equals("")) {EnableGUI(); } }//GEN-LAST:event_cmdEditActionPerformed private void cmdSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdSaveActionPerformed //add the new subject's info or do the edit, as needed String strFirstName = ""; String strLastName = ""; String strGender = ""; String strMiddle = ""; String strEducation = ""; String strSQL = ""; String strEthnicity = ""; String strBirth = ""; String strBirthDate = ""; String strLesion = ""; String strPPG = ""; String strSubID = ""; String strSight = ""; String strHearing = ""; String strHandedness = ""; String strComment = ""; String strTemp = ""; boolean bolAddingNew = false; //get the subject ID from the combo box strSight = (String)cboSubject.getSelectedItem(); if (strSight.equals("")) { bolAddingNew = true; } else { bolAddingNew = false; strSubID = strSight.substring(0, strSight.indexOf(":")); } //get the values from the user input and put into correct format strFirstName = txtFirstName.getText(); strLastName = txtLastName.getText(); strMiddle = txtMiddleInitial.getText(); strBirth = txtBirthDate.getText(); strGender = (String)cboGender.getSelectedItem(); strPPG = txtPPG.getText(); strEducation = (String)cboEducation.getSelectedItem(); strLesion = (String)cboLesion.getSelectedItem(); strEthnicity = (String)cboEthnicity.getSelectedItem(); strSight = (String)cboSight.getSelectedItem(); strHearing = (String)cboHearing.getSelectedItem(); strHandedness = (String)cboHandedness.getSelectedItem(); strComment = txtComment.getText(); //strHandComment = txtHandedness.getText(); if (strLesion.equals("yes") == true) { strLesion = "1"; } else { strLesion = "0"; } if (strGender.equals("female") == true) { strGender = "f"; } else { strGender = "m"; } //check for errors in the text boxes; show message box & exit if errors if(strFirstName.equals("") == true && strPPG.equals("") == true) { JOptionPane.showMessageDialog(null, "Please enter the subject's first name or a PPG identifier.", "Missing Data Error", JOptionPane.ERROR_MESSAGE); return; } if(strMiddle.equals("") == true && strPPG.equals("") == true) { JOptionPane.showMessageDialog(null, "Please enter the subject's middle initial or a PPG identifier.", "Missing Data Error", JOptionPane.ERROR_MESSAGE); return; } if(strMiddle.length() != 1 && strPPG.equals("") == true) { JOptionPane.showMessageDialog(null, "Please enter the subject's middle initial as one letter or ? if unknown.", "Missing Data Error", JOptionPane.ERROR_MESSAGE); return; } if(strLastName.equals("") == true && strPPG.equals("") == true) { JOptionPane.showMessageDialog(null, "Please enter the subject's last name or a PPG identifier.", "Missing Data Error", JOptionPane.ERROR_MESSAGE); return; } if(strPPG.equals("") == false && (strFirstName.equals("") == false | strMiddle.equals("") == false | strLastName.equals("") == false)) { JOptionPane.showMessageDialog(null, "Please enter the subject's name or a PPG identifier, not both.", "Data Error", JOptionPane.ERROR_MESSAGE); return; } if (strBirth.equals("?") == true) { strBirth = "0000-00-00"; } else if (SubjectData.CheckDate(strBirth, "the birth date field") == false) { return; } //add escape characters, if needed strComment = SubjectData.AddEscapeChars(strComment); if (bolAddingNew == true) { //make sql string to ADD a new row for a new subject strSQL = "INSERT INTO subject VALUES (NULL, '" + strPPG + "', '" + strFirstName + "', '" + strMiddle + "', '" + strLastName + "', '" + strGender + "', '" + strBirth + "', '" + strEducation + "', '" + strLesion + "', '" + strEthnicity + "', '" + strHearing + "', '" + strSight + "', '" + strHandedness + "', '" + (String)cboType.getSelectedItem() + "', '" + (String)cboSubType.getSelectedItem() + "', '" + strComment + "')"; } else { //updating an existing row in the database strSQL = "UPDATE subject SET PPG = '" + strPPG + "', firstName = '" + strFirstName + "', middleInitial = '" + strMiddle + "', lastName = '" + strLastName + "', gender = '" + strGender + "', birth = '" + strBirth + "', education = '" + strEducation + "', brainLesion = '" + strLesion + "', ethnicity = '" + strEthnicity + "', hearing = '" + strHearing + "', sight = '" + strSight + "', handedness = '" + strHandedness + "', subjectType='" + (String)cboType.getSelectedItem() + "', subjectSubType = '" + (String)cboSubType.getSelectedItem() + "', comment = '" + strComment + "' WHERE subID = '" + strSubID + "'"; } try { //put data into the database as a new row stmSQL = conData.createStatement(); stmSQL.executeUpdate(strSQL); } catch(java.sql.SQLException e) { e.printStackTrace(); } FillCombos(); //put the subject's names in the combo box since changed if (strPPG.equals("") == false) { strTemp = strSubID + ": " + strPPG; } //create the entry's text so can match cboSubject else { strTemp = strSubID + ": " + strLastName + ", " + strFirstName + " " + strMiddle + "."; } DisableGUI(); cboSubject.setSelectedIndex(0); ClearScreen(); }//GEN-LAST:event_cmdSaveActionPerformed private void cboSubjectItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cboSubjectItemStateChanged //show the information for the subject that was just selected String strTemp = ""; String strSubID = ""; boolean bolTemp = false; String strYear = ""; String strMonth = ""; if (bolStarted == true) { //flag is set to true after the form is completely loaded //load the highlighted subject's information on the screen strTemp = (String)cboSubject.getSelectedItem(); if (strTemp.equals("")) { DisableGUI(); ClearScreen(); return; } strSubID = strTemp.substring(0, strTemp.indexOf(":")); //ID is always the first part before the : try { //get all of the data from the database and put it up on the screen ResultSet rssSubjects = stmSQL.executeQuery("SELECT * FROM subject WHERE subID = " + strSubID); rssSubjects.next(); //move forward so can get the data out of the database txtPPG.setText(rssSubjects.getString("PPG")); txtFirstName.setText(rssSubjects.getString("firstName")); txtLastName.setText(rssSubjects.getString("lastName")); txtMiddleInitial.setText(rssSubjects.getString("middleInitial")); cboEthnicity.setSelectedItem(rssSubjects.getString("ethnicity")); cboHearing.setSelectedItem(rssSubjects.getString("hearing")); cboSight.setSelectedItem(rssSubjects.getString("sight")); cboHandedness.setSelectedItem(rssSubjects.getString("handedness")); txtComment.setText(rssSubjects.getString("comment")); txtBirthDate.setText(rssSubjects.getString("birth")); strTemp = rssSubjects.getString("gender"); if (strTemp.equals("f") == true) { cboGender.setSelectedItem("female"); } else { cboGender.setSelectedItem("male"); } cboEducation.setSelectedItem(rssSubjects.getString("education")); cboType.setSelectedItem(rssSubjects.getString("subjectType")); cboSubType.setSelectedItem(rssSubjects.getString("subjectSubType")); bolTemp = rssSubjects.getBoolean("brainLesion"); if (bolTemp == true) { cboLesion.setSelectedItem("yes"); } else { cboLesion.setSelectedItem("no"); } } catch(java.sql.SQLException e) { e.printStackTrace(); } DisableGUI(); } }//GEN-LAST:event_cboSubjectItemStateChanged private void cmdCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdCloseActionPerformed //close the frame try { this.setClosed(true); } catch(java.beans.PropertyVetoException e) { e.printStackTrace(); } }//GEN-LAST:event_cmdCloseActionPerformed private void cmdDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdDeleteActionPerformed //delete the session selected in cboSubject int intAnswer = 0; String strTemp = ""; String strSubID = ""; String strTemp2 = ""; String strTime = ""; String strMovie = ""; boolean bolMade = true; String strHour = ""; //check if a subject and session are selected and get the IDs strTemp = (String)cboSubject.getSelectedItem(); if (strTemp.equals("") == true) { return; } strSubID = strTemp.substring(0, strTemp.indexOf(":")); //ID is always the first part before the : //ask the user if they are sure they want to do the delete, exit if not intAnswer = JOptionPane.showConfirmDialog(null, "The subject " + strTemp + " will be deleted from the database. Are you sure you want to delete this subject?", "File Delete Confirm", JOptionPane.YES_NO_OPTION); if (intAnswer == JOptionPane.NO_OPTION) { return; } //look to see if there are any sessions for this subject in session, exit if so try { stmSQL = conData.createStatement(); //stmSQL & conData are global ResultSet rssSubjects = stmSQL.executeQuery("SELECT sessionID FROM sessionData WHERE subID = \"" + strSubID + "\""); if (rssSubjects.next() == true) { JOptionPane.showMessageDialog(null, "All movies and sessions for this subject must be deleted before the subject can be deleted. \nPlease close this screen and open the screen for working on session data first.", "Database Error", JOptionPane.ERROR_MESSAGE); return; } } catch(java.sql.SQLException e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, "There has been a database error.", "Serious Database Error", JOptionPane.ERROR_MESSAGE); return; } //delete the existing record from the subject table try { stmSQL = conData.createStatement(); //stmSQL & conData are global stmSQL.executeUpdate("DELETE FROM subject WHERE subID = \"" + strSubID + "\""); } catch(java.sql.SQLException e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, "There has been an error deleting the database entry.", "Database Deletion Error", JOptionPane.ERROR_MESSAGE); return; } FillCombos(); cboSubject.setSelectedIndex(0); ClearScreen(); DisableGUI(); }//GEN-LAST:event_cmdDeleteActionPerformed private void cmdAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmdAddActionPerformed //adjust GUI so can add a new subject to the database cboSubject.setSelectedIndex(0); ClearScreen(); //call sub to blank out & reset the subject info GUI EnableGUI(); }//GEN-LAST:event_cmdAddActionPerformed private void DisableGUI() { //set all of the text boxes, combo boxes, and labels to disabled. txtBirthDate.setEditable(false); txtComment.setEditable(false); txtFirstName.setEditable(false); txtLastName.setEditable(false); txtMiddleInitial.setEditable(false); txtPPG.setEditable(false); cboEducation.setEnabled(false); cboEthnicity.setEnabled(false); cboGender.setEnabled(false); cboHandedness.setEnabled(false); cboHearing.setEnabled(false); cboLesion.setEnabled(false); cboSight.setEnabled(false); cboSubType.setEnabled(false); cboType.setEnabled(false); cmdSave.setEnabled(false); cmdDelete.setEnabled(true); cmdAdd.setEnabled(true); cmdEdit.setEnabled(true); cboSubject.setEditable(true); //reverse of others } private void EnableGUI() { //set all of the text boxes, combo boxes, and labels to disabled. txtBirthDate.setEditable(true); txtComment.setEditable(true); txtFirstName.setEditable(true); txtLastName.setEditable(true); txtMiddleInitial.setEditable(true); txtPPG.setEditable(true); cboEducation.setEnabled(true); cboEthnicity.setEnabled(true); cboGender.setEnabled(true); cboHandedness.setEnabled(true); cboHearing.setEnabled(true); cboLesion.setEnabled(true); cboSight.setEnabled(true); cboSubType.setEnabled(true); cboType.setEnabled(true); cmdSave.setEnabled(true); cmdDelete.setEnabled(false); cmdAdd.setEnabled(false); cmdEdit.setEnabled(false); cboSubject.setEditable(false); //reverse of others } private void ClearScreen() { // sub blanks out the text-entry boxes txtFirstName.setText(""); txtLastName.setText(""); txtMiddleInitial.setText(""); txtComment.setText(""); cboGender.setSelectedIndex(0); txtPPG.setText(""); txtBirthDate.setText("0000-00-00"); cboEducation.setSelectedIndex(0); cboLesion.setSelectedIndex(0); cboEthnicity.setSelectedIndex(0); cboHandedness.setSelectedIndex(0); cboHearing.setSelectedIndex(0); cboSight.setSelectedIndex(0); cboType.setSelectedIndex(0); cboSubType.setSelectedIndex(0); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox cboEducation; private javax.swing.JComboBox cboEthnicity; private javax.swing.JComboBox cboGender; private javax.swing.JComboBox cboHandedness; private javax.swing.JComboBox cboHearing; private javax.swing.JComboBox cboLesion; private javax.swing.JComboBox cboSight; private javax.swing.JComboBox cboSubType; private javax.swing.JComboBox cboSubject; private javax.swing.JComboBox cboType; private javax.swing.JButton cmdAdd; private javax.swing.JButton cmdCancel; private javax.swing.JButton cmdClose; private javax.swing.JButton cmdDelete; private javax.swing.JButton cmdEdit; private javax.swing.JButton cmdSave; private javax.swing.JSeparator jSeparator3; private javax.swing.JLabel lblComment; private javax.swing.JLabel lblEducation; private javax.swing.JLabel lblEthnicity; private javax.swing.JLabel lblFirstName; private javax.swing.JLabel lblGender; private javax.swing.JLabel lblHandedness; private javax.swing.JLabel lblHearing; private javax.swing.JLabel lblLastName; private javax.swing.JLabel lblLesion; private javax.swing.JLabel lblMiddle; private javax.swing.JLabel lblMonth; private javax.swing.JLabel lblName; private javax.swing.JLabel lblOr; private javax.swing.JLabel lblSight; private javax.swing.JLabel lblSubType; private javax.swing.JLabel lblType; private javax.swing.JLabel lblYear; private javax.swing.JTextField txtBirthDate; private javax.swing.JTextField txtComment; private javax.swing.JTextField txtFirstName; private javax.swing.JTextField txtLastName; private javax.swing.JTextField txtMiddleInitial; private javax.swing.JTextField txtPPG; // End of variables declaration//GEN-END:variables }