Ejemplo n.º 1
0
  /**
   * Luo paramatrien pohjalta uusi tai tallenna vanha arvosana tietorakenteeseen.
   *
   * @param unit Yksikkö, joka tallennetaan.
   * @param exam Koe, johon arvosana kuuluu.
   * @param gradeNum Arvosana numerona.
   * @param student Oppilas, joka arvosanaan liittyy.
   * @return True, jos tallennettiin, muute false.
   */
  public boolean saveGrade(Grade unit, Exam exam, String gradeNum, Student student) {
    boolean replace = false;
    if (unit.getRef() != null) {
      if (!confirmSave()) {
        return false;
      }
      replace = true;
    }
    Grade edit = unit;
    if (replace) {
      edit = getEditable(edit);
    }
    try {
      edit.parseField(FN.GRADE_GRADE, gradeNum);
      edit.setField(FN.GRADE_STUDENT_REF, student.getRef());
      edit.setField(FN.GRADE_EXAM_REF, exam.getRef());
    } catch (ParseException e) {
      showParseError(e);
      return false;
    }
    if (replace) {
      manager.remove(unit);
    }
    manager.add(edit);

    finishSave();

    return true;
  }
Ejemplo n.º 2
0
  /**
   * Luo paramatrien pohjalta uusi tai tallenna vanha oppilas tietorakenteeseen.
   *
   * @param unit Yksikkö, joka tallennetaan.
   * @param first Etunimet.
   * @param last Sukunimi.
   * @param id Hetu.
   * @return True, jos tallennettiin, muute false.
   */
  public boolean saveStudent(Student unit, String first, String last, String id) {
    boolean replace = false;
    if (unit.getRef() != null) {
      if (!confirmSave()) {
        return false;
      }
      replace = true;
    }
    Student edit = unit;
    if (replace) {
      edit = getEditable(edit);
    }
    try {
      edit.parseField(FN.STUDENT_FIRSTNAME, first);
      edit.parseField(FN.STUDENT_LASTNAME, last);
      edit.parseField(FN.STUDENT_ID, id);
    } catch (ParseException e) {
      showParseError(e);
      return false;
    }
    if (replace) {
      manager.remove(unit);
    }
    manager.add(edit);

    finishSave();

    return true;
  }
Ejemplo n.º 3
0
  /**
   * @param exam Haluttu koe.
   * @return Tulos-taulukon malli, jossa on kaikki tietorakenteen parametreja osittain vastaavat
   *     yksiköt.
   */
  public DataTableModel<CombinedUnit> getGradeTableModel(Exam exam) {
    FN[] fields = {FN.STUDENT_FIRSTNAME, FN.STUDENT_LASTNAME, FN.STUDENT_ID, FN.GRADE_GRADE};
    Ref ref = exam.getRef();
    List<Grade> grades = manager.getGrades(ref, FN.GRADE_EXAM_REF);
    List<CombinedUnit> gradesAndStudents = manager.joinRefs(grades, FN.GRADE_STUDENT_REF);
    String[] fieldNames = {"etunimi", "sukunimi", "henkilötunnus", "arvosana"};

    return new DataTableModel<>(gradesAndStudents, fields, fieldNames);
  }
Ejemplo n.º 4
0
 /**
  * @param selectedSubject Haluttu aine.
  * @param date Haluttu pvm.
  * @return Koe-taulukon malli, jossa on kaikki tietorakenteen parametreja osittain vastaavat
  *     yksiköt.
  */
 public DataTableModel<CombinedUnit> getExamTableModel(Subject selectedSubject, String date) {
   FN[] fields = {FN.SUBJECT_NAME, FN.EXAM_DATE};
   String[] fieldNames = {"aine", "päivämäärä"};
   String subjectId;
   if (selectedSubject == null) {
     subjectId = "";
   } else {
     subjectId = String.valueOf(selectedSubject.getRef());
   }
   String[] search = {subjectId, date};
   List<Exam> exams = manager.searchExams(search, new FN[] {FN.EXAM_SUBJECT_REF, FN.EXAM_DATE});
   List<CombinedUnit> data = manager.joinRefs(exams, FN.EXAM_SUBJECT_REF);
   DataTableModel<CombinedUnit> model = new DataTableModel<>(data, fields, fieldNames);
   return model;
 }
Ejemplo n.º 5
0
 /** @return Aine-valitsimen malli, jossa on kaikki tietorakenteen aineet. */
 public DataComboBoxModel<Subject> getSubjectModel() {
   List<Subject> subjects = manager.getSubjects();
   Object[] arr = {"Valitse aine..."};
   Object[] temp = subjects.toArray();
   Object[] objects = Taulukot.combine(arr, temp);
   return new DataComboBoxModel<>(objects);
 }
Ejemplo n.º 6
0
 /**
  * Poista arvosana.
  *
  * @param unit Poistettava arvosana.
  * @return True, jos poistettiin, muuten false.
  */
 public boolean remove(Grade unit) {
   Ref ref = unit.getRef();
   if (confirmRemove()) {
     manager.poistaTulos(ref);
     notifySource();
     return true;
   }
   return false;
 }
Ejemplo n.º 7
0
 /**
  * Poista oppilas.
  *
  * @param unit Poistettava oppilas.
  * @return True, jos poistettiin, muuten false.
  */
 public boolean remove(Student unit) {
   Ref ref = unit.getRef();
   if (confirmRemove()) {
     manager.poistaOpiskelija(ref);
     notifySource();
     return true;
   }
   return false;
 }
