summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/notepadMinusMinus/model/Grade.java
blob: ad030657dc3c9ecbb53ca988dc8b05ec329eeb8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/**
 * 
 */
package de.fhswf.in.inf.se.notepadMinusMinus.model;

import java.math.BigDecimal;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;

import javafx.beans.Observable;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.util.Callback;

/**
 * TODO Add comment here
 *
 * @author $Author: $
 * @version $Revision: $, $Date: $ UTC
 */
@XmlRootElement(name = "grade")
public class Grade
{
   private static ObservableList<BigDecimal> gradeValues;

   private IntegerProperty semester = new SimpleIntegerProperty(1);

   private StringProperty modulename = new SimpleStringProperty(
         "Neues Modul");

   private IntegerProperty ects = new SimpleIntegerProperty(0);

   private ObjectProperty<BigDecimal> grade = new SimpleObjectProperty<>(
         new BigDecimal("0.0"));

   private IntegerProperty attempt = new SimpleIntegerProperty(1);

   public static Callback<Grade, Observable[]> extractor()
   {
      return (Grade grade) -> new Observable[] { grade.semesterProperty(),
            grade.modulenameProperty(), grade.ectsProperty(),
            grade.gradeProperty(), grade.attemptProperty() };
   }

   public final IntegerProperty semesterProperty()
   {
      return this.semester;
   }

   @XmlAttribute(name = "semester")
   public final int getSemester()
   {
      return this.semesterProperty().get();
   }

   public final void setSemester(final int semester)
   {
      this.semesterProperty().set(semester);
   }

   public final StringProperty modulenameProperty()
   {
      return this.modulename;
   }

   @XmlAttribute(name = "modulename", required = true)
   public final String getModulename()
   {
      return this.modulenameProperty().get();
   }

   public final void setModulename(final java.lang.String modulename)
   {
      this.modulenameProperty().set(modulename);
   }

   public final IntegerProperty ectsProperty()
   {
      return this.ects;
   }

   @XmlAttribute(name = "ects")
   public final int getEcts()
   {
      return this.ectsProperty().get();
   }

   public final void setEcts(final int ects)
   {
      this.ectsProperty().set(ects);
   }

   public final ObjectProperty<BigDecimal> gradeProperty()
   {
      return this.grade;
   }

   @XmlValue
   public final BigDecimal getGrade()
   {
      return this.gradeProperty().get();
   }

   public final void setGrade(final BigDecimal grade)
   {
      this.gradeProperty().set(grade);
   }

   public final IntegerProperty attemptProperty()
   {
      return this.attempt;
   }

   @XmlAttribute(name = "attempt")
   public final int getAttempt()
   {
      return this.attemptProperty().get();
   }

   public final void setAttempt(final int attempt)
   {
      this.attemptProperty().set(attempt);
   }

   public static final ObservableList<BigDecimal> gradeValuesProperty()
   {
      if (gradeValues == null)
      {
         gradeValues = FXCollections.observableArrayList();

         gradeValues.add(new BigDecimal("0.0"));
         gradeValues.add(new BigDecimal("1.0"));
         gradeValues.add(new BigDecimal("1.3"));
         gradeValues.add(new BigDecimal("1.5"));
         gradeValues.add(new BigDecimal("1.7"));
         gradeValues.add(new BigDecimal("2.0"));
         gradeValues.add(new BigDecimal("2.3"));
         gradeValues.add(new BigDecimal("2.5"));
         gradeValues.add(new BigDecimal("2.7"));
         gradeValues.add(new BigDecimal("3.0"));
         gradeValues.add(new BigDecimal("3.3"));
         gradeValues.add(new BigDecimal("3.5"));
         gradeValues.add(new BigDecimal("3.7"));
         gradeValues.add(new BigDecimal("4.0"));
      }

      return FXCollections.unmodifiableObservableList(gradeValues);
   }
}