Skip to content
Snippets Groups Projects
Commit 29460bc7 authored by Dennis Toth's avatar Dennis Toth
Browse files

Added modification option for student

parent 0a642643
No related branches found
No related tags found
No related merge requests found
......@@ -4,11 +4,10 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="ce56effb-683b-43e9-9335-7e3aa5d26c29" name="Changes" comment="added additional text">
<list default="true" id="ce56effb-683b-43e9-9335-7e3aa5d26c29" name="Changes" comment="Added modification option for courses of study">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/notenmanager.iml" beforeDir="false" afterPath="$PROJECT_DIR$/notenmanager.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/de/thdeg/grademanager/gui/CoursesOfStudyDetailsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/de/thdeg/grademanager/gui/CoursesOfStudyDetailsController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/de/thdeg/grademanager/gui/courses-of-study-details.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/de/thdeg/grademanager/gui/courses-of-study-details.fxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/de/thdeg/grademanager/gui/StudentDetailsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/de/thdeg/grademanager/gui/StudentDetailsController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/de/thdeg/grademanager/gui/student-details.fxml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/de/thdeg/grademanager/gui/student-details.fxml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -94,7 +93,14 @@
<option name="project" value="LOCAL" />
<updated>1655458541861</updated>
</task>
<option name="localTasksCounter" value="3" />
<task id="LOCAL-00003" summary="Added modification option for courses of study">
<created>1655475470355</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1655475470355</updated>
</task>
<option name="localTasksCounter" value="4" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
......@@ -123,6 +129,7 @@
<component name="VcsManagerConfiguration">
<MESSAGE value="fix db-table-names + fix db-column-names + fix module error" />
<MESSAGE value="big update:&#10;-add toString() for Course, Student and CoursesOfStudy&#10;-fix null-pointer-exception in detailControllers + SwitchWindowHelper&#10;-add CoursesOfStudy Column in Student&#10;-add find-Methods to JpaService&#10;-connect Gui to DB" />
<option name="LAST_COMMIT_MESSAGE" value="big update:&#10;-add toString() for Course, Student and CoursesOfStudy&#10;-fix null-pointer-exception in detailControllers + SwitchWindowHelper&#10;-add CoursesOfStudy Column in Student&#10;-add find-Methods to JpaService&#10;-connect Gui to DB" />
<MESSAGE value="Added modification option for courses of study" />
<option name="LAST_COMMIT_MESSAGE" value="Added modification option for courses of study" />
</component>
</project>
\ No newline at end of file
......@@ -3,17 +3,29 @@ package de.thdeg.grademanager.gui;
import de.thdeg.grademanager.JpaService;
import de.thdeg.grademanager.model.CoursesOfStudy;
import de.thdeg.grademanager.model.Student;
import de.thdeg.grademanager.model.enumeration.Gender;
import de.thdeg.grademanager.model.enumeration.Semester;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import javafx.scene.control.*;
import java.io.IOException;
import java.util.Optional;
import static de.thdeg.grademanager.gui.MainController.coursesOfStudyList;
public class StudentDetailsController {
@FXML
protected ComboBox<Gender> genderComboBox;
@FXML
protected ComboBox<Semester> semesterComboBox;
ObservableList<Gender> genderList = FXCollections.observableArrayList(Gender.values());
ObservableList<Semester> semesterList = FXCollections.observableArrayList(Semester.values());
private static Student student;
public static void setStudent(Student student) {
......@@ -24,8 +36,6 @@ public class StudentDetailsController {
@FXML
protected ComboBox<CoursesOfStudy> coursesOfStudyComboBox;
@FXML
protected TextField gender;
@FXML
protected TextField firstName;
@FXML
......@@ -38,9 +48,6 @@ public class StudentDetailsController {
@FXML
protected TextField coursesOfStudy;
@FXML
protected TextField semester;
@FXML
protected TextField studentID;
@FXML
......@@ -48,8 +55,12 @@ public class StudentDetailsController {
@FXML
protected void initialize() {
disableFields(true);
genderComboBox.setItems(genderList);
semesterComboBox.setItems(semesterList);
if (student != null) {
gender.setText(student.getGender().toString());
genderComboBox.setPromptText(student.getGender());
firstName.setText(student.getFirstName());
lastName.setText(student.getLastName());
placeOfResidence.setText(student.getPlaceOfResidence());
......@@ -57,13 +68,72 @@ public class StudentDetailsController {
if (student.getCoursesOfStudy() != null){
coursesOfStudy.setText(student.getCoursesOfStudy().getName());
}
semester.setText(Integer.toString(student.getSemester()));
semesterComboBox.setPromptText(Integer.toString(student.getSemester()));
officialEmail.setText(student.getOfficialEmail());
studentID.setText(Integer.toString(student.getId()));
coursesOfStudyComboBox.setItems(coursesOfStudyList);
}
}
protected void disableFields(boolean value) {
// Variables
firstName.setDisable(value);
lastName.setDisable(value);
placeOfResidence.setDisable(value);
birthPlace.setDisable(value);
officialEmail.setDisable(value);
// Buttons
saveButton.setDisable(value);
modifyButton.setDisable(!value);
// ComboBoxes
genderComboBox.setDisable(value);
semesterComboBox.setDisable(value);
}
@FXML
protected Button modifyButton;
@FXML
protected void onModifyButtonClick(ActionEvent event) {
disableFields(false);
}
@FXML
protected Button saveButton;
@FXML
protected void onSaveButtonClick(ActionEvent event) throws IOException {
if (!firstName.getText().isBlank() && !lastName.getText().isBlank() &&
!placeOfResidence.getText().isBlank() && !birthPlace.getText().isBlank() &&
!officialEmail.getText().isBlank()) {
if(genderComboBox.getValue() != null){
student.setGender(genderComboBox.getValue().getGender());
}
student.setFirstName(firstName.getText());
student.setLastName(lastName.getText());
student.setPlaceOfResidence(placeOfResidence.getText());
student.setBirthPlace(birthPlace.getText());
if(semesterComboBox.getValue() != null){
student.setSemester(semesterComboBox.getValue().getSemester());
}
student.setOfficialEmail(officialEmail.getText());
JpaService jpaService = JpaService.getInstance();
jpaService.runInTransaction(entityManager -> {entityManager.merge(student); return null;});
initialize();
disableFields(true);
} else {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Fehler");
alert.setHeaderText("Bitte alle Felder ausfüllen.");
Optional<ButtonType> result = alert.showAndWait();
}
}
@FXML
protected void assignCoursesOfStudy(ActionEvent event) {
if (coursesOfStudyComboBox.getValue() != null){
......
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ButtonBar?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.14-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.thdeg.grademanager.gui.StudentDetailsController">
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.thdeg.grademanager.gui.StudentDetailsController">
<top>
<VBox fillWidth="false" prefHeight="46.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<children>
......@@ -45,7 +53,7 @@
</font>
</Label>
<Region prefHeight="38.0" prefWidth="127.0" />
<TextField fx:id="gender" disable="true" prefHeight="26.0" prefWidth="280.0" />
<ComboBox fx:id="genderComboBox" prefHeight="26.0" prefWidth="278.0" />
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="38.0" prefWidth="600.0">
......@@ -132,7 +140,7 @@
</font>
</Label>
<Region prefHeight="26.0" prefWidth="141.0" />
<TextField fx:id="semester" disable="true" prefHeight="26.0" prefWidth="280.0" />
<ComboBox fx:id="semesterComboBox" prefHeight="26.0" prefWidth="278.0" />
</children>
</HBox>
<HBox alignment="CENTER" prefHeight="38.0" prefWidth="600.0">
......@@ -169,6 +177,13 @@
<Insets />
</opaqueInsets>
</HBox>
<HBox alignment="CENTER" prefHeight="45.0" prefWidth="468.0">
<children>
<Button fx:id="modifyButton" mnemonicParsing="false" onAction="#onModifyButtonClick" text="Bearbeiten" />
<Region prefHeight="40.0" prefWidth="55.0" />
<Button fx:id="saveButton" mnemonicParsing="false" onAction="#onSaveButtonClick" text="Speichern" />
</children>
</HBox>
</children>
</VBox>
</center>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment