samu_masken #16
@ -31,4 +31,9 @@ public class Mahlzeit {
|
|||||||
return beschreibung;
|
return beschreibung;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("Name: %s, Preis: %g, Beschreibung: %s", name, preis, beschreibung);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ public class Tagesplan {
|
|||||||
|
|
||||||
public Tagesplan(String datum) {
|
public Tagesplan(String datum) {
|
||||||
this.datum = datum;
|
this.datum = datum;
|
||||||
|
this.gerichte = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Mahlzeit> getGerichte() {
|
public ArrayList<Mahlzeit> getGerichte() {
|
||||||
|
@ -5,9 +5,12 @@ import java.net.http.HttpClient;
|
|||||||
import java.net.http.HttpRequest;
|
import java.net.http.HttpRequest;
|
||||||
import java.net.http.HttpResponse;
|
import java.net.http.HttpResponse;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import Logik.ElternAccount;
|
import Logik.ElternAccount;
|
||||||
import Logik.Kind;
|
import Logik.Kind;
|
||||||
|
import Logik.Mahlzeit;
|
||||||
|
import Logik.Tagesplan;
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -33,7 +36,10 @@ public class RestApiClient implements IRestAPI{
|
|||||||
RestApiClient client1 = new RestApiClient();
|
RestApiClient client1 = new RestApiClient();
|
||||||
|
|
||||||
|
|
||||||
System.out.println(client1.nextId("Benutzer"));
|
Tagesplan t = client1.getGerichteOnTag("2023-12-17");
|
||||||
|
|
||||||
|
for(Mahlzeit m : t.getGerichte())
|
||||||
|
System.out.println(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,7 +221,6 @@ public class RestApiClient implements IRestAPI{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int nextId(String controllerName){
|
public int nextId(String controllerName){
|
||||||
URI apiUri = URI.create(String.format("%s/%s/nextId", urlBase, controllerName));
|
URI apiUri = URI.create(String.format("%s/%s/nextId", urlBase, controllerName));
|
||||||
|
|
||||||
@ -245,4 +250,81 @@ public class RestApiClient implements IRestAPI{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean anmeldeVersuch(String credentials){
|
||||||
|
|
||||||
|
JsonObject json = gson.fromJson(credentials, JsonObject.class);
|
||||||
|
String benutzer = json.get("Benutzername").toString();
|
||||||
|
benutzer = benutzer.substring(1, benutzer.length()-1);
|
||||||
|
|
||||||
|
String passwort = json.get("passwort").toString();
|
||||||
|
passwort = passwort.substring(1, passwort.length()-1);
|
||||||
|
|
||||||
|
URI apiUri = URI.create(String.format("%s/Benutzer/anmeldeVersuch?Benutzername=%s&passwort=%s", urlBase, benutzer, passwort));
|
||||||
|
System.out.println(apiUri);
|
||||||
|
HttpRequest httpRequest = HttpRequest.newBuilder()
|
||||||
|
.uri(apiUri)
|
||||||
|
.header("Content-Type", "application/json")
|
||||||
|
.GET()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Send the request and get the response
|
||||||
|
HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
|
||||||
|
|
||||||
|
// Print the response status code and body
|
||||||
|
System.out.println("Status Code: " + httpResponse.statusCode());
|
||||||
|
System.out.println("Response Body: " + httpResponse.body());
|
||||||
|
if(httpResponse.body().equals("true"))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Tagesplan getGerichteOnTag(String datum){
|
||||||
|
|
||||||
|
URI apiUri = URI.create(String.format("%s/Tagesplan/getGerichteOnTag?datum=%s", urlBase, datum));
|
||||||
|
System.out.println(apiUri);
|
||||||
|
HttpRequest httpRequest = HttpRequest.newBuilder()
|
||||||
|
.uri(apiUri)
|
||||||
|
.header("Content-Type", "application/json")
|
||||||
|
.GET()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Send the request and get the response
|
||||||
|
HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
|
||||||
|
|
||||||
|
// Print the response status code and body
|
||||||
|
System.out.println("Status Code: " + httpResponse.statusCode());
|
||||||
|
System.out.println("Response Body: " + httpResponse.body());
|
||||||
|
|
||||||
|
Tagesplan t = new Tagesplan(datum);
|
||||||
|
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(httpResponse.body());
|
||||||
|
|
||||||
|
JsonArray json = jsonElement.getAsJsonArray();
|
||||||
|
|
||||||
|
for(int i = 0; i< json.size(); i++){
|
||||||
|
|
||||||
|
JsonObject o = json.get(i).getAsJsonObject();
|
||||||
|
String name = o.get("name").getAsString();
|
||||||
|
float preis = o.get("preis").getAsFloat();
|
||||||
|
String beschreibung = o.get("beschreibung").getAsString();
|
||||||
|
|
||||||
|
t.getGerichte().add(new Mahlzeit(name, preis, beschreibung));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return t;
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,18 @@
|
|||||||
package de.subway_surfers.vpr_app;
|
package de.subway_surfers.vpr_app;
|
||||||
|
|
||||||
|
import Logik.Mahlzeit;
|
||||||
|
import Logik.Tagesplan;
|
||||||
|
import RestAPISchnittstelle.RestApiClient;
|
||||||
|
import javafx.beans.value.ChangeListener;
|
||||||
|
import javafx.beans.value.ObservableValue;
|
||||||
|
import javafx.collections.FXCollections;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Control;
|
import javafx.scene.control.Control;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.layout.ColumnConstraints;
|
import javafx.scene.layout.ColumnConstraints;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.Priority;
|
import javafx.scene.layout.Priority;
|
||||||
@ -12,19 +20,74 @@ import javafx.scene.layout.RowConstraints;
|
|||||||
import javafx.stage.Modality;
|
import javafx.stage.Modality;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
import java.net.http.WebSocket;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import static java.time.LocalTime.now;
|
||||||
|
|
||||||
|
|
||||||
public class EssensverwaltungMitarbeiterView {
|
public class EssensverwaltungMitarbeiterView {
|
||||||
|
|
||||||
|
public Label g1Name;
|
||||||
|
public Label g2Name;
|
||||||
|
public Label g3Name;
|
||||||
|
public Label g4Name;
|
||||||
|
public Label g1Beschreibung;
|
||||||
|
public Label g2Beschreibung;
|
||||||
|
public Label g3Beschreibung;
|
||||||
|
public Label g4Beschreibung;
|
||||||
|
public Label dateLabel;
|
||||||
@FXML
|
@FXML
|
||||||
private GridPane tagesplan;
|
private GridPane tagesplan;
|
||||||
|
|
||||||
|
private Tagesplan t;
|
||||||
|
|
||||||
|
private String date;
|
||||||
|
|
||||||
|
private String day;
|
||||||
|
|
||||||
|
private String month;
|
||||||
|
|
||||||
|
private String year;
|
||||||
|
|
||||||
|
private ChangeListener listener;
|
||||||
|
|
||||||
public void initialize(){
|
public void initialize(){
|
||||||
|
|
||||||
|
/*
|
||||||
|
(obs,oldValue,newValue) -> {
|
||||||
|
final int zeile = 1;
|
||||||
|
for (Node n : tagesplan.getChildren()){
|
||||||
|
if(n instanceof Control && GridPane.getRowIndex(n) == zeile){
|
||||||
|
((Control) n).setPrefHeight(newValue.floatValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
DateFormat dateFormat = DateFormat.getDateInstance();
|
||||||
|
date = dateFormat.format(new Date());
|
||||||
|
date = date.replace('.', '-');
|
||||||
|
day = date.split("-")[0];
|
||||||
|
month = date.split("-")[1];
|
||||||
|
year = date.split("-")[2];
|
||||||
|
date = String.format("%s-%s-%s", year, month, day);
|
||||||
|
|
||||||
|
dateLabel.setText(String.format("%s.%s.%s", day, month, year));
|
||||||
|
|
||||||
|
|
||||||
|
initGerichte();
|
||||||
|
|
||||||
for (int i = 0; i < tagesplan.getColumnCount(); i++) {
|
for (int i = 0; i < tagesplan.getColumnCount(); i++) {
|
||||||
ColumnConstraints cc = new ColumnConstraints();
|
ColumnConstraints cc = new ColumnConstraints();
|
||||||
cc.setHgrow(Priority.ALWAYS);
|
cc.setHgrow(Priority.ALWAYS);
|
||||||
cc.setFillWidth(true);
|
cc.setFillWidth(true);
|
||||||
tagesplan.getColumnConstraints().add(cc);
|
tagesplan.getColumnConstraints().add(cc);
|
||||||
}
|
}
|
||||||
VerwaltungApplication.responsiveBreiteGrid(tagesplan);
|
|
||||||
|
|
||||||
tagesplan.heightProperty().addListener((obs,oldValue,newValue) -> {
|
tagesplan.heightProperty().addListener((obs,oldValue,newValue) -> {
|
||||||
final int zeile = 1;
|
final int zeile = 1;
|
||||||
@ -35,6 +98,9 @@ public class EssensverwaltungMitarbeiterView {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
VerwaltungApplication.responsiveBreiteGrid(tagesplan);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public void onAbmelden(ActionEvent actionEvent) {
|
public void onAbmelden(ActionEvent actionEvent) {
|
||||||
VerwaltungApplication.sceneWechseln("login-view.fxml");
|
VerwaltungApplication.sceneWechseln("login-view.fxml");
|
||||||
@ -61,4 +127,67 @@ public class EssensverwaltungMitarbeiterView {
|
|||||||
public void onZurueck(ActionEvent actionEvent) {
|
public void onZurueck(ActionEvent actionEvent) {
|
||||||
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
|
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void pfeilLinks(ActionEvent actionEvent) {
|
||||||
|
|
||||||
|
tagesplan.getChildren().clear();
|
||||||
|
|
||||||
|
day = String.valueOf(Integer.parseInt(day)-1);
|
||||||
|
date = String.format("%s-%s-%s", year, month, day);
|
||||||
|
|
||||||
|
dateLabel.setText(String.format("%s.%s.%s", day, month, year));
|
||||||
|
|
||||||
|
initGerichte();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void pfeilRechts(ActionEvent actionEvent) {
|
||||||
|
|
||||||
|
tagesplan.getChildren().clear();
|
||||||
|
|
||||||
|
day = String.valueOf(Integer.parseInt(day)+1);
|
||||||
|
date = String.format("%s-%s-%s", year, month, day);
|
||||||
|
|
||||||
|
dateLabel.setText(String.format("%s.%s.%s", day, month, year));
|
||||||
|
|
||||||
|
initGerichte();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initGerichte(){
|
||||||
|
|
||||||
|
tagesplan.getStyleClass().clear();
|
||||||
|
|
||||||
|
t = new RestApiClient().getGerichteOnTag(date);
|
||||||
|
|
||||||
|
if(!t.getGerichte().isEmpty()) {
|
||||||
|
for (int i = 0; i < t.getGerichte().size(); i++) {
|
||||||
|
Label name = new Label();
|
||||||
|
tagesplan.add(name, i, 0);
|
||||||
|
Label beschreibung = new Label();
|
||||||
|
beschreibung.setWrapText(true);
|
||||||
|
tagesplan.add(beschreibung, i, 1);
|
||||||
|
//Button loeschen = new Button("Löschen");
|
||||||
|
//tagesplan.add(loeschen, i ,2);
|
||||||
|
|
||||||
|
name.setText(t.getGerichte().get(i).getName());
|
||||||
|
beschreibung.setText(t.getGerichte().get(i).getBeschreibung());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Label label = new Label();
|
||||||
|
|
||||||
|
label.setText("Für diesen Tag sind keine Gerichte eingetragen");
|
||||||
|
tagesplan.add(label, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tagesplan.getStyleClass().add("essensuebersicht_gridlines");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,4 +3,7 @@ package de.subway_surfers.vpr_app;
|
|||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
|
|
||||||
public class LoginView {
|
public class LoginView {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,43 @@
|
|||||||
package de.subway_surfers.vpr_app;
|
package de.subway_surfers.vpr_app;
|
||||||
|
|
||||||
import Logik.Account;
|
|
||||||
import RestAPISchnittstelle.RestApiClient;
|
import RestAPISchnittstelle.RestApiClient;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Alert;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.control.Button;
|
|
||||||
import javafx.scene.control.Label;
|
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class VerwaltungController {
|
public class VerwaltungController {
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public PasswordField passwortTextfield;
|
||||||
|
@FXML
|
||||||
|
public TextField benutzernameTextfield;
|
||||||
|
|
||||||
public void initialize(){
|
public void initialize(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wird der Abmeldenbutton geklickt, wird der Nutzer angemeldet.
|
* Wird der Anmeldenbutton geklickt, wird der Nutzer angemeldet.
|
||||||
*/
|
*/
|
||||||
public void onAnmeldenClick(ActionEvent actionEvent) {
|
public void onAnmeldenClick(ActionEvent actionEvent) {
|
||||||
|
RestApiClient client = new RestApiClient();
|
||||||
|
|
||||||
|
String credentials = String.format("{\"Benutzername\" : \"%s\", \"passwort\" : \"%s\"}", benutzernameTextfield.getText(), passwortTextfield.getText());
|
||||||
|
if(client.anmeldeVersuch(credentials))
|
||||||
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
|
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
|
||||||
|
else {
|
||||||
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
|
alert.setContentText("Falsche Anmeldedaten");
|
||||||
|
alert.setHeaderText("Fehler!");
|
||||||
|
alert.showAndWait();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -34,21 +34,16 @@
|
|||||||
</left>
|
</left>
|
||||||
<right>
|
<right>
|
||||||
<HBox styleClass="test" spacing="10">
|
<HBox styleClass="test" spacing="10">
|
||||||
<Button styleClass="pfeil, links"/>
|
<Button styleClass="pfeil, links" onAction="#pfeilLinks"/>
|
||||||
<Label text="Montag DD.MM.YY"/>
|
<Label fx:id="dateLabel"/>
|
||||||
<Button styleClass="pfeil"/>
|
<Button styleClass="pfeil" onAction="#pfeilRechts"/>
|
||||||
</HBox>
|
</HBox>
|
||||||
</right>
|
</right>
|
||||||
</BorderPane>
|
</BorderPane>
|
||||||
</top>
|
</top>
|
||||||
<center>
|
<center>
|
||||||
<AnchorPane>
|
<AnchorPane>
|
||||||
<GridPane fx:id="tagesplan" AnchorPane.bottomAnchor="20" AnchorPane.rightAnchor="20" AnchorPane.leftAnchor="20" AnchorPane.topAnchor="20" styleClass="essensuebersicht_gridlines">
|
<GridPane fx:id="tagesplan" AnchorPane.bottomAnchor="20" AnchorPane.rightAnchor="20" AnchorPane.leftAnchor="20" AnchorPane.topAnchor="20" >
|
||||||
<Label text="GerichtName" GridPane.columnIndex="0" GridPane.rowIndex="0"/>
|
|
||||||
<Label GridPane.columnIndex="1" GridPane.rowIndex="0"/>
|
|
||||||
<Label GridPane.columnIndex="2" GridPane.rowIndex="0"/>
|
|
||||||
<Label GridPane.columnIndex="3" GridPane.rowIndex="0"/>
|
|
||||||
<Label GridPane.columnIndex="0" GridPane.rowIndex="1"/>
|
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
</center>
|
</center>
|
||||||
|
@ -19,9 +19,9 @@
|
|||||||
</HBox>
|
</HBox>
|
||||||
|
|
||||||
<Label text="Benutzername" GridPane.rowIndex="1" GridPane.columnIndex="0"/>
|
<Label text="Benutzername" GridPane.rowIndex="1" GridPane.columnIndex="0"/>
|
||||||
<TextField GridPane.rowIndex="1" GridPane.columnIndex="1"/>
|
<TextField fx:id="benutzernameTextfield" GridPane.rowIndex="1" GridPane.columnIndex="1"/>
|
||||||
<Label text="Passwort" GridPane.rowIndex="2" GridPane.columnIndex="0"/>
|
<Label text="Passwort" GridPane.rowIndex="2" GridPane.columnIndex="0"/>
|
||||||
<PasswordField GridPane.rowIndex="2" GridPane.columnIndex="1"/>
|
<PasswordField fx:id="passwortTextfield" GridPane.rowIndex="2" GridPane.columnIndex="1"/>
|
||||||
|
|
||||||
<CheckBox text="Kennwort merken" GridPane.rowIndex="3" GridPane.columnIndex="0"/>
|
<CheckBox text="Kennwort merken" GridPane.rowIndex="3" GridPane.columnIndex="0"/>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
|
Loading…
Reference in New Issue
Block a user