Compare commits
	
		
			6 Commits
		
	
	
		
			72c2e9da16
			...
			0d36d7718e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0d36d7718e | |||
| 
						 | 
					9b6d60a571 | ||
| 
						 | 
					f567320ec3 | ||
| 
						 | 
					324ce53bd4 | ||
| 
						 | 
					f71aba3505 | ||
| 
						 | 
					5ee0288736 | 
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -35,4 +35,6 @@ build/
 | 
				
			|||||||
.vscode/
 | 
					.vscode/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Mac OS ###
 | 
					### Mac OS ###
 | 
				
			||||||
.DS_Store
 | 
					.DS_Store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/database.db
 | 
				
			||||||
@@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					package com.bib.essensbestellungsverwaltung;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javafx.event.ActionEvent;
 | 
				
			||||||
 | 
					import javafx.fxml.FXML;
 | 
				
			||||||
 | 
					import javafx.scene.control.RadioButton;
 | 
				
			||||||
 | 
					import javafx.scene.control.TextArea;
 | 
				
			||||||
 | 
					import javafx.scene.control.TextField;
 | 
				
			||||||
 | 
					import javafx.scene.text.Text;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class CreateFoodController {
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public TextField name;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public TextArea description;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public RadioButton isHauptgerichtRadio;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public RadioButton isDessertRadio;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public RadioButton isVegetarischRadio;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public RadioButton isVeganRadio;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public RadioButton isFleischRadio;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public TextArea allergienTextBox;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public Text responseText;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public void onAbbrechen(ActionEvent actionEvent) {
 | 
				
			||||||
 | 
					        clearInputs();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public void onHinzufügen(ActionEvent actionEvent) {
 | 
				
			||||||
 | 
					        String gerichtName = name.getText();
 | 
				
			||||||
 | 
					        String beschreibung = description.getText();
 | 
				
			||||||
 | 
					        if(!isHauptgerichtRadio.isSelected() && !isDessertRadio.isSelected()){
 | 
				
			||||||
 | 
					            // art auswähelen
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        boolean isNachtisch = !isHauptgerichtRadio.isSelected();
 | 
				
			||||||
 | 
					        if(!isVegetarischRadio.isSelected() && !isVeganRadio.isSelected() && isFleischRadio.isSelected()){
 | 
				
			||||||
 | 
					            // Typ auswählen
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        int ft = isVeganRadio.isSelected() ? 1 : isVeganRadio.isSelected() ? 2 : 3;
 | 
				
			||||||
 | 
					        FoodType foodType = new FoodType(ft, "Vegan");
 | 
				
			||||||
 | 
					        List<Allergy> allergies = new ArrayList<>();
 | 
				
			||||||
 | 
					        // TODO: allergien hinzufügen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        long id = FoodMgr.createFood(new Food(gerichtName, beschreibung, isNachtisch, foodType, allergies));
 | 
				
			||||||
 | 
					        System.out.println("Food created with id: " + id);
 | 
				
			||||||
 | 
					        responseText.setText("New Food Created");
 | 
				
			||||||
 | 
					        clearInputs();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void clearInputs(){
 | 
				
			||||||
 | 
					        name.setText("");
 | 
				
			||||||
 | 
					        description.setText("");
 | 
				
			||||||
 | 
					        isHauptgerichtRadio.setSelected(false);
 | 
				
			||||||
 | 
					        isDessertRadio.setSelected(false);
 | 
				
			||||||
 | 
					        isVeganRadio.setSelected(false);
 | 
				
			||||||
 | 
					        isVegetarischRadio.setSelected(false);
 | 
				
			||||||
 | 
					        isFleischRadio.setSelected(false);
 | 
				
			||||||
 | 
					        allergienTextBox.setText("");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,119 @@
 | 
				
			|||||||
 | 
					package com.bib.essensbestellungsverwaltung;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javafx.collections.FXCollections;
 | 
				
			||||||
 | 
					import javafx.collections.ObservableList;
 | 
				
			||||||
 | 
					import javafx.event.ActionEvent;
 | 
				
			||||||
 | 
					import javafx.fxml.FXML;
 | 
				
			||||||
 | 
					import javafx.scene.control.Alert;
 | 
				
			||||||
 | 
					import javafx.scene.control.Button;
 | 
				
			||||||
 | 
					import javafx.scene.control.ChoiceBox;
 | 
				
			||||||
 | 
					import javafx.scene.control.DatePicker;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.time.LocalDate;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class CreateFoodplanController {
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    Button erstellenButton;
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    DatePicker date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    ChoiceBox firstMeal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    ChoiceBox secondMeal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    ChoiceBox firstDessert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    ChoiceBox secondDessert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<Food> foods;
 | 
				
			||||||
 | 
					    private List<Food> desserts;
 | 
				
			||||||
 | 
					    private FoodPlan currentPlan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public void initialize() {
 | 
				
			||||||
 | 
					        foods = FoodMgr.getFood(false);
 | 
				
			||||||
 | 
					        desserts = FoodMgr.getFood(true);
 | 
				
			||||||
 | 
					        ObservableList<Object> foodOptions = FXCollections.observableArrayList(foods.stream().map(food -> food.getId() + ": " + food.getName()).toList().toArray(new String[0]));
 | 
				
			||||||
 | 
					        firstMeal.setItems(foodOptions);
 | 
				
			||||||
 | 
					        secondMeal.setItems(foodOptions);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ObservableList<Object> dessertOptions = FXCollections.observableArrayList(desserts.stream().map(dessert -> dessert.getId() + ": " + dessert.getName()).toList().toArray(new String[0]));
 | 
				
			||||||
 | 
					        firstDessert.setItems(dessertOptions);
 | 
				
			||||||
 | 
					        secondDessert.setItems(dessertOptions);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        date.setValue(LocalDate.now());
 | 
				
			||||||
 | 
					        onDateChange(null);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public void onPlanErstellen(ActionEvent actionEvent) {
 | 
				
			||||||
 | 
					        if (date.getValue() == null ||
 | 
				
			||||||
 | 
					                firstMeal.getValue().toString().isBlank() ||
 | 
				
			||||||
 | 
					                secondMeal.getValue().toString().isBlank() ||
 | 
				
			||||||
 | 
					                firstDessert.getValue().toString().isBlank() ||
 | 
				
			||||||
 | 
					                secondDessert.getValue().toString().isBlank()
 | 
				
			||||||
 | 
					        ) {
 | 
				
			||||||
 | 
					            Alert alert = new Alert(Alert.AlertType.ERROR);
 | 
				
			||||||
 | 
					            alert.setTitle("Ungültige Eingabe");
 | 
				
			||||||
 | 
					            alert.setHeaderText("Es wurden nicht alle Felder ausgefüllt");
 | 
				
			||||||
 | 
					            alert.setContentText("Es kann sein, dass Sie erst Gerichte erstellen müssen, um alle Felder auszufüllen");
 | 
				
			||||||
 | 
					            alert.showAndWait();
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        int firstMealId = Integer.parseInt(firstMeal.getValue().toString().split(":")[0]);
 | 
				
			||||||
 | 
					        int secondMealId = Integer.parseInt(secondMeal.getValue().toString().split(":")[0]);
 | 
				
			||||||
 | 
					        int firstDessertId = Integer.parseInt(firstDessert.getValue().toString().split(":")[0]);
 | 
				
			||||||
 | 
					        int secondDessertId = Integer.parseInt(secondDessert.getValue().toString().split(":")[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Food f1 = foods.stream().filter(food -> food.getId() == firstMealId).findFirst().get();
 | 
				
			||||||
 | 
					        Food f2 = foods.stream().filter(food -> food.getId() == secondMealId).findFirst().get();
 | 
				
			||||||
 | 
					        Food d1 = desserts.stream().filter(dessert -> dessert.getId() == firstDessertId).findFirst().get();
 | 
				
			||||||
 | 
					        Food d2 = desserts.stream().filter(dessert -> dessert.getId() == secondDessertId).findFirst().get();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String d = date.getValue().toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (currentPlan != null) { // update Foodplan
 | 
				
			||||||
 | 
					            long id = currentPlan.getId();
 | 
				
			||||||
 | 
					            FoodPlan plan = new FoodPlan(id, d, f1, f2, d1, d2, false);
 | 
				
			||||||
 | 
					            long i = FoodMgr.updateFood_plan(plan);
 | 
				
			||||||
 | 
					            System.out.println("Foodplan updated: " + i);
 | 
				
			||||||
 | 
					        } else { // create new Foodplan
 | 
				
			||||||
 | 
					            FoodPlan plan = new FoodPlan(d, f1, f2, d1, d2);
 | 
				
			||||||
 | 
					            long id = FoodMgr.createFood_plan(plan);
 | 
				
			||||||
 | 
					            System.out.println("Foodplan created with id: " + id);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public void onAbbrechen(ActionEvent actionEvent) {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @FXML
 | 
				
			||||||
 | 
					    public void onDateChange(ActionEvent actionEvent) {
 | 
				
			||||||
 | 
					        currentPlan = FoodMgr.getFoodPlan(date.getValue().toString());
 | 
				
			||||||
 | 
					        if (currentPlan != null) {  // current FoodPlan already exists and can be edited
 | 
				
			||||||
 | 
					            firstMeal.setValue(currentPlan.getFoodVegan().getId() + ": " + currentPlan.getFoodVegan().getName());
 | 
				
			||||||
 | 
					            secondMeal.setValue(currentPlan.getFoodSecond().getId() + ": " + currentPlan.getFoodSecond().getName());
 | 
				
			||||||
 | 
					            firstDessert.setValue(currentPlan.getDessertVegan().getId() + ": " + currentPlan.getDessertVegan().getName());
 | 
				
			||||||
 | 
					            secondDessert.setValue(currentPlan.getDessertSecond().getId() + ": " + currentPlan.getDessertSecond().getName());
 | 
				
			||||||
 | 
					            erstellenButton.setText("Plan updaten");
 | 
				
			||||||
 | 
					        } else { // current Foodplan does not exist
 | 
				
			||||||
 | 
					            erstellenButton.setText("Plan erstellen");
 | 
				
			||||||
 | 
					            firstMeal.setValue(null);
 | 
				
			||||||
 | 
					            secondMeal.setValue(null);
 | 
				
			||||||
 | 
					            firstDessert.setValue(null);
 | 
				
			||||||
 | 
					            secondDessert.setValue(null);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -41,6 +41,20 @@ public class FoodMgr {
 | 
				
			|||||||
        return Database.insert("food_plan",food_planH,food_planD);
 | 
					        return Database.insert("food_plan",food_planH,food_planD);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * updates a food_plan into the database
 | 
				
			||||||
 | 
					     * @return number of rows affected or -1 on error
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static long updateFood_plan(FoodPlan foodPlan){
 | 
				
			||||||
 | 
					        String[] food_planH = {"id","food1","food2","dessert1","dessert2"};
 | 
				
			||||||
 | 
					        String[] food_planD = {String.valueOf(foodPlan.getId()),
 | 
				
			||||||
 | 
					                String.valueOf(foodPlan.getFoodVegan().getId()),
 | 
				
			||||||
 | 
					                String.valueOf(foodPlan.getFoodSecond().getId()),
 | 
				
			||||||
 | 
					                String.valueOf(foodPlan.getDessertVegan().getId()),
 | 
				
			||||||
 | 
					                String.valueOf(foodPlan.getDessertSecond().getId())};
 | 
				
			||||||
 | 
					        return Database.update("food_plan",food_planH,food_planD);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * returns all non desserts or all desserts
 | 
					     * returns all non desserts or all desserts
 | 
				
			||||||
     * @param isDessert true for only desserts false for non desserts
 | 
					     * @param isDessert true for only desserts false for non desserts
 | 
				
			||||||
@@ -84,6 +98,9 @@ public class FoodMgr {
 | 
				
			|||||||
        String[] food_planH = {"date"};
 | 
					        String[] food_planH = {"date"};
 | 
				
			||||||
        String[] food_planD = {date};
 | 
					        String[] food_planD = {date};
 | 
				
			||||||
        List<String> entry = Database.select("food_plan",food_planH,food_planD);
 | 
					        List<String> entry = Database.select("food_plan",food_planH,food_planD);
 | 
				
			||||||
 | 
					        if(entry.size() < 1){
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        String[] parts = entry.get(0).split(":");
 | 
					        String[] parts = entry.get(0).split(":");
 | 
				
			||||||
        Food foodVegan = getFoodById(Long.parseLong(parts[2]));
 | 
					        Food foodVegan = getFoodById(Long.parseLong(parts[2]));
 | 
				
			||||||
        Food foodSecond = getFoodById(Long.parseLong(parts[3]));
 | 
					        Food foodSecond = getFoodById(Long.parseLong(parts[3]));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,7 @@ public class StartViewApplication extends Application {
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void start(Stage stage) throws IOException {
 | 
					    public void start(Stage stage) throws IOException {
 | 
				
			||||||
        FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("login-view.fxml"));
 | 
					        FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("login-view.fxml"));
 | 
				
			||||||
        Scene scene = new Scene(fxmlLoader.load(), 1200, 750);
 | 
					        Scene scene = new Scene(fxmlLoader.load(), 1300, 750);
 | 
				
			||||||
        primary = stage;
 | 
					        primary = stage;
 | 
				
			||||||
        stage.setTitle("Essen Bestellung im Kindergarten");
 | 
					        stage.setTitle("Essen Bestellung im Kindergarten");
 | 
				
			||||||
        stage.setScene(scene);
 | 
					        stage.setScene(scene);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,102 +1,107 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<?import javafx.geometry.Insets?>
 | 
					<?import javafx.geometry.*?>
 | 
				
			||||||
<?import javafx.scene.control.Button?>
 | 
					<?import javafx.scene.control.*?>
 | 
				
			||||||
<?import javafx.scene.control.Label?>
 | 
					<?import javafx.scene.layout.*?>
 | 
				
			||||||
<?import javafx.scene.control.RadioButton?>
 | 
					<?import javafx.scene.text.*?>
 | 
				
			||||||
<?import javafx.scene.control.TextArea?>
 | 
					 | 
				
			||||||
<?import javafx.scene.control.TextField?>
 | 
					 | 
				
			||||||
<?import javafx.scene.layout.AnchorPane?>
 | 
					 | 
				
			||||||
<?import javafx.scene.layout.HBox?>
 | 
					 | 
				
			||||||
<?import javafx.scene.layout.VBox?>
 | 
					 | 
				
			||||||
<?import javafx.scene.text.Font?>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="521.0" prefWidth="731.0" stylesheets="@createFood.css" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1">
 | 
					<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="731.0" stylesheets="@createFood.css" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.CreateFoodController">
 | 
				
			||||||
   <children>
 | 
					    <children>
 | 
				
			||||||
      <Label alignment="CENTER" layoutX="234.0" layoutY="29.0" prefHeight="44.0" prefWidth="237.0" text="Gericht hinzufügen">
 | 
					        <Label alignment="CENTER" layoutX="247.0" layoutY="29.0" prefHeight="44.0" prefWidth="237.0" text="Gericht hinzufügen">
 | 
				
			||||||
         <font>
 | 
					            <font>
 | 
				
			||||||
            <Font size="18.0" />
 | 
					                <Font size="18.0" />
 | 
				
			||||||
         </font>
 | 
					            </font>
 | 
				
			||||||
      </Label>
 | 
					        </Label>
 | 
				
			||||||
      <VBox layoutX="112.0" layoutY="73.0" prefHeight="389.0" prefWidth="459.0">
 | 
					        <VBox layoutX="136.0" layoutY="73.0" prefHeight="388.0" prefWidth="459.0">
 | 
				
			||||||
         <children>
 | 
					            <children>
 | 
				
			||||||
            <HBox prefHeight="75.0" prefWidth="459.0">
 | 
					                <HBox prefHeight="75.0" prefWidth="459.0">
 | 
				
			||||||
               <children>
 | 
					                    <children>
 | 
				
			||||||
                  <Label prefHeight="33.0" prefWidth="121.0" text="Name des Gerichts" />
 | 
					                        <Label prefHeight="33.0" prefWidth="121.0" text="Name des Gerichts" />
 | 
				
			||||||
                  <TextField prefHeight="25.0" prefWidth="290.0">
 | 
					                        <TextField fx:id="name" prefHeight="25.0" prefWidth="290.0">
 | 
				
			||||||
                     <HBox.margin>
 | 
					                            <HBox.margin>
 | 
				
			||||||
 | 
					                                <Insets top="5.0" />
 | 
				
			||||||
 | 
					                            </HBox.margin>
 | 
				
			||||||
 | 
					                        </TextField>
 | 
				
			||||||
 | 
					                    </children>
 | 
				
			||||||
 | 
					                </HBox>
 | 
				
			||||||
 | 
					                <HBox prefHeight="75.0" prefWidth="459.0">
 | 
				
			||||||
 | 
					                    <children>
 | 
				
			||||||
 | 
					                        <Label prefHeight="33.0" prefWidth="121.0" text="Beschreibung" />
 | 
				
			||||||
 | 
					                        <TextArea fx:id="description" prefHeight="75.0" prefWidth="290.0" />
 | 
				
			||||||
 | 
					                    </children>
 | 
				
			||||||
 | 
					                    <padding>
 | 
				
			||||||
                        <Insets top="5.0" />
 | 
					                        <Insets top="5.0" />
 | 
				
			||||||
                     </HBox.margin>
 | 
					                    </padding>
 | 
				
			||||||
                  </TextField>
 | 
					                </HBox>
 | 
				
			||||||
               </children>
 | 
					                <HBox prefHeight="75.0" prefWidth="459.0">
 | 
				
			||||||
            </HBox>
 | 
					                    <children>
 | 
				
			||||||
            <HBox prefHeight="75.0" prefWidth="459.0">
 | 
					                        <Label text="Art des Gerichts">
 | 
				
			||||||
               <children>
 | 
					                            <HBox.margin>
 | 
				
			||||||
                  <Label prefHeight="33.0" prefWidth="121.0" text="Beschreibung" />
 | 
					                                <Insets top="20.0" />
 | 
				
			||||||
                  <TextArea prefHeight="75.0" prefWidth="290.0" />
 | 
					                            </HBox.margin>
 | 
				
			||||||
               </children>
 | 
					                        </Label>
 | 
				
			||||||
               <padding>
 | 
					                        <RadioButton fx:id="isHauptgerichtRadio" mnemonicParsing="false" text="Hauptgericht">
 | 
				
			||||||
                  <Insets top="5.0" />
 | 
					                            <HBox.margin>
 | 
				
			||||||
               </padding>
 | 
					                                <Insets left="35.0" top="20.0" />
 | 
				
			||||||
            </HBox>
 | 
					                            </HBox.margin>
 | 
				
			||||||
            <HBox prefHeight="75.0" prefWidth="459.0">
 | 
					                     <toggleGroup>
 | 
				
			||||||
               <children>
 | 
					                        <ToggleGroup fx:id="art" />
 | 
				
			||||||
                  <Label text="Art des Gerichts">
 | 
					                     </toggleGroup>
 | 
				
			||||||
                     <HBox.margin>
 | 
					                        </RadioButton>
 | 
				
			||||||
                        <Insets top="20.0" />
 | 
					                        <RadioButton fx:id="isDessertRadio" mnemonicParsing="false" text="Dessert" toggleGroup="$art">
 | 
				
			||||||
                     </HBox.margin>
 | 
					                            <HBox.margin>
 | 
				
			||||||
                  </Label>
 | 
					                                <Insets left="50.0" top="20.0" />
 | 
				
			||||||
                  <RadioButton mnemonicParsing="false" text="Dessert">
 | 
					                            </HBox.margin>
 | 
				
			||||||
                     <HBox.margin>
 | 
					                        </RadioButton>
 | 
				
			||||||
                        <Insets left="35.0" top="20.0" />
 | 
					                    </children>
 | 
				
			||||||
                     </HBox.margin>
 | 
					                    <VBox.margin>
 | 
				
			||||||
                  </RadioButton>
 | 
					                        <Insets />
 | 
				
			||||||
                  <RadioButton mnemonicParsing="false" text="Kein Dessert">
 | 
					                    </VBox.margin>
 | 
				
			||||||
                     <HBox.margin>
 | 
					                    <padding>
 | 
				
			||||||
                        <Insets left="50.0" top="20.0" />
 | 
					                        <Insets top="5.0" />
 | 
				
			||||||
                     </HBox.margin>
 | 
					                    </padding>
 | 
				
			||||||
                  </RadioButton>
 | 
					                </HBox>
 | 
				
			||||||
               </children>
 | 
					                <HBox prefHeight="75.0" prefWidth="459.0">
 | 
				
			||||||
 | 
					                    <children>
 | 
				
			||||||
 | 
					                        <Label text="Typ">
 | 
				
			||||||
 | 
					                            <HBox.margin>
 | 
				
			||||||
 | 
					                                <Insets top="20.0" />
 | 
				
			||||||
 | 
					                            </HBox.margin>
 | 
				
			||||||
 | 
					                        </Label>
 | 
				
			||||||
 | 
					                        <RadioButton fx:id="isVegetarischRadio" mnemonicParsing="false" prefHeight="17.0" prefWidth="91.0" text="Vegetarisch">
 | 
				
			||||||
 | 
					                            <HBox.margin>
 | 
				
			||||||
 | 
					                                <Insets left="100.0" top="20.0" />
 | 
				
			||||||
 | 
					                            </HBox.margin>
 | 
				
			||||||
 | 
					                     <toggleGroup>
 | 
				
			||||||
 | 
					                        <ToggleGroup fx:id="typ" />
 | 
				
			||||||
 | 
					                     </toggleGroup>
 | 
				
			||||||
 | 
					                        </RadioButton>
 | 
				
			||||||
 | 
					                        <RadioButton fx:id="isVeganRadio" mnemonicParsing="false" text="Vegan" toggleGroup="$typ">
 | 
				
			||||||
 | 
					                            <HBox.margin>
 | 
				
			||||||
 | 
					                                <Insets left="20.0" top="20.0" />
 | 
				
			||||||
 | 
					                            </HBox.margin>
 | 
				
			||||||
 | 
					                        </RadioButton>
 | 
				
			||||||
 | 
					                        <RadioButton fx:id="isFleischRadio" mnemonicParsing="false" text="Fleisch" toggleGroup="$typ">
 | 
				
			||||||
 | 
					                            <HBox.margin>
 | 
				
			||||||
 | 
					                                <Insets left="40.0" top="20.0" />
 | 
				
			||||||
 | 
					                            </HBox.margin>
 | 
				
			||||||
 | 
					                        </RadioButton>
 | 
				
			||||||
 | 
					                    </children>
 | 
				
			||||||
 | 
					                </HBox>
 | 
				
			||||||
 | 
					                <HBox prefHeight="76.0" prefWidth="459.0">
 | 
				
			||||||
 | 
					                    <children>
 | 
				
			||||||
 | 
					                        <Label prefHeight="41.0" prefWidth="171.0" text="Allergien mit Komma getrennt" />
 | 
				
			||||||
 | 
					                        <TextArea fx:id="allergienTextBox" prefHeight="76.0" prefWidth="246.0" />
 | 
				
			||||||
 | 
					                    </children>
 | 
				
			||||||
 | 
					                </HBox>
 | 
				
			||||||
 | 
					            <Text fx:id="responseText" fill="RED" strokeType="OUTSIDE" strokeWidth="0.0" textAlignment="CENTER" wrappingWidth="459.13673400878906">
 | 
				
			||||||
               <VBox.margin>
 | 
					               <VBox.margin>
 | 
				
			||||||
                  <Insets />
 | 
					                  <Insets top="20.0" />
 | 
				
			||||||
               </VBox.margin>
 | 
					               </VBox.margin>
 | 
				
			||||||
               <padding>
 | 
					            </Text>
 | 
				
			||||||
                  <Insets top="5.0" />
 | 
					            </children>
 | 
				
			||||||
               </padding>
 | 
					        </VBox>
 | 
				
			||||||
            </HBox>
 | 
					        <Button id="btCreateFood" layoutX="484.0" layoutY="481.0" mnemonicParsing="false" onAction="#onHinzufügen" prefHeight="34.0" prefWidth="146.0" text="Hinzufügen" />
 | 
				
			||||||
            <HBox prefHeight="75.0" prefWidth="459.0">
 | 
					        <Button id="btCancelFood" layoutX="102.0" layoutY="473.0" mnemonicParsing="false" onAction="#onAbbrechen" prefHeight="50.0" prefWidth="162.0" text="Abbrechen" />
 | 
				
			||||||
               <children>
 | 
					    </children>
 | 
				
			||||||
                  <Label text="Typ">
 | 
					 | 
				
			||||||
                     <HBox.margin>
 | 
					 | 
				
			||||||
                        <Insets top="20.0" />
 | 
					 | 
				
			||||||
                     </HBox.margin>
 | 
					 | 
				
			||||||
                  </Label>
 | 
					 | 
				
			||||||
                  <RadioButton mnemonicParsing="false" prefHeight="17.0" prefWidth="91.0" text="Vegetarisch">
 | 
					 | 
				
			||||||
                     <HBox.margin>
 | 
					 | 
				
			||||||
                        <Insets left="100.0" top="20.0" />
 | 
					 | 
				
			||||||
                     </HBox.margin>
 | 
					 | 
				
			||||||
                  </RadioButton>
 | 
					 | 
				
			||||||
                  <RadioButton mnemonicParsing="false" text="Vegan">
 | 
					 | 
				
			||||||
                     <HBox.margin>
 | 
					 | 
				
			||||||
                        <Insets left="20.0" top="20.0" />
 | 
					 | 
				
			||||||
                     </HBox.margin>
 | 
					 | 
				
			||||||
                  </RadioButton>
 | 
					 | 
				
			||||||
                  <RadioButton mnemonicParsing="false" text="Fleisch">
 | 
					 | 
				
			||||||
                     <HBox.margin>
 | 
					 | 
				
			||||||
                        <Insets left="40.0" top="20.0" />
 | 
					 | 
				
			||||||
                     </HBox.margin>
 | 
					 | 
				
			||||||
                  </RadioButton>
 | 
					 | 
				
			||||||
               </children>
 | 
					 | 
				
			||||||
            </HBox>
 | 
					 | 
				
			||||||
            <HBox prefHeight="76.0" prefWidth="459.0">
 | 
					 | 
				
			||||||
               <children>
 | 
					 | 
				
			||||||
                  <Label prefHeight="41.0" prefWidth="171.0" text="Allergien mit Komma getrennt" />
 | 
					 | 
				
			||||||
                  <TextArea prefHeight="76.0" prefWidth="246.0" />
 | 
					 | 
				
			||||||
               </children>
 | 
					 | 
				
			||||||
            </HBox>
 | 
					 | 
				
			||||||
         </children>
 | 
					 | 
				
			||||||
      </VBox>
 | 
					 | 
				
			||||||
      <Button id="btCreateFood" layoutX="106.0" layoutY="457.0" mnemonicParsing="false" prefHeight="50.0" prefWidth="145.0" text="Hinzufügen" />
 | 
					 | 
				
			||||||
      <Button id="btCancelFood" layoutX="366.0" layoutY="457.0" mnemonicParsing="false" prefHeight="50.0" prefWidth="162.0" text="Abbrechen" />
 | 
					 | 
				
			||||||
   </children>
 | 
					 | 
				
			||||||
</AnchorPane>
 | 
					</AnchorPane>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,87 +1,83 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<?import javafx.geometry.Insets?>
 | 
					<?import javafx.geometry.*?>
 | 
				
			||||||
<?import javafx.scene.control.Button?>
 | 
					<?import javafx.scene.control.*?>
 | 
				
			||||||
<?import javafx.scene.control.Label?>
 | 
					<?import javafx.scene.layout.*?>
 | 
				
			||||||
<?import javafx.scene.control.TextField?>
 | 
					<?import javafx.scene.text.*?>
 | 
				
			||||||
<?import javafx.scene.layout.AnchorPane?>
 | 
					 | 
				
			||||||
<?import javafx.scene.layout.HBox?>
 | 
					 | 
				
			||||||
<?import javafx.scene.layout.VBox?>
 | 
					 | 
				
			||||||
<?import javafx.scene.text.Font?>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="599.0" prefWidth="900.0" stylesheets="@createFoodplan.css" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1">
 | 
					<HBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="950.0" stylesheets="@createFoodplan.css" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.bib.essensbestellungsverwaltung.CreateFoodplanController">
 | 
				
			||||||
   <children>
 | 
					    <children>
 | 
				
			||||||
      <Label layoutX="359.0" layoutY="36.0" text="Essensplan erstellen">
 | 
					        <VBox alignment="CENTER" prefHeight="599.0" prefWidth="357.0" spacing="20.0">
 | 
				
			||||||
         <font>
 | 
					            <children>
 | 
				
			||||||
            <Font size="18.0" />
 | 
					                <Label text="Essensplan erstellen">
 | 
				
			||||||
         </font>
 | 
					                    <font>
 | 
				
			||||||
      </Label>
 | 
					                        <Font size="18.0" />
 | 
				
			||||||
      <VBox layoutX="134.0" layoutY="124.0" prefHeight="327.0" prefWidth="632.0">
 | 
					                    </font>
 | 
				
			||||||
         <children>
 | 
					                </Label>
 | 
				
			||||||
            <HBox prefHeight="50.0" prefWidth="632.0">
 | 
					                <VBox prefHeight="285.0" prefWidth="358.0">
 | 
				
			||||||
               <children>
 | 
					                    <children>
 | 
				
			||||||
                  <Label prefHeight="17.0" prefWidth="133.0" text="Datum JJJJ-MMM-TT">
 | 
					                        <HBox prefHeight="50.0" prefWidth="632.0">
 | 
				
			||||||
                     <HBox.margin>
 | 
					                            <children>
 | 
				
			||||||
                        <Insets top="5.0" />
 | 
					                                <Label prefHeight="17.0" prefWidth="133.0" text="Datum JJJJ-MMM-TT">
 | 
				
			||||||
                     </HBox.margin>
 | 
					                                    <HBox.margin>
 | 
				
			||||||
                  </Label>
 | 
					                                        <Insets top="5.0" />
 | 
				
			||||||
                  <TextField />
 | 
					                                    </HBox.margin>
 | 
				
			||||||
               </children>
 | 
					                                </Label>
 | 
				
			||||||
            </HBox>
 | 
					                                <DatePicker fx:id="date" onAction="#onDateChange" />
 | 
				
			||||||
            <HBox prefHeight="50.0" prefWidth="632.0">
 | 
					                            </children>
 | 
				
			||||||
               <children>
 | 
					                        </HBox>
 | 
				
			||||||
                  <Label prefHeight="17.0" prefWidth="133.0" text="Veganes Hauptgericht">
 | 
					                        <HBox prefHeight="50.0" prefWidth="632.0">
 | 
				
			||||||
                     <HBox.margin>
 | 
					                            <children>
 | 
				
			||||||
                        <Insets top="5.0" />
 | 
					                                <Label prefHeight="17.0" prefWidth="133.0" text="Veganes Hauptgericht">
 | 
				
			||||||
                     </HBox.margin>
 | 
					                                    <HBox.margin>
 | 
				
			||||||
                  </Label>
 | 
					                                        <Insets top="5.0" />
 | 
				
			||||||
                  <TextField>
 | 
					                                    </HBox.margin>
 | 
				
			||||||
                     <HBox.margin>
 | 
					                                </Label>
 | 
				
			||||||
                        <Insets />
 | 
					                                <ChoiceBox fx:id="firstMeal" prefWidth="150.0" />
 | 
				
			||||||
                     </HBox.margin>
 | 
					                            </children>
 | 
				
			||||||
                  </TextField>
 | 
					                        </HBox>
 | 
				
			||||||
               </children>
 | 
					                        <HBox prefHeight="50.0" prefWidth="632.0">
 | 
				
			||||||
            </HBox>
 | 
					                            <children>
 | 
				
			||||||
            <HBox prefHeight="50.0" prefWidth="632.0">
 | 
					                                <Label prefHeight="17.0" prefWidth="133.0" text="Zweites Hauptgericht">
 | 
				
			||||||
               <children>
 | 
					                                    <HBox.margin>
 | 
				
			||||||
                  <Label prefHeight="17.0" prefWidth="133.0" text="Zweites Hauptgericht">
 | 
					                                        <Insets top="5.0" />
 | 
				
			||||||
                     <HBox.margin>
 | 
					                                    </HBox.margin>
 | 
				
			||||||
                        <Insets top="5.0" />
 | 
					                                </Label>
 | 
				
			||||||
                     </HBox.margin>
 | 
					                                <ChoiceBox fx:id="secondMeal" prefWidth="150.0" />
 | 
				
			||||||
                  </Label>
 | 
					                            </children>
 | 
				
			||||||
                  <TextField>
 | 
					                        </HBox>
 | 
				
			||||||
                     <HBox.margin>
 | 
					                        <HBox prefHeight="50.0" prefWidth="632.0">
 | 
				
			||||||
                        <Insets />
 | 
					                            <children>
 | 
				
			||||||
                     </HBox.margin>
 | 
					                                <Label prefHeight="17.0" prefWidth="133.0" text="Veganes Dessert">
 | 
				
			||||||
                  </TextField>
 | 
					                                    <HBox.margin>
 | 
				
			||||||
               </children>
 | 
					                                        <Insets />
 | 
				
			||||||
            </HBox>
 | 
					                                    </HBox.margin>
 | 
				
			||||||
            <HBox prefHeight="50.0" prefWidth="632.0">
 | 
					                                    <padding>
 | 
				
			||||||
               <children>
 | 
					                                        <Insets top="5.0" />
 | 
				
			||||||
                  <Label prefHeight="17.0" prefWidth="133.0" text="Veganes Dessert">
 | 
					                                    </padding>
 | 
				
			||||||
                     <HBox.margin>
 | 
					                                </Label>
 | 
				
			||||||
                        <Insets />
 | 
					                                <ChoiceBox fx:id="firstDessert" prefWidth="150.0" />
 | 
				
			||||||
                     </HBox.margin>
 | 
					                            </children>
 | 
				
			||||||
                     <padding>
 | 
					                        </HBox>
 | 
				
			||||||
                        <Insets top="5.0" />
 | 
					                        <HBox prefHeight="50.0" prefWidth="632.0">
 | 
				
			||||||
                     </padding>
 | 
					                            <children>
 | 
				
			||||||
                  </Label>
 | 
					                                <Label prefHeight="17.0" prefWidth="133.0" text="Zweites Dessert">
 | 
				
			||||||
                  <TextField />
 | 
					                                    <padding>
 | 
				
			||||||
               </children>
 | 
					                                        <Insets top="5.0" />
 | 
				
			||||||
            </HBox>
 | 
					                                    </padding>
 | 
				
			||||||
            <HBox prefHeight="50.0" prefWidth="632.0">
 | 
					                                </Label>
 | 
				
			||||||
               <children>
 | 
					                                <ChoiceBox fx:id="secondDessert" prefWidth="150.0" />
 | 
				
			||||||
                  <Label prefHeight="17.0" prefWidth="133.0" text="Zweites Dessert">
 | 
					                            </children>
 | 
				
			||||||
                     <padding>
 | 
					                        </HBox>
 | 
				
			||||||
                        <Insets top="5.0" />
 | 
					                        <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
 | 
				
			||||||
                     </padding>
 | 
					                            <children>
 | 
				
			||||||
                  </Label>
 | 
					                                <Button id="btCreateFoodplan" fx:id="erstellenButton" mnemonicParsing="false" onAction="#onPlanErstellen" prefHeight="68.0" prefWidth="133.0" text="Plan erstellen" />
 | 
				
			||||||
                  <TextField />
 | 
					                                <Button id="btCancelFoodplan" mnemonicParsing="false" onAction="#onAbbrechen" prefHeight="68.0" prefWidth="133.0" text="Abbrechen" />
 | 
				
			||||||
               </children>
 | 
					                            </children>
 | 
				
			||||||
            </HBox>
 | 
					                        </HBox>
 | 
				
			||||||
         </children>
 | 
					                    </children>
 | 
				
			||||||
      </VBox>
 | 
					                </VBox>
 | 
				
			||||||
      <Button id="btCreateFoodplan" layoutX="112.0" layoutY="427.0" mnemonicParsing="false" prefHeight="68.0" prefWidth="133.0" text="Plan erstellen" />
 | 
					            </children>
 | 
				
			||||||
      <Button id="btCancelFoodplan" layoutX="299.0" layoutY="427.0" mnemonicParsing="false" prefHeight="68.0" prefWidth="133.0" text="Abbrechen" />
 | 
					        </VBox>
 | 
				
			||||||
   </children>
 | 
					    </children>
 | 
				
			||||||
</AnchorPane>
 | 
					</HBox>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user