Compare commits

..

9 Commits

9 changed files with 216 additions and 34 deletions

View File

@ -7,9 +7,8 @@
<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_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" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

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

View File

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

View File

@ -1,11 +1,16 @@
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;
@ -28,23 +33,28 @@ public class BestelluebersichtMitarbeiter {
accordion.setStyle("-fx-box-border: transparent;"); accordion.setStyle("-fx-box-border: transparent;");
for (String s : datum) { for (String i : datum) {
TitledPane datumUeberschrift = new TitledPane(s, createGerichtAkkordion()); Accordion gerichtAkkordion = 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);
} }
private Accordion createGerichtAkkordion() { int anzahlGerichtA = 1;
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;
@ -71,6 +81,7 @@ 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) {
@ -85,21 +96,49 @@ public class BestelluebersichtMitarbeiter {
accordion.getPanes().addAll(tp); accordion.getPanes().addAll(tp);
} }
if(anzahlNachtischA >= 1){ if (anzahlNachtischA >= 1) {
TitledPane tp = new TitledPane(); TitledPane tp = new TitledPane();
tp.setText("NachtischA " + anzahlNachtischA + "-Mal " + preisNachtischA * anzahlNachtischA + ""); tp.setText("NachtischA " + anzahlNachtischA + "-Mal " + preisNachtischA * anzahlNachtischA + "");
accordion.getPanes().addAll(tp); accordion.getPanes().addAll(tp);
} }
if(anzahlNachtischA >= 1){ if (anzahlNachtischA >= 1) {
TitledPane tp = new TitledPane();
tp.setText("NachtischB " + anzahlNachtischB + "-Mal " + preisNachtischB * anzahlNachtischB + ""); 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); 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

@ -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(){ private void initGerichte(){
@ -180,8 +180,6 @@ public class EssensverwaltungMitarbeiterView {
} }
} }
tagesplan.getStyleClass().add("essensuebersicht_gridlines"); tagesplan.getStyleClass().add("essensuebersicht_gridlines");
} }

View File

@ -7,14 +7,21 @@
package de.subway_surfers.vpr_app; package de.subway_surfers.vpr_app;
import Logik.Kind; import Logik.Kind;
import Logik.Zutat;
import RestAPISchnittstelle.RestApiClient;
import com.google.gson.*;
import javafx.collections.FXCollections;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.CheckBox; import javafx.scene.control.CheckBox;
import javafx.scene.control.ListView; import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import java.util.ArrayList;
public class InhaltsstoffeFilternController { public class InhaltsstoffeFilternController {
private @FXML ListView<zutatListViewController> zutatListView; private @FXML ListView<Zutat> zutatListView;
private @FXML CheckBox speichernCheckBox; private @FXML CheckBox speichernCheckBox;
@ -22,11 +29,28 @@ public class InhaltsstoffeFilternController {
private @FXML Button fortfahrenButton; private @FXML Button fortfahrenButton;
private ArrayList<Zutat> zutaten;
public void initialize(){ 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; private static Stage stage;
public static void abmelden(){
VerwaltungApplication.sceneWechseln("login-view.fxml");
}
@Override @Override
public void start(Stage stage) throws IOException { public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("login-view.fxml")); 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()); String credentials = String.format("{\"Benutzername\" : \"%s\", \"passwort\" : \"%s\"}", benutzernameTextfield.getText(), passwortTextfield.getText());
if(client.anmeldeVersuch(credentials)) 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();
}
} }
} }

View File

@ -18,7 +18,7 @@
-fx-padding: 20; -fx-padding: 20;
} }
.hauptmenue_buttons_links{ .hauptmenue_buttons_links, .gerichterstellung_felder, .filter, .main, .filter_unten{
-fx-spacing: 20; -fx-spacing: 20;
} }
@ -73,6 +73,13 @@
-fx-vgap: 10; -fx-vgap: 10;
-fx-hgap: 10; -fx-hgap: 10;
} }
.test {
-fx-padding: 10 20;
}
.essensuebersicht_gridlines {
-fx-grid-lines-visible: true;
}
.accounterstellung_links, .button-untenrechts{ .accounterstellung_links, .button-untenrechts{
-fx-spacing: 20; -fx-spacing: 20;
@ -81,4 +88,25 @@
.falscheEingabe { .falscheEingabe {
-fx-background-color: #FFDCDC; -fx-background-color: #FFDCDC;
-fx-text-fill: #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;
} }