public void initializeTimeTable() { for (Iterator<ClassRoom> roomsIterator = rooms.iterator(); roomsIterator.hasNext(); ) { ClassRoom room = roomsIterator.next(); if (room.isLaboratory()) { practicalRooms.add(room); } else { theoryRooms.add(room); } } for (Iterator<StudentGroups> studentGroupIterator = studentGroups.iterator(); studentGroupIterator.hasNext(); ) { StudentGroups studentGroup = studentGroupIterator.next(); if (studentGroup.isPractical()) { practicalStudentGroups.add(studentGroup); } else { theoryStudentGroups.add(studentGroup); } } rooms.clear(); // studentGroups.clear(); setTimeTable(practicalStudentGroups, practicalRooms, "practical"); setTimeTable(theoryStudentGroups, theoryRooms, "theory"); rooms.addAll(practicalRooms); rooms.addAll(theoryRooms); // studentGroups.addAll(practicalStudentGroups); // studentGroups.addAll(theoryStudentGroups); }
@Test public void testUnidirectionalManyToMany() { Session session = openSession(); Transaction tx = session.beginTransaction(); Student john = new Student("john", "John Doe"); Student kate = new Student("kate", "Kate Doe"); Student mario = new Student("mario", "Mario Rossi"); ClassRoom math = new ClassRoom(1L, "Math"); math.getStudents().add(john); math.getStudents().add(mario); ClassRoom english = new ClassRoom(2L, "English"); english.getStudents().add(kate); math.getStudents().add(mario); persist(session, math, english, john, mario, kate); tx.commit(); assertThat(getNumberOfEntities(sessionFactory)).isEqualTo(5); assertThat(getNumberOfAssociations(sessionFactory)).isEqualTo(expectedAssociationNumber()); session.clear(); delete(session, math, english, john, mario, kate); session.close(); checkCleanCache(); }
private void placeTheoryLecture(Lecture lecture, ArrayList<ClassRoom> rooms2) { // TODO Auto-generated method stub int size = lecture.getStudentGroup().getSize(); String dept = lecture.getStudentGroup().getDepartment(); boolean invalid = true; ClassRoom room = null; Collections.shuffle(rooms2); while (invalid) { room = getBestRoom(size, rooms2); if (room.getDepartment().equalsIgnoreCase(dept)) { invalid = false; Collections.shuffle(rooms2); } else { Collections.shuffle(rooms2); } } ArrayList<Day> weekdays = room.getWeek().getWeekDays(); Iterator<Day> daysIterator = weekdays.iterator(); while (daysIterator.hasNext()) { Day day = daysIterator.next(); ArrayList<TimeSlot> timeslots = day.getTimeSlot(); Iterator<TimeSlot> timeslotIterator = timeslots.iterator(); while (timeslotIterator.hasNext()) { TimeSlot lecture2 = timeslotIterator.next(); if (lecture2.getLecture() == null) { lecture2.setLecture(lecture); return; } } } }
@Override public String toString() { return "Student [stuname=" + stuname + ", age=" + age + ", stuaddress=" + stuaddress + ", classroomid=" + room.getClassroomid() + ", classroomname=" + room.getClassroomname() + "]"; }
private ClassRoom getBestRoom(int size, ArrayList<ClassRoom> rooms2) { // TODO Auto-generated method stub int delta = 1000; ClassRoom room = null; for (Iterator<ClassRoom> roomsIterator = rooms2.iterator(); roomsIterator.hasNext(); ) { ClassRoom tempRoom = roomsIterator.next(); if (!checkOccupiedRoom(tempRoom, rooms2)) { int tmp = Math.abs(size - tempRoom.getSize()); if (tmp < delta) { delta = tmp; room = tempRoom; } } } return room; }
private boolean checkOccupiedRoom(ClassRoom tempRoom, ArrayList<ClassRoom> rooms2) { // TODO Auto-generated method stub for (Iterator<ClassRoom> roomsIterator = rooms2.iterator(); roomsIterator.hasNext(); ) { ClassRoom room = roomsIterator.next(); if (room.equals(tempRoom)) { ArrayList<Day> weekdays = room.getWeek().getWeekDays(); Iterator<Day> daysIterator = weekdays.iterator(); while (daysIterator.hasNext()) { Day day = daysIterator.next(); ArrayList<TimeSlot> timeslots = day.getTimeSlot(); Iterator<TimeSlot> timeslotIterator = timeslots.iterator(); while (timeslotIterator.hasNext()) { TimeSlot lecture = timeslotIterator.next(); if (lecture.getLecture() == null) { return false; } } } return true; } } return false; }
/** * Handles buttons: - Adding/deleting students to be removed/added for the avoiding list - * Canceling/saving changes */ @Override public void actionPerformed(ActionEvent e) { String actioncommand = e.getActionCommand(); // TODO: New student button. if (actioncommand.equals("New Student")) { ArrayList<Student> options = new ArrayList<Student>(); for (Student student : this.window.currentClass.getStudents()) { options.add(student); } options.remove(this.student); this.student.avoid( (Student) JOptionPane.showInputDialog( this, "Select the student to avoid", "Student Avoiding", JOptionPane.PLAIN_MESSAGE, null, options.toArray(), null)); refreshHack(); } else if (actioncommand.equals("Delete Student")) { ArrayList<Student> toremove = new ArrayList<Student>(); for (int selectedRow : avoidingTable.getSelectedRows()) { for (Student possibleStudents : this.student.getAvoiding()) { if (Integer.toString(possibleStudents.getStudentID()) .equals(((String) avoidingTable.getModel().getValueAt(selectedRow, 0)))) { toremove.add(possibleStudents); } } } for (Student removedstudent : toremove) { this.student.getAvoiding().remove(removedstudent); } refreshHack(); } else if (actioncommand.equals("Cancel")) { this.setVisible(false); this.dispose(); } else if (actioncommand.equals("Save")) { this.student.setStudentID(Integer.parseInt(this.studentIDField.getText())); this.student.setFirstName(this.firstNameField.getText()); this.student.setLastName(this.lastNameField.getText()); this.student.setGender((String) this.genderSelection.getSelectedItem()); this.student.setRace((String) this.raceSelection.getSelectedItem()); /* * Handle assigned seating */ if (this.assignedSeatField.getText().matches("-?\\d+")) { int assignedSeat = Integer.parseInt(this.assignedSeatField.getText()) - 1; ClassRoom classRoom = window.getCurrentClass(); ArrayList<Section> sections = classRoom.getQuadrants(); for (Section section : sections) { for (int i = 0; i < section.getSize(); i++) { Desk desk = section.getDesk(i); if (desk.getOccupyingStudent() != null && desk.getOccupyingStudent() == this.student) { desk.empty(); desk.setEditable(true); } } } if (assignedSeat < 0 || assignedSeat >= 32) { JOptionPane.showMessageDialog( this, "Invalid Seat Number. \nLeave it blank if you don't want the student to be assigned a seat."); } else if (assignedSeat < 10) { Desk desk = sections.get(0).getDesk(assignedSeat); desk.setEditable(false); desk.occupy(this.student); } else if (assignedSeat < 22) { Desk desk = sections.get(1).getDesk(assignedSeat - 10); desk.setEditable(false); desk.occupy(this.student); } else if (assignedSeat < 32) { Desk desk = sections.get(2).getDesk(assignedSeat - 22); desk.setEditable(false); desk.occupy(this.student); } } else { ArrayList<Section> sections = this.window.getCurrentClass().getQuadrants(); for (Section section : sections) { for (int i = 0; i < section.getSize(); i++) { Desk desk = section.getDesk(i); if (desk.getOccupyingStudent() != null && desk.getOccupyingStudent().equals(this.student) && desk.isEditable() == false) { desk.empty(); desk.setEditable(true); } } } } for (Section section : window.currentClass.getQuadrants()) { for (int i = 0; i < section.getSize(); i++) { if (section.getDesk(i).isEditable() == true) { section.getDesk(i).empty(); } } } this.setEnabled(false); this.dispose(); } this.window.refresh(); }