/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package interfaces; import io.parseXML; import java.awt.event.ActionListener; import java.io.File; import javax.swing.JOptionPane; import javax.swing.JTextField; import objects.MyCourse; /** * * @author li999 */ public class editCourse extends javax.swing.JPanel implements ActionListener { public SimpleMode parent; private int courseIndex; private MyCourse newCourse; private MyCourse oldCourse; private String newIdentifier; private String oldIdentifier; public editCourse(SimpleMode parent) { this.parent = parent; initComponents(); setup(); } private void setup(){ } private void loadCourseIndex() { for (int i = 0; i < parent.parent.courses.size(); i++) { if (parent.courseSelectedInEditMenu.equals(parent.parent.courses.get(i).getIdentifier())) { courseIndex = i; newCourse = parent.parent.courses.get(i); newIdentifier = newCourse.getIdentifier(); oldCourse = parent.parent.courses.get(i); oldIdentifier = oldCourse.getIdentifier(); loadCourseData(courseIndex); i = parent.parent.courses.size(); } } } private void loadCourseData(int i) { classNameTextField.setText(parent.parent.courses.get(i).getName()); courseIDTextField.setText(parent.parent.courses.get(i).getCourseID()); String str_courseNumber = String.valueOf(parent.parent.courses.get(i).getCourseNumber()); courseNumberTextField.setText(str_courseNumber); classSectionTextField.setText(parent.parent.courses.get(i).getSection()); semesterTextField.setText(parent.parent.courses.get(i).getSemester()); classBuildingTextField.setText(parent.parent.courses.get(i).getBuilding()); checkNull(classBuildingTextField); classRoomNumberTextField.setText(parent.parent.courses.get(i).getRoomID()); checkNull(classRoomNumberTextField); meetingTimeTextField.setText(parent.parent.courses.get(i).getMeetingTime()); checkNull(meetingTimeTextField); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { goBackButton = new javax.swing.JButton(); courseName = new javax.swing.JLabel(); courseID = new javax.swing.JLabel(); courseNumber = new javax.swing.JLabel(); classSection = new javax.swing.JLabel(); classBuilding = new javax.swing.JLabel(); classRoomNumber = new javax.swing.JLabel(); meetingTime = new javax.swing.JLabel(); semeter = new javax.swing.JLabel(); classNameTextField = new javax.swing.JTextField(); courseIDTextField = new javax.swing.JTextField(); courseNumberTextField = new javax.swing.JTextField(); classSectionTextField = new javax.swing.JTextField(); classBuildingTextField = new javax.swing.JTextField(); classRoomNumberTextField = new javax.swing.JTextField(); meetingTimeTextField = new javax.swing.JTextField(); semesterTextField = new javax.swing.JTextField(); saveButton = new javax.swing.JButton(); goBackButton.setFont(new java.awt.Font("Georgia", 0, 18)); // NOI18N goBackButton.setText("Go Back"); goBackButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { goBackButtonActionPerformed(evt); } }); setBorder(javax.swing.BorderFactory.createTitledBorder(null, parent.courseSelectedInEditMenu, javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Georgia", 0, 14))); // NOI18N courseName.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N courseName.setText("*Course Name:"); courseID.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N courseID.setText("*Course Prefix:"); courseNumber.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N courseNumber.setText("*Course Number:"); classSection.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N classSection.setText("*Course section:"); classBuilding.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N classBuilding.setText("Class Building:"); classRoomNumber.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N classRoomNumber.setText("Class room number:"); meetingTime.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N meetingTime.setText("Meeting Time:"); semeter.setFont(new java.awt.Font("Georgia", 0, 14)); // NOI18N semeter.setText("*Semester"); classNameTextField.setText(null); courseIDTextField.setText(null); courseNumberTextField.setText(null); classSectionTextField.setText(null); classBuildingTextField.setText(null); classRoomNumberTextField.setText(null); meetingTimeTextField.setText(null); semesterTextField.setText(null); saveButton.setFont(new java.awt.Font("Georgia", 0, 18)); // NOI18N saveButton.setText("Save"); saveButton.addActionListener(parent); saveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveButtonActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(courseName) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(semeter) .addComponent(courseNumber) .addComponent(classSection) .addComponent(classBuilding) .addComponent(classRoomNumber) .addComponent(meetingTime) .addComponent(courseID)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(classNameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 304, Short.MAX_VALUE) .addComponent(courseIDTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE) .addComponent(courseNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE) .addComponent(classSectionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE) .addComponent(classRoomNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)) .addGap(1, 1, 1)) .addGroup(layout.createSequentialGroup() .addGap(1, 1, 1) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(classBuildingTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE) .addComponent(semesterTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 304, Short.MAX_VALUE))) .addComponent(meetingTimeTextField, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)))) .addGap(10, 10, 10)) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(goBackButton) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(classNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(courseIDTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(courseID)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(courseNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(courseNumber)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(classSectionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(classSection)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(semeter) .addComponent(semesterTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(classBuilding) .addComponent(classBuildingTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(classRoomNumber) .addComponent(classRoomNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(meetingTime) .addComponent(meetingTimeTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addComponent(courseName)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(goBackButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))) ); }// </editor-fold>//GEN-END:initComponents public void actionPerformed(java.awt.event.ActionEvent evt) { parent.parent.setJMenuBar(null); setBorder(javax.swing.BorderFactory.createTitledBorder(null, parent.courseSelectedInEditMenu, javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Georgia", 0, 14))); // NOI18N loadCourseIndex(); } private void checkNull(JTextField text) { if (text.getText().equals("null")) { text.setText(""); } } private void goBackButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goBackButtonActionPerformed parent.parent.setContentPane(parent); parent.setPanelMenu(); parent.parent.pack(); }//GEN-LAST:event_goBackButtonActionPerformed private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed if (!parent.parent.addNewClass.textChecker(classNameTextField.getText(), courseName) || !parent.parent.addNewClass.textChecker(courseIDTextField.getText(), courseID) || !parent.parent.addNewClass.textChecker(courseNumberTextField.getText(), courseNumber) || !parent.parent.addNewClass.textChecker(classSectionTextField.getText(), classSection) || !parent.parent.addNewClass.textChecker(semesterTextField.getText(), semeter) || !parent.parent.addNewClass.integerChecker(courseNumberTextField.getText())) {}else { newIdentifier = courseIDTextField.getText() + courseNumberTextField.getText() + "-" + classSectionTextField.getText() + " " + semesterTextField.getText(); if (checkRepeatedCourse()) { newCourse.setName(classNameTextField.getText()); newCourse.setCourseID(courseIDTextField.getText()); int integer_courseNumber = Integer.parseInt(courseNumberTextField.getText()); newCourse.setCourseNumber(integer_courseNumber); newCourse.setSection(classSectionTextField.getText()); newCourse.setSemester(semesterTextField.getText()); newCourse.setBuilding(classBuildingTextField.getText()); newCourse.setRoomID(classRoomNumberTextField.getText()); newCourse.setMeetingTime(meetingTimeTextField.getText()); replaceTheOldFile(); parent.parent.courses.set(courseIndex, newCourse); parseXML.saveXML(parent.parent.courses.get(courseIndex)); parent.parent.setContentPane(parent); parent.setPanelMenu(); parent.parent.pack(); parent.setEditMenu(); parent.setRemoveMenu(); } else { //parent.parent.courses.set(courseIndex, oldCourse); JOptionPane.showMessageDialog(null, String.format("%33s", newIdentifier + " already exists."),"Error", JOptionPane.ERROR_MESSAGE); } } }//GEN-LAST:event_saveButtonActionPerformed private boolean checkRepeatedCourse() { for (int i = 0; i < parent.parent.courses.size(); i++) { if (newIdentifier.equals(parent.parent.courses.get(i).getIdentifier())) { if (!newIdentifier.equals(oldIdentifier)) { return false; } } } return true; } private void replaceTheOldFile() { String fileDir = "gradebooks" + File.separator + oldIdentifier + ".xml"; File desired = new File (fileDir); if (desired.exists()) desired.delete(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel classBuilding; public javax.swing.JTextField classBuildingTextField; public javax.swing.JTextField classNameTextField; private javax.swing.JLabel classRoomNumber; public javax.swing.JTextField classRoomNumberTextField; private javax.swing.JLabel classSection; public javax.swing.JTextField classSectionTextField; public javax.swing.JLabel courseID; public javax.swing.JTextField courseIDTextField; public javax.swing.JLabel courseName; public javax.swing.JLabel courseNumber; public javax.swing.JTextField courseNumberTextField; private javax.swing.JButton goBackButton; private javax.swing.JLabel meetingTime; public javax.swing.JTextField meetingTimeTextField; private javax.swing.JButton saveButton; public javax.swing.JTextField semesterTextField; private javax.swing.JLabel semeter; // End of variables declaration//GEN-END:variables }