Ejemplo n.º 8
0
 /**
  * @param wholeName Haluttu kokonimi järjestyksessä etunimet-sukunimi tai sukunimi-etunimet.
  * @param personalId Haluttu hetu.
  * @return Oppilas-taulukon malli, jossa on kaikki tietorakenteen parametreja osittain vastaavat
  *     yksiköt.
  */
 public DataTableModel<Student> getStudentTableModel(String wholeName, String personalId) {
   FN[] fields = {FN.STUDENT_FIRSTNAME, FN.STUDENT_LASTNAME, FN.STUDENT_ID};
   String[] fieldNames = {"etunimi", "sukunimi", "henkilötunnus"};
   List<Student> studentsMatchingId = manager.searchStudents(personalId, FN.STUDENT_ID);
   List<Student> students =
       Students.filterByProperty(studentsMatchingId, wholeName, FN.STUDENT_WHOLENAME);
   DataTableModel<Student> model = new DataTableModel<>(students, fields, fieldNames);
   return model;
 }
Ejemplo n.º 9
0
  /**
   * Luo paramatrien pohjalta uusi tai tallenna vanha koe tietorakenteeseen.
   *
   * @param unit Yksikkö, joka tallennetaan.
   * @param date Pvm.
   * @param subject Aine.
   * @return True, jos tallennettiin, muute false.
   */
  public boolean saveExam(Exam unit, String date, String subject) {
    boolean replace = false;
    if (unit.getRef() != null) {
      if (!confirmSave()) {
        return false;
      }
      replace = true;
    }
    Exam edit = unit;
    if (replace) {
      edit = getEditable(edit);
    }
    try {
      edit.parseField(FN.EXAM_DATE, date);

      if (subject != null) {
        List<Subject> match = manager.getSubjects(subject, FN.SUBJECT_NAME);
        Subject s;
        if (match.size() < 1) {
          s = new Subject();
          s.parseField(FN.SUBJECT_NAME, subject);
          manager.add(s);
        } else {
          s = match.get(0);
        }
        Ref subjectRef = s.getRef();

        edit.setField(FN.EXAM_SUBJECT_REF, subjectRef);
      }
    } catch (ParseException e) {
      showParseError(e);
      return false;
    }
    if (replace) {
      manager.remove(unit);
    }
    manager.add(edit);

    finishSave();

    return true;
  }
Ejemplo n.º 10
0
 /** Tallenna datakansioon. Raportoi virheet dialogilla. */
 public void saveToStorage() {
   try {
     manager.tallenna();
   } catch (StorageException e) {
     JOptionPane.showMessageDialog(
         null,
         "Tallentaminen ei onnistunut!" + Constants.NL + "Virheen syy: " + e.getMessage(),
         "Virhe tallennettaessa",
         JOptionPane.ERROR_MESSAGE);
     e.printStackTrace();
   }
 }
Ejemplo n.º 11
0
 /**
  * Tallenna datakansio (dialogissa, jos 1. tallennus).
  *
  * @return Tallennettu kansio, null jos ei mitään.
  */
 public File saveCurrentDir() {
   File current = manager.getDirectory();
   if (current == null) {
     if (fc.showSaveDialog(null) != JFileChooser.APPROVE_OPTION) {
       return null;
     }
     File dir = getFileDialogSelection();
     saveToStorage(dir);
     current = dir;
   } else {
     saveToStorage();
   }
   return current;
 }
Ejemplo n.º 12
0
 /**
  * Lue datakansio. Raportoi virheet dialogilla.
  *
  * @param file Luettava kansio.
  */
 public void read(File file) {
   try {
     manager.lue(file);
   } catch (StorageException e) {
     JOptionPane.showMessageDialog(
         null,
         "Kansion lukeminen ei onnistunut! Tarkista, että olet valinnut oikean kansion."
             + Constants.NL
             + "Virheen syy: "
             + e.getMessage(),
         "Virhe luettaessa",
         JOptionPane.ERROR_MESSAGE);
     e.printStackTrace();
   }
 }
Ejemplo n.º 13
0
 /**
  * Luo uusi datakansio. Vahvistaa ei-tyhjään kansioon tallentamisen dialogilla. Raportoi virheet
  * dialogilla.
  *
  * @param file Luotava kansio.
  */
 public void saveNew(File file) {
   if (file.isDirectory() && file.listFiles().length > 0) {
     int answer =
         JOptionPane.showConfirmDialog(
             null,
             "Kansio sisältää jo tiedostoja. Jos jatkat, niiden yli kirjoitetaan. Jatketaanko?",
             "Jatketaanko?",
             JOptionPane.YES_NO_OPTION);
     if (answer == JOptionPane.NO_OPTION) {
       return;
     }
   }
   try {
     manager.tallennaUusi(file);
   } catch (StorageException e) {
     JOptionPane.showMessageDialog(
         null,
         "Tallentaminen ei onnistunut!" + Constants.NL + "Virheen syy: " + e.getMessage(),
         "Virhe tallennettaessa",
         JOptionPane.ERROR_MESSAGE);
     e.printStackTrace();
   }
 }
Ejemplo n.º 14
0
 /** @return Kaikki tietorakenteen aineet. */
 public List<Subject> getSubjects() {
   return manager.getSubjects();
 }
Ejemplo n.º 15
0
 /**
  * Selvitä viitteen kohde.
  *
  * @param ref viite
  * @return Yksikkö, johon viite viittaa.
  */
 public IUnit getRefTarget(Ref ref) {
   return manager.getRefTarget(ref);
 }