Example #1
1
 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();
  }
Example #3
0
 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()
       + "]";
 }
Example #5
0
 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;
 }
Example #6
0
 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();
  }