Compare commits

..

9 Commits

9 changed files with 216 additions and 34 deletions

3
.idea/misc.xml generated
View File

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

View File

@ -9,4 +9,10 @@ public class Zutat {
public String getName(){
return this.name;
}
@Override
public String toString() {
return name;
}
}

View File

@ -1,10 +1,12 @@
package RestAPISchnittstelle;
import java.net.ConnectException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.ArrayList;
import Logik.ElternAccount;
@ -12,6 +14,7 @@ import Logik.Kind;
import Logik.Mahlzeit;
import Logik.Tagesplan;
import com.google.gson.*;
import javafx.scene.control.Alert;
/**
* noch nicht getestet
@ -22,6 +25,8 @@ public class RestApiClient implements IRestAPI{
private final String urlBase = "https://pbg2h22awo.web.pb.bib.de/VPR_Schnittstelle/VPR_Schnittstelle/restAPI.php";
private final int timeout = 10;
private final HttpClient client;
private final Gson gson;
@ -54,6 +59,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/%s", urlBase, controllerName));
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.GET()
.build();
@ -66,7 +72,14 @@ public class RestApiClient implements IRestAPI{
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
return httpResponse.body();
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return null;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
@ -83,6 +96,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/%s/%s", urlBase, controllerName, id));
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.GET()
.build();
@ -97,7 +111,14 @@ public class RestApiClient implements IRestAPI{
return httpResponse.body();
//System.out.println("Response Body: " + test);
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return null;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
@ -115,6 +136,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/%s?%s&%s", urlBase, controllerName, id, bezahlt));
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.GET()
.build();
@ -127,7 +149,14 @@ public class RestApiClient implements IRestAPI{
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
return httpResponse.body();
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return null;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
@ -143,6 +172,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/%s?%s", urlBase, controllerName, ende));
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.GET()
.build();
@ -157,7 +187,14 @@ public class RestApiClient implements IRestAPI{
return httpResponse.body();
//System.out.println("Response Body: " + test);
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return null;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
@ -176,6 +213,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/%s/%s", urlBase,controllerName, id));
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.header("Content-Type", "application/json")
.PUT(HttpRequest.BodyPublishers.ofString(jsonData, StandardCharsets.UTF_8))
@ -188,7 +226,13 @@ public class RestApiClient implements IRestAPI{
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
}
catch (Exception e) {
e.printStackTrace();
}
}
@ -206,6 +250,7 @@ public class RestApiClient implements IRestAPI{
System.out.println(apiUri);
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonData, StandardCharsets.UTF_8))
@ -218,7 +263,13 @@ public class RestApiClient implements IRestAPI{
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
}
catch (Exception e) {
e.printStackTrace();
}
}
@ -236,6 +287,7 @@ public class RestApiClient implements IRestAPI{
System.out.println(apiUri);
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.header("Content-Type", "application/json")
.DELETE()
@ -248,7 +300,13 @@ public class RestApiClient implements IRestAPI{
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
}
catch (Exception e) {
e.printStackTrace();
}
}
@ -257,6 +315,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/%s/nextId", urlBase, controllerName));
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.GET()
.build();
@ -276,7 +335,14 @@ public class RestApiClient implements IRestAPI{
return json.get("auto_increment").getAsInt();
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return -1;
}
catch (Exception e) {
e.printStackTrace();
return -1;
}
@ -300,6 +366,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/Benutzer/anmeldeVersuch?Benutzername=%s&passwort=%s", urlBase, benutzer, passwort));
System.out.println(apiUri);
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.header("Content-Type", "application/json")
.GET()
@ -314,10 +381,25 @@ public class RestApiClient implements IRestAPI{
System.out.println("Response Body: " + httpResponse.body());
if(httpResponse.body().equals("true"))
return true;
else
else{
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Falsche Anmeldedaten");
alert.setHeaderText("Fehler!");
alert.showAndWait();
return false;
} catch (Exception e) {
}
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return false;
}
catch (Exception e) {
e.printStackTrace();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Ein Uwuwarteter Fehler ist aufgetreten!");
alert.showAndWait();
return false;
}
}
@ -333,6 +415,7 @@ public class RestApiClient implements IRestAPI{
URI apiUri = URI.create(String.format("%s/Tagesplan/getGerichteOnTag?datum=%s", urlBase, datum));
System.out.println(apiUri);
HttpRequest httpRequest = HttpRequest.newBuilder()
.timeout(Duration.ofSeconds(timeout))
.uri(apiUri)
.header("Content-Type", "application/json")
.GET()
@ -365,7 +448,14 @@ public class RestApiClient implements IRestAPI{
return t;
} catch (Exception e) {
}
catch(ConnectException conex){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!");
alert.showAndWait();
return null;
}
catch (Exception e) {
e.printStackTrace();
return null;
}

View File

@ -1,11 +1,16 @@
package de.subway_surfers.vpr_app;
import RestAPISchnittstelle.IRestAPI;
import RestAPISchnittstelle.RestApiClient;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Accordion;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.VBox;
import java.util.ArrayList;
import java.util.List;
@ -28,23 +33,28 @@ public class BestelluebersichtMitarbeiter {
accordion.setStyle("-fx-box-border: transparent;");
for (String s : datum) {
TitledPane datumUeberschrift = new TitledPane(s, createGerichtAkkordion());
for (String i : datum) {
Accordion gerichtAkkordion = createGerichtAkkordion();
TitledPane datumUeberschrift = new TitledPane(i, gerichtAkkordion);
datumUeberschrift.getStyleClass().add("titledPaneUeberschrift");
datumUeberschrift.animatedProperty().set(false);
datumUeberschrift.setPadding(new Insets(0, 0, 15, 0));
//TitledPane personen = new TitledPane("Person", createPersonenAccordion());
accordion.getPanes().add(datumUeberschrift);
//gerichtAkkordion.getPanes().add(personen);
}
scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
}
private Accordion createGerichtAkkordion() {
Accordion accordion = new Accordion();
int anzahlGerichtA = 1;
public Accordion createGerichtAkkordion() {
Accordion accordion = new Accordion();
int anzahlGerichtB = 15;
int anzahlGerichtC = 3;
int anzahlGerichtD = 2;
@ -71,6 +81,7 @@ public class BestelluebersichtMitarbeiter {
TitledPane tp = new TitledPane();
tp.setText("GerichtB " + anzahlGerichtB + "-Mal " + preisGerichtB * anzahlGerichtB + "");
accordion.getPanes().addAll(tp);
}
if (anzahlGerichtC >= 1) {
@ -85,21 +96,49 @@ public class BestelluebersichtMitarbeiter {
accordion.getPanes().addAll(tp);
}
if(anzahlNachtischA >= 1){
if (anzahlNachtischA >= 1) {
TitledPane tp = new TitledPane();
tp.setText("NachtischA " + anzahlNachtischA + "-Mal " + preisNachtischA * anzahlNachtischA + "");
accordion.getPanes().addAll(tp);
}
if(anzahlNachtischA >= 1){
TitledPane tp = new TitledPane();
tp.setText("NachtischB " + anzahlNachtischB + "-Mal " + preisNachtischB * anzahlNachtischB + "");
if (anzahlNachtischA >= 1) {
Label label2 = new Label("Hans Schwanz" + " für " + " Anja Arbeitslos");
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);
}
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) {
VerwaltungApplication.abmelden();
}

View File

@ -138,7 +138,7 @@ public class EssensverwaltungMitarbeiterView {
}
/**
* Initialisiert alle Gerichte des aktuellen Datums auf der Seite
* Initialisiert alle Gerichte des aktuellen Datums auf der Seite.
*/
private void initGerichte(){
@ -180,8 +180,6 @@ public class EssensverwaltungMitarbeiterView {
}
}
tagesplan.getStyleClass().add("essensuebersicht_gridlines");
}

View File

@ -7,14 +7,21 @@
package de.subway_surfers.vpr_app;
import Logik.Kind;
import Logik.Zutat;
import RestAPISchnittstelle.RestApiClient;
import com.google.gson.*;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import java.util.ArrayList;
public class InhaltsstoffeFilternController {
private @FXML ListView<zutatListViewController> zutatListView;
private @FXML ListView<Zutat> zutatListView;
private @FXML CheckBox speichernCheckBox;
@ -22,11 +29,28 @@ public class InhaltsstoffeFilternController {
private @FXML Button fortfahrenButton;
private ArrayList<Zutat> zutaten;
public void initialize(){
// hier ListView füllen
zutatListView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
RestApiClient api = new RestApiClient();
String json = api.get("Inhaltsstoff");
zutaten = new ArrayList<>();
Gson gson = new Gson();
JsonElement je = JsonParser.parseString(json);
JsonArray ja = je.getAsJsonArray();
for (JsonElement e : ja) {
JsonObject jo = e.getAsJsonObject();
zutaten.add(gson.fromJson(jo, Zutat.class));
}
zutatListView.setItems(FXCollections.observableArrayList(zutaten));
}
}

View File

@ -15,6 +15,10 @@ public class VerwaltungApplication extends Application {
private static Stage stage;
public static void abmelden(){
VerwaltungApplication.sceneWechseln("login-view.fxml");
}
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("login-view.fxml"));

View File

@ -33,11 +33,5 @@ public class VerwaltungController {
String credentials = String.format("{\"Benutzername\" : \"%s\", \"passwort\" : \"%s\"}", benutzernameTextfield.getText(), passwortTextfield.getText());
if(client.anmeldeVersuch(credentials))
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
else {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setContentText("Falsche Anmeldedaten");
alert.setHeaderText("Fehler!");
alert.showAndWait();
}
}
}

View File

@ -18,7 +18,7 @@
-fx-padding: 20;
}
.hauptmenue_buttons_links{
.hauptmenue_buttons_links, .gerichterstellung_felder, .filter, .main, .filter_unten{
-fx-spacing: 20;
}
@ -73,6 +73,13 @@
-fx-vgap: 10;
-fx-hgap: 10;
}
.test {
-fx-padding: 10 20;
}
.essensuebersicht_gridlines {
-fx-grid-lines-visible: true;
}
.accounterstellung_links, .button-untenrechts{
-fx-spacing: 20;
@ -82,3 +89,24 @@
-fx-background-color: #FFDCDC;
-fx-text-fill: #FFDCDC;
}
.essensuebersicht_gridlines > * {
-fx-alignment: center;
}
.pfeil{
-fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
-fx-background-insets: 0 0 -1 0, 0;
-fx-padding: 0.25em;
-fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
-fx-pref-width: 25;
}
.links {
-fx-rotate: 180;
}
.titledPaneUeberschrift > .title {
-fx-pref-height: 50;
-fx-padding: 10 10 16 10;
-fx-font-size: 15;
-fx-font-weight: bold;
}