/******************************* * Name: Huy Nguyen * * Lab #5 * * Fall 1998, ICS 52 * ********************************/ // ScheduleDialog.java -- ICS 52 homework #5 -- Fall, 1998 import java.awt.*; import java.awt.event.*; import java.util.*; import java.lang.Integer.*; import java.io.*; import SAO.*; public class ScheduleDialog extends Dialog { Label lblCourseNumber, lblCourseTitle, lblDept, lblQuarter, lblYear, lblGrade, lblUnit, lblList; TextField txtCourseTitle, txtCourseNumber, txtUnit, txtYear; Choice choiceQuarter, choiceDept, choiceGrade; Button btnAdd, btnRemove; Checkbox radioTaken, radioPlanned, radioTransfered; CheckboxGroup Group1; ListScrollPane scrollList; StudentSchedule schedule; EAFrame parentFrame; SAOCourseList courseList; public ScheduleDialog(EAFrame parentFrame) { super(parentFrame, "Edit Schedule Dialog", true); this.schedule = parentFrame.schedule; this.parentFrame = parentFrame; this.courseList = parentFrame.courseList; setLayout(null); setVisible(false); setSize(450,470); setResizable(false); setBackground(Color.lightGray); lblUnit = new Label("Unit:"); lblUnit.setBounds(204,144,30,20); add(lblUnit); txtUnit = new TextField(); txtUnit.setBounds(252,144,80,20); txtUnit.setVisible( false ); add(txtUnit); lblCourseNumber = new Label("Course No.:"); lblCourseNumber.setBounds(16,120,68,20); add(lblCourseNumber); lblCourseTitle = new Label("Course Title:",Label.RIGHT); lblCourseTitle.setBounds(12,72,72,20); add(lblCourseTitle); lblDept = new Label("Department:",Label.RIGHT); lblDept.setBounds(12,96,72,20); add(lblDept); lblQuarter = new Label("Quarter:"); lblQuarter.setBounds(192,96,60,20); add(lblQuarter); lblGrade = new Label("Grade:",Label.RIGHT); lblGrade.setBounds(36,144,48,20); add(lblGrade); txtCourseTitle = new TextField(17); txtCourseTitle.setBounds(96,72,236,20); txtCourseTitle.setVisible(false); add(txtCourseTitle); txtCourseNumber = new TextField(); txtCourseNumber.setBounds(96,120,72,20); add(txtCourseNumber); choiceGrade = new Choice(); Grade temp = new Grade("A"); choiceGrade.addItem(" "); // empty grade for planned or Taking course. String[] grades = temp.getGrades(); for(int i = 0; i2002 || year < 1995 ) { messageBox("Year must be from 1995 to 2002", true); return true; } return false; } int checkQuarter() { return choiceQuarter.getSelectedIndex(); } int checkUnit() { String units = txtUnit.getText(); int temp; try { temp = java.lang.Integer.parseInt(units); } catch (NumberFormatException e) { messageBox("Units must be an integer value",true); return -1; } if (temp <= 0) { messageBox("Units must be a positive integer",true); return -1; } return temp; } public void addCourse() { boolean passed = false; if (radioTransfered.getState() || radioTaken.getState() ) passed = true; boolean ICS = choiceDept.getSelectedItem().equals("ICS"); CourseInfo newCourse; ListedCourse temp; if(checkCourseID() || checkYear()) return; CourseId c= new CourseId(choiceDept.getSelectedItem(),txtCourseNumber.getText()); if ( schedule.indexOf( c ) >= 0 ) { messageBox("The same course already existed in the schedule. Please verify.",true); return; } Quarter q = new Quarter(checkQuarter(),java.lang.Integer.parseInt(txtYear.getText())); String grade = choiceGrade.getSelectedItem(); if( grade.equals(" ") && passed ) { messageBox("Grade is null. Please check if course is planned",true); return; } if ( !ICS && (txtCourseTitle.getText().equals(null) || txtUnit.getText().equals(null)) ) { messageBox("Either CourseTitle, Unit or Department is not correct. Please verify.",true); return; } if ( !ICS && checkUnit()< 0 ) { return; } else if ( ICS ) { temp = courseList.getCourse( c ); if ( temp == null) { messageBox("Course not found. Please check Department name or Course number", true); return; } } //---------------------// if(passed) { Grade g = new Grade(grade); newCourse = new CourseInfo( c, q, g, (radioTaken.getState()? CourseInfo.PASS : CourseInfo.TRANSFER) ); } else { newCourse = new CourseInfo( c, q, CourseInfo.PLAN ); } if( !ICS ) { newCourse.setTitle( txtCourseTitle.getText() ); newCourse.setUnits( checkUnit() ); } schedule.addCourse( newCourse ); schedule.modified = true; scrollList.setSchedule( schedule ); parentFrame.scrollList.setSchedule( schedule ); txtCourseTitle.setText(""); txtUnit.setText(""); } public void removeCourse() { int index = scrollList.getSelectedIndex(); schedule.removeCourse( index ); schedule.modified = true; scrollList.setSchedule( schedule ); parentFrame.scrollList.setSchedule( schedule ); parentFrame.setScrollList(scrollList); } class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { Object object = event.getSource(); if (object == btnAdd) addCourse(); else if ( object == btnRemove ) { Debug("are you here?"); removeCourse(); } else return; } } class ChoiceListener implements ItemListener { public void itemStateChanged( ItemEvent event ) { Object obj = event.getItem(); if (! obj.toString().equals("ICS")) { txtCourseTitle.setVisible(true); txtUnit.setVisible(true); } else { txtCourseTitle.setVisible(false); txtUnit.setVisible(false); } } } class RadioListener implements ItemListener { public void itemStateChanged( ItemEvent event ) { Object obj = event.getSource(); try { if (obj == radioPlanned ) choiceGrade.select(0); else choiceGrade.select(1); } catch (IllegalArgumentException e) { } } } class GradeListener implements ItemListener { public void itemStateChanged(ItemEvent event ) { if(choiceGrade.getSelectedItem().equals(" ")) radioPlanned.setState(true); else radioTaken.setState(true); } } public void messageBox(String mesg,boolean button) { Attention a = new Attention(parentFrame,true,mesg,button); a.show(); } public void Debug(String mesg) { System.out.println(mesg); } }