2 Commits

Author SHA1 Message Date
bc4926aca8 kommentaros 2024-01-25 08:26:29 +01:00
7acd24e285 uuuhhhhhh 2024-01-24 11:44:01 +01:00
7 changed files with 158 additions and 98 deletions

3
.idea/misc.xml generated
View File

@@ -7,8 +7,9 @@
<option value="$PROJECT_DIR$/pom.xml" /> <option value="$PROJECT_DIR$/pom.xml" />
</list> </list>
</option> </option>
<option name="workspaceImportForciblyTurnedOn" value="true" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="21" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@@ -3,6 +3,8 @@ package Logik;
import java.util.ArrayList; import java.util.ArrayList;
public class Mahlzeit { public class Mahlzeit {
private int id;
private String name; private String name;
private float preis; private float preis;
private ArrayList<Zutat> zutaten; private ArrayList<Zutat> zutaten;
@@ -15,6 +17,22 @@ public class Mahlzeit {
zutaten = new ArrayList<>(); zutaten = new ArrayList<>();
} }
public Mahlzeit (int id, String name, float preis, String beschreibung) {
this.id = id;
this.name = name;
this.preis = preis;
this.beschreibung = beschreibung;
zutaten = new ArrayList<>();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() { public String getName() {
return name; return name;
} }
@@ -36,4 +54,6 @@ public class Mahlzeit {
return String.format("Name: %s, Preis: %g, Beschreibung: %s", name, preis, beschreibung); return String.format("Name: %s, Preis: %g, Beschreibung: %s", name, preis, beschreibung);
} }
} }

View File

@@ -371,4 +371,59 @@ public class RestApiClient implements IRestAPI{
} }
} }
public int getGerichtIdOnTag(String name, String datum){
URI apiUri = URI.create(String.format("%s/Tagesplan/getGerichtIdOnTag?name=%s&datum=%s", urlBase, name, 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());
JsonElement jsonElement = JsonParser.parseString(httpResponse.body());
JsonArray json = jsonElement.getAsJsonArray();
JsonObject o = json.get(0).getAsJsonObject();
return o.get("id").getAsInt();
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
public void deleteGericht(int id){
URI apiUri = URI.create(String.format("%s/Tagesplan/%d", urlBase, id));
System.out.println(apiUri);
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(apiUri)
.header("Content-Type", "application/json")
.DELETE()
.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("Delete Gericht: Response Body: " + httpResponse.body());
} catch (Exception e) {
e.printStackTrace();
}
}
} }

View File

@@ -1,16 +1,11 @@
package de.subway_surfers.vpr_app; package de.subway_surfers.vpr_app;
import RestAPISchnittstelle.IRestAPI;
import RestAPISchnittstelle.RestApiClient;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Accordion; import javafx.scene.control.Accordion;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
import javafx.scene.control.TitledPane; import javafx.scene.control.TitledPane;
import javafx.scene.layout.VBox;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -33,28 +28,23 @@ public class BestelluebersichtMitarbeiter {
accordion.setStyle("-fx-box-border: transparent;"); accordion.setStyle("-fx-box-border: transparent;");
for (String i : datum) { for (String s : datum) {
Accordion gerichtAkkordion = createGerichtAkkordion(); TitledPane datumUeberschrift = new TitledPane(s, createGerichtAkkordion());
TitledPane datumUeberschrift = new TitledPane(i, gerichtAkkordion);
datumUeberschrift.getStyleClass().add("titledPaneUeberschrift"); datumUeberschrift.getStyleClass().add("titledPaneUeberschrift");
datumUeberschrift.animatedProperty().set(false); datumUeberschrift.animatedProperty().set(false);
datumUeberschrift.setPadding(new Insets(0, 0, 15, 0)); datumUeberschrift.setPadding(new Insets(0, 0, 15, 0));
//TitledPane personen = new TitledPane("Person", createPersonenAccordion());
accordion.getPanes().add(datumUeberschrift); accordion.getPanes().add(datumUeberschrift);
//gerichtAkkordion.getPanes().add(personen);
} }
scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS); scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
} }
int anzahlGerichtA = 1; private Accordion createGerichtAkkordion() {
public Accordion createGerichtAkkordion() {
Accordion accordion = new Accordion(); Accordion accordion = new Accordion();
int anzahlGerichtA = 1;
int anzahlGerichtB = 15; int anzahlGerichtB = 15;
int anzahlGerichtC = 3; int anzahlGerichtC = 3;
int anzahlGerichtD = 2; int anzahlGerichtD = 2;
@@ -81,7 +71,6 @@ public class BestelluebersichtMitarbeiter {
TitledPane tp = new TitledPane(); TitledPane tp = new TitledPane();
tp.setText("GerichtB " + anzahlGerichtB + "-Mal " + preisGerichtB * anzahlGerichtB + ""); tp.setText("GerichtB " + anzahlGerichtB + "-Mal " + preisGerichtB * anzahlGerichtB + "");
accordion.getPanes().addAll(tp); accordion.getPanes().addAll(tp);
} }
if (anzahlGerichtC >= 1) { if (anzahlGerichtC >= 1) {
@@ -103,42 +92,14 @@ public class BestelluebersichtMitarbeiter {
} }
if(anzahlNachtischA >= 1){ if(anzahlNachtischA >= 1){
TitledPane tp = new TitledPane();
Label label2 = new Label("Hans Schwanz" + " für " + " Anja Arbeitslos"); tp.setText("NachtischB " + anzahlNachtischB + "-Mal " + preisNachtischB * anzahlNachtischB + "");
Label label3 = new Label("Drittes Label");
VBox vbox = new VBox(label2, label3);
vbox.setAlignment(Pos.CENTER_LEFT);
TitledPane tp = new TitledPane("NachtischB " + "-Mal " + preisNachtischB * anzahlGerichtB + "", vbox);
accordion.getPanes().addAll(tp); accordion.getPanes().addAll(tp);
} }
return accordion; return accordion;
} }
/*
public Accordion createPersonenAccordion() {
Accordion accordion1 = new Accordion();
for (int i = 0; i < 10; i++) {
String kind = "Kind";
String elternteil = "Max Heer";
Label label = new Label();
label.setText(elternteil + " für " + kind);
// Erstellen Sie eine TitledPane für jedes Label
TitledPane titledPane = new TitledPane("Kind Informationen", label);
// Fügen Sie die TitledPane zur Accordion hinzu
accordion1.getPanes().add(titledPane);
}
return accordion1;
}
*/
public void onAbmelden(ActionEvent event) { public void onAbmelden(ActionEvent event) {
VerwaltungApplication.abmelden(); VerwaltungApplication.abmelden();
} }

View File

@@ -3,6 +3,9 @@ package de.subway_surfers.vpr_app;
import Logik.Mahlzeit; import Logik.Mahlzeit;
import Logik.Tagesplan; import Logik.Tagesplan;
import RestAPISchnittstelle.RestApiClient; import RestAPISchnittstelle.RestApiClient;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import javafx.beans.value.ChangeListener; import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue; import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
@@ -23,6 +26,7 @@ import javafx.stage.Stage;
import java.net.http.WebSocket; import java.net.http.WebSocket;
import java.text.DateFormat; import java.text.DateFormat;
import java.time.LocalDate;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
@@ -41,52 +45,47 @@ public class EssensverwaltungMitarbeiterView {
private String date; private String date;
private String day; /**
* Initialize des Controllers.
private String month; * Setzt das Datum, holt die Gerichte ein und initialisiert die responsive grid.
* @author Samuel Wolff
private String year; */
private ChangeListener listener;
public void initialize(){ public void initialize(){
/* date = LocalDate.now().toString();
(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(); dateLabel.setText(date);
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));
initGrid(); initGrid();
initGerichte(); initGerichte();
} }
/**
* Methode beim klicken auf den Anmeldebutton. Meldet den User ab
* @param actionEvent
* @author Max Heer
*/
public void onAbmelden(ActionEvent actionEvent) { public void onAbmelden(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("login-view.fxml"); VerwaltungApplication.sceneWechseln("login-view.fxml");
} }
/**
* Methode beim klicken auf den Filter Button. Öffnet den Filter Dialog.
* @param actionEvent
* @author Sven Alteköster
*/
public void onFilter(ActionEvent actionEvent) { public void onFilter(ActionEvent actionEvent) {
Stage stage = new Stage(); Stage stage = new Stage();
VerwaltungApplication.sceneWechseln(stage, 450, 400, "inhaltsstoffe_filtern-view.fxml"); VerwaltungApplication.sceneWechseln(stage, 450, 400, "inhaltsstoffe_filtern-view.fxml");
} }
/**
* Methode beim klicken auf den hinzufügen Button. Öffnet den Dialog zum hinzufügen eines Gerichtes zum aktuellen Tag.
* @param actionEvent
* @author Sven Alteköster
*/
public void onHinzufuegen(ActionEvent actionEvent) { public void onHinzufuegen(ActionEvent actionEvent) {
Stage gerichterstellung = new Stage(); Stage gerichterstellung = new Stage();
@@ -99,6 +98,11 @@ public class EssensverwaltungMitarbeiterView {
gerichterstellung.minHeightProperty().set(530); gerichterstellung.minHeightProperty().set(530);
} }
/**
* Methode beim klicken auf den Zurück Button. Kehrt zum Startbildschirm zurück.
* @param actionEvent
* @author Max Heer
*/
public void onZurueck(ActionEvent actionEvent) { public void onZurueck(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml"); VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
} }
@@ -106,15 +110,16 @@ public class EssensverwaltungMitarbeiterView {
/** /**
* Methode bei Klick auf Pfeil links, ändert das Datum und gibt neue Gerichte auf die GUI aus. * Methode bei Klick auf Pfeil links, ändert das Datum und gibt neue Gerichte auf die GUI aus.
* @param actionEvent * @param actionEvent
* @author Samuel Wolff
*/ */
public void pfeilLinks(ActionEvent actionEvent) { public void pfeilLinks(ActionEvent actionEvent) {
tagesplan.getChildren().clear(); tagesplan.getChildren().clear();
day = String.valueOf(Integer.parseInt(day)-1); LocalDate datum = LocalDate.parse(date);
date = String.format("%s-%s-%s", year, month, day); datum = datum.minusDays(1);
date = datum.toString();
dateLabel.setText(String.format("%s.%s.%s", day, month, year)); dateLabel.setText(date);
initGerichte(); initGerichte();
@@ -123,15 +128,16 @@ public class EssensverwaltungMitarbeiterView {
/** /**
* Methode bei Klick auf Pfeil rechts, ändert das Datum und gibt neue Gerichte auf die GUI aus. * Methode bei Klick auf Pfeil rechts, ändert das Datum und gibt neue Gerichte auf die GUI aus.
* @param actionEvent * @param actionEvent
* @author Samuel Wolff
*/ */
public void pfeilRechts(ActionEvent actionEvent) { public void pfeilRechts(ActionEvent actionEvent) {
tagesplan.getChildren().clear(); tagesplan.getChildren().clear();
day = String.valueOf(Integer.parseInt(day)+1); LocalDate datum = LocalDate.parse(date);
date = String.format("%s-%s-%s", year, month, day); datum = datum.plusDays(1);
date = datum.toString();
dateLabel.setText(String.format("%s.%s.%s", day, month, year)); dateLabel.setText(date);
initGerichte(); initGerichte();
@@ -139,10 +145,12 @@ public class EssensverwaltungMitarbeiterView {
/** /**
* Initialisiert alle Gerichte des aktuellen Datums auf der Seite. * Initialisiert alle Gerichte des aktuellen Datums auf der Seite.
* @author Samuel Wolff
*/ */
private void initGerichte(){ private void initGerichte(){
tagesplan.getStyleClass().clear(); tagesplan.getStyleClass().clear();
tagesplan.getChildren().clear();
t = new RestApiClient().getGerichteOnTag(date); t = new RestApiClient().getGerichteOnTag(date);
@@ -183,6 +191,9 @@ public class EssensverwaltungMitarbeiterView {
tagesplan.getStyleClass().add("essensuebersicht_gridlines"); tagesplan.getStyleClass().add("essensuebersicht_gridlines");
} }
/**
* Initialisiert das responsive grid.
*/
public void initGrid(){ public void initGrid(){
for (int i = 0; i < tagesplan.getColumnCount(); i++) { for (int i = 0; i < tagesplan.getColumnCount(); i++) {
ColumnConstraints cc = new ColumnConstraints(); ColumnConstraints cc = new ColumnConstraints();
@@ -203,10 +214,24 @@ public class EssensverwaltungMitarbeiterView {
VerwaltungApplication.responsiveBreiteGrid(tagesplan); VerwaltungApplication.responsiveBreiteGrid(tagesplan);
} }
/**
* Methode beim klicken auf den Löschen Button eines Tagesplan Elementes
* @param a
*/
private void loeschenButtonKlick(ActionEvent a){ private void loeschenButtonKlick(ActionEvent a){
Button btn = (Button) a.getSource(); Button btn = (Button) a.getSource();
int col = GridPane.getColumnIndex(btn); int col = GridPane.getColumnIndex(btn);
Mahlzeit m = t.getGerichte().get(col);
RestApiClient cl = new RestApiClient();
int id = cl.getGerichtIdOnTag(t.getGerichte().get(col < 0 ? 0 : col).getName().replace(' ', '_'), date);
t.getGerichte().remove(col); t.getGerichte().remove(col);
System.out.println("Die Id lautet: " + id + col);
cl.delete("GibtsAm", id);
initGerichte(); initGerichte();
} }

View File

@@ -9,6 +9,7 @@ import javafx.scene.layout.GridPane;
import javafx.scene.text.TextAlignment; import javafx.scene.text.TextAlignment;
import java.text.DateFormat; import java.text.DateFormat;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
public class HauptmenueMitarbeiterView { public class HauptmenueMitarbeiterView {
@@ -34,14 +35,8 @@ public class HauptmenueMitarbeiterView {
*/ */
public void wochenuebersichtFuellen(){ public void wochenuebersichtFuellen(){
String dateanzeige; String dateanzeige;
DateFormat dateFormat = DateFormat.getDateInstance(); date = LocalDate.now().toString();
date = dateFormat.format(new Date()); dateanzeige = 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);
dateanzeige = String.format("%s.%s.%s",day,month,year);
Tagesplan t = new RestApiClient().getGerichteOnTag(date); Tagesplan t = new RestApiClient().getGerichteOnTag(date);
for(int i=0;i<5;i++){ for(int i=0;i<5;i++){
Label tag = new Label(); Label tag = new Label();
@@ -55,13 +50,19 @@ public class HauptmenueMitarbeiterView {
name.setPrefHeight(75); name.setPrefHeight(75);
name.setTextAlignment(TextAlignment.CENTER); name.setTextAlignment(TextAlignment.CENTER);
} }
day = String.valueOf(Integer.parseInt(day)+1); LocalDate datum = LocalDate.parse(date);
date = String.format("%s-%s-%s", year, month, day); datum = datum.plusDays(1);
dateanzeige = String.format("%s.%s.%s",day,month,year); date = datum.toString();
dateanzeige = date;
t = new RestApiClient().getGerichteOnTag(date); t = new RestApiClient().getGerichteOnTag(date);
} }
} }
/**
* Methode beim klicken auf den Anmeldebutton. Meldet den User ab
* @param actionEvent
* @author Samuel Wolff
*/
public void onAbmelden(ActionEvent actionEvent) { public void onAbmelden(ActionEvent actionEvent) {
VerwaltungApplication.abmelden(); VerwaltungApplication.abmelden();
} }

View File

@@ -52,9 +52,6 @@
</center> </center>
<bottom> <bottom>
<BorderPane styleClass="button-untenrechts"> <BorderPane styleClass="button-untenrechts">
<right>
<Button text="Bestätigen" defaultButton="true" styleClass=".button"/>
</right>
</BorderPane> </BorderPane>
</bottom> </bottom>
</BorderPane> </BorderPane>