538 lines
16 KiB
Java
538 lines
16 KiB
Java
package com.example.vpr_javafx;
|
|
|
|
import javafx.collections.FXCollections;
|
|
import javafx.collections.ObservableList;
|
|
import javafx.event.ActionEvent;
|
|
import javafx.fxml.FXML;
|
|
import javafx.fxml.FXMLLoader;
|
|
import javafx.scene.Node;
|
|
import javafx.scene.Parent;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.*;
|
|
import javafx.scene.image.Image;
|
|
import javafx.scene.image.ImageView;
|
|
import javafx.scene.layout.StackPane;
|
|
import javafx.stage.Stage;
|
|
import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Paths;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class MainController {
|
|
|
|
@FXML
|
|
private Label lMonH1;
|
|
@FXML
|
|
private Label lMonH2;
|
|
@FXML
|
|
private Label lMonD1;
|
|
@FXML
|
|
private Label lMonD2;
|
|
@FXML
|
|
private Label lTueH1;
|
|
@FXML
|
|
private Label lTueH2;
|
|
@FXML
|
|
private Label lTueD1;
|
|
@FXML
|
|
private Label lTueD2;
|
|
@FXML
|
|
private Label lWednH1;
|
|
@FXML
|
|
private Label lWednH2;
|
|
@FXML
|
|
private Label lWednD1;
|
|
@FXML
|
|
private Label lWednD2;
|
|
@FXML
|
|
private Label lThurH1;
|
|
@FXML
|
|
private Label lThurH2;
|
|
@FXML
|
|
private Label lThurD1;
|
|
@FXML
|
|
private Label lThurD2;
|
|
@FXML
|
|
private Label lFriH1;
|
|
@FXML
|
|
private Label lFriH2;
|
|
@FXML
|
|
private Label lFriD1;
|
|
@FXML
|
|
private Label lFriD2;
|
|
|
|
@FXML
|
|
private Label monDat;
|
|
@FXML
|
|
private Label tueDat;
|
|
@FXML
|
|
private Label wedDat;
|
|
@FXML
|
|
private Label thurDat;
|
|
@FXML
|
|
private Label friDat;
|
|
|
|
@FXML
|
|
private ImageView imgImage1;
|
|
@FXML
|
|
private ImageView imgImage2;
|
|
@FXML
|
|
private ImageView imgImage3;
|
|
@FXML
|
|
private ImageView imgImage4;
|
|
@FXML
|
|
private ImageView imgImage5;
|
|
@FXML
|
|
private ImageView imgImage6;
|
|
@FXML
|
|
private ImageView imgImage7;
|
|
@FXML
|
|
private ImageView imgImage8;
|
|
@FXML
|
|
private ImageView imgImage9;
|
|
@FXML
|
|
private ImageView imgImage10;
|
|
|
|
@FXML
|
|
private TextField tfPhone;
|
|
@FXML
|
|
public TextField tfName;
|
|
@FXML
|
|
public TextField tfChild;
|
|
@FXML
|
|
public TextField tfStreet;
|
|
@FXML
|
|
public TextField tfHouseNumber;
|
|
@FXML
|
|
public TextField tfPostalCode;
|
|
@FXML
|
|
public TextField tfCity;
|
|
|
|
@FXML
|
|
private PasswordField pfPassword;
|
|
@FXML
|
|
private Label allergene;
|
|
|
|
@FXML
|
|
private Button btResetSelection;
|
|
@FXML
|
|
private Button btToOrder;
|
|
@FXML
|
|
private RadioButton rbMonH1;
|
|
@FXML
|
|
private RadioButton rbMonH2;
|
|
@FXML
|
|
private RadioButton rbTueH1;
|
|
@FXML
|
|
private RadioButton rbTueH2;
|
|
@FXML
|
|
private RadioButton rbWednH1;
|
|
@FXML
|
|
private RadioButton rbWednH2;
|
|
@FXML
|
|
private RadioButton rbThurH1;
|
|
@FXML
|
|
private RadioButton rbThurH2;
|
|
@FXML
|
|
private RadioButton rbFriH1;
|
|
@FXML
|
|
private RadioButton rbFriH2;
|
|
|
|
@FXML
|
|
private ListView<String> orderList;
|
|
|
|
|
|
@FXML
|
|
final String imagePathUrl = "file:target/classes/com/example/vpr_javafx/pics/";
|
|
@FXML
|
|
final String veggieImageUrl = imagePathUrl + "vegetarisch.png";
|
|
@FXML
|
|
final String veganImageUrl = imagePathUrl + "vegan.png";
|
|
@FXML
|
|
final String meatImageUrl = imagePathUrl + "fleisch.png";
|
|
@FXML
|
|
private String imageUrl;
|
|
|
|
private ArrayList<String> chosenMeals;
|
|
|
|
@FXML
|
|
protected void OnSignInButton(ActionEvent event) throws IOException
|
|
{
|
|
Data data = new Data("user.txt");
|
|
data.validateData(tfPhone, pfPassword, this);
|
|
}
|
|
|
|
|
|
@FXML
|
|
protected void FillLabels() {
|
|
try {
|
|
List<String> menuLines = Files.readAllLines(Paths.get("menue.txt"));
|
|
|
|
for (int i = 0; i < menuLines.size(); i++)
|
|
{
|
|
|
|
String[] parts = menuLines.get(i).split(";");
|
|
|
|
String date = parts[0];
|
|
String day = parts[1];
|
|
String dish = parts[2];
|
|
String sideDish = parts[3];
|
|
String typ = parts[4];
|
|
String allergenic = parts[5];
|
|
|
|
String[] allergenics = allergenic.split(",");
|
|
|
|
Menu menu = new Menu(date, dish, sideDish, typ, Arrays.stream(allergenics).toList());
|
|
|
|
String dayMenu = dish+"\n"+sideDish+"\n"+allergenic;
|
|
|
|
switch (day)
|
|
{
|
|
case "Montag":
|
|
monDat.setText(menu.getDate());
|
|
break;
|
|
case "Dienstag":
|
|
tueDat.setText(menu.getDate());
|
|
break;
|
|
case "Mittwoch":
|
|
wedDat.setText(menu.getDate());
|
|
break;
|
|
case "Donnerstag":
|
|
thurDat.setText(menu.getDate());
|
|
break;
|
|
case "Freitag":
|
|
friDat.setText(menu.getDate());
|
|
}
|
|
|
|
if(typ.equals("Fleisch")) {
|
|
imageUrl=meatImageUrl;
|
|
}
|
|
if(typ.equals("Vegetarisch")) {
|
|
imageUrl=veggieImageUrl;
|
|
}
|
|
if(typ.equals("Vegan")) {
|
|
imageUrl=veganImageUrl;
|
|
}
|
|
|
|
Image image = new Image(imageUrl);
|
|
|
|
switch (i) {
|
|
case 0:
|
|
lMonH1.setText(dayMenu);
|
|
imgImage1.setImage(image);
|
|
break;
|
|
case 1:
|
|
lMonD1.setText(dayMenu);
|
|
break;
|
|
case 2:
|
|
lMonH2.setText(dayMenu);
|
|
imgImage2.setImage(image);
|
|
break;
|
|
case 3:
|
|
lMonD2.setText(dayMenu);
|
|
break;
|
|
case 4:
|
|
lTueH1.setText(dayMenu);
|
|
imgImage3.setImage(image);
|
|
break;
|
|
case 5:
|
|
lTueD1.setText(dayMenu);
|
|
break;
|
|
case 6:
|
|
lTueH2.setText(dayMenu);
|
|
imgImage4.setImage(image);
|
|
break;
|
|
case 7:
|
|
lTueD2.setText(dayMenu);
|
|
break;
|
|
case 8:
|
|
lWednH1.setText(dayMenu);
|
|
imgImage5.setImage(image);
|
|
break;
|
|
case 9:
|
|
lWednD1.setText(dayMenu);
|
|
break;
|
|
case 10:
|
|
lWednH2.setText(dayMenu);
|
|
imgImage6.setImage(image);
|
|
break;
|
|
case 11:
|
|
lWednD2.setText(dayMenu);
|
|
break;
|
|
case 12:
|
|
lThurH1.setText(dayMenu);
|
|
imgImage7.setImage(image);
|
|
break;
|
|
case 13:
|
|
lThurD1.setText(dayMenu);
|
|
break;
|
|
case 14:
|
|
lThurH2.setText(dayMenu);
|
|
imgImage8.setImage(image);
|
|
break;
|
|
case 15:
|
|
lThurD2.setText(dayMenu);
|
|
break;
|
|
case 16:
|
|
lFriH1.setText(dayMenu);
|
|
imgImage9.setImage(image);
|
|
break;
|
|
case 17:
|
|
lFriD1.setText(dayMenu);
|
|
break;
|
|
case 18:
|
|
lFriH2.setText(dayMenu);
|
|
imgImage10.setImage(image);
|
|
break;
|
|
case 19:
|
|
lFriD2.setText(dayMenu);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* writeAllergene() is a method to format and set allergene
|
|
* @author Madeleine Vigier
|
|
*/
|
|
@FXML
|
|
protected void writeAllergene() {
|
|
allergene.setText("a: Eier; b: Soja,\n"
|
|
+ "c: Milch; d: Erdnüsse;\n"
|
|
+ "e: Weichtiere; f: Krebstiere;\n"
|
|
+ "g: Getreide; h: Senf; i: Sesam;\n"
|
|
+ "j: Schwefeldioxid und Sulfit;\n"
|
|
+ "k: Nüsse; l: Sellerie;\n"
|
|
+ "m: Fische; n: Lupinen\n\n"
|
|
+ "1: Nitrit-Pökelsalz\n"
|
|
+ "2: Phosphat\n"
|
|
+ "3: Nitrat\n"
|
|
+ "4: Antioxidationsmittel\n"
|
|
+ "5: Farbstoff\n"
|
|
+ "6: Geschmacksverstärker;\n"
|
|
+ "7: Süßungsmittel;\n"
|
|
+ "8: Konservierungsstoff");
|
|
}
|
|
|
|
/**
|
|
* ToRegistration() ruft die Registration-View auf, sobald man auf den Registrierungs-Button klickt
|
|
* @param event
|
|
* @throws IOException
|
|
* @author Kevin Maier
|
|
*/
|
|
@FXML
|
|
protected void ToRegistration(ActionEvent event) throws IOException
|
|
{
|
|
Parent root = FXMLLoader.load(getClass().getResource("Registration-view.fxml"));
|
|
Stage stage = new Stage();
|
|
Scene scene = new Scene(root);
|
|
stage.setScene(scene);
|
|
stage.show();
|
|
}
|
|
|
|
/**
|
|
* OnRegistrationButton() creates a new user
|
|
* @param event
|
|
* @throws IOException
|
|
* @author Kevin Maier
|
|
*/
|
|
@FXML
|
|
protected void OnRegistrationButton(ActionEvent event) throws IOException
|
|
{
|
|
Alert alert = new Alert(Alert.AlertType.WARNING);
|
|
Data validRegistration = new Data("user.txt");
|
|
|
|
if (validRegistration.validateRegistration(tfName, tfPhone, pfPassword, tfStreet, tfHouseNumber, tfPostalCode, tfCity, tfChild, this))
|
|
{
|
|
try (FileWriter writer = new FileWriter("user.txt", true)){
|
|
writer.write(tfName.getText() + ";" + tfStreet.getText() + " " + tfHouseNumber.getText() + "," + tfPostalCode.getText() + " " + tfCity.getText() + ";" + tfPhone.getText() + ";" + tfChild.getText() + ";" + pfPassword.getText() + System.lineSeparator());
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
@FXML
|
|
protected void setRadioButton()
|
|
{
|
|
ToggleGroup monToggle = new ToggleGroup();
|
|
ToggleGroup tueToggle = new ToggleGroup();
|
|
ToggleGroup wednToggle = new ToggleGroup();
|
|
ToggleGroup thurToggle = new ToggleGroup();
|
|
ToggleGroup friToggle = new ToggleGroup();
|
|
|
|
rbMonH1.setToggleGroup(monToggle);
|
|
rbMonH2.setToggleGroup(monToggle);
|
|
rbTueH1.setToggleGroup(tueToggle);
|
|
rbTueH2.setToggleGroup(tueToggle);
|
|
rbWednH1.setToggleGroup(wednToggle);
|
|
rbWednH2.setToggleGroup(wednToggle);
|
|
rbThurH1.setToggleGroup(thurToggle);
|
|
rbThurH2.setToggleGroup(thurToggle);
|
|
rbFriH1.setToggleGroup(friToggle);
|
|
rbFriH1.setToggleGroup(friToggle);
|
|
|
|
btResetSelection.setVisible(true);
|
|
btToOrder.setVisible(true);
|
|
rbMonH1.setVisible(true);
|
|
rbMonH2.setVisible(true);
|
|
rbTueH1.setVisible(true);
|
|
rbTueH2.setVisible(true);
|
|
rbWednH1.setVisible(true);
|
|
rbWednH2.setVisible(true);
|
|
rbThurH1.setVisible(true);
|
|
rbThurH2.setVisible(true);
|
|
rbFriH1.setVisible(true);
|
|
rbFriH2.setVisible(true);
|
|
}
|
|
|
|
@FXML
|
|
protected void resetSelection(ActionEvent event)
|
|
{
|
|
rbMonH1.setSelected(false);
|
|
rbMonH2.setSelected(false);
|
|
rbTueH1.setSelected(false);
|
|
rbTueH2.setSelected(false);
|
|
rbWednH1.setSelected(false);
|
|
rbWednH2.setSelected(false);
|
|
rbThurH1.setSelected(false);
|
|
rbThurH2.setSelected(false);
|
|
rbFriH1.setSelected(false);
|
|
rbFriH2.setSelected(false);
|
|
chosenMeals.clear();
|
|
}
|
|
|
|
@FXML
|
|
protected void toOrder(ActionEvent event) throws IOException
|
|
{
|
|
try (FileWriter writer = new FileWriter("parentOrder.txt", true))
|
|
{
|
|
writer.write(getLabelValueWithRadio().toString() + System.lineSeparator());
|
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
|
alert.setContentText("Bestellung abgeschickt.");
|
|
|
|
Parent rootParent = FXMLLoader.load(getClass().getResource("Order-view.fxml"));
|
|
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
|
|
Scene scene = new Scene(rootParent);
|
|
stage.setScene(scene);
|
|
stage.show();
|
|
|
|
ObservableList<String> orders = FXCollections.observableArrayList(getLabelValueWithRadio());
|
|
orderList = new ListView<>(orders);
|
|
StackPane rootStackPane = new StackPane();
|
|
rootStackPane.getChildren().add(orderList);
|
|
Scene scene2 = new Scene(rootStackPane);
|
|
stage.setScene(scene2);
|
|
stage.show();
|
|
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@FXML
|
|
protected void removeFromOrder() throws IOException
|
|
{
|
|
|
|
}
|
|
|
|
|
|
@FXML
|
|
protected ArrayList<String> getLabelValueWithRadio()
|
|
{
|
|
chosenMeals = new ArrayList<>();
|
|
String mainDish;
|
|
String dessert;
|
|
|
|
Data data = new Data("user.txt");
|
|
for (User user : data.readUser())
|
|
{
|
|
if (tfPhone.getText().equals(user.getPhonenumber()) && pfPassword.getText().equals(user.getPassword()))
|
|
{
|
|
chosenMeals.add(user.getNameParent1()+"\n");
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (rbMonH1.isSelected())
|
|
{
|
|
mainDish = lMonH1.getText();
|
|
dessert = lMonD1.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
|
|
}
|
|
if (rbMonH2.isSelected())
|
|
{
|
|
mainDish = lMonH2.getText();
|
|
dessert = lMonD2.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbTueH1.isSelected())
|
|
{
|
|
mainDish = lTueH1.getText();
|
|
dessert = lTueD1.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbTueH2.isSelected())
|
|
{
|
|
mainDish = lTueH2.getText();
|
|
dessert = lTueD2.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbWednH1.isSelected())
|
|
{
|
|
mainDish = lWednH1.getText();
|
|
dessert = lWednD1.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbWednH2.isSelected())
|
|
{
|
|
mainDish = lWednH2.getText();
|
|
dessert = lWednD2.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbThurH1.isSelected())
|
|
{
|
|
mainDish = lThurH1.getText();
|
|
dessert = lThurD1.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbThurH2.isSelected())
|
|
{
|
|
mainDish = lThurH2.getText();
|
|
dessert = lThurD2.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbFriH1.isSelected())
|
|
{
|
|
mainDish = lFriH1.getText();
|
|
dessert = lFriD1.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
if (rbFriH2.isSelected())
|
|
{
|
|
mainDish = lFriH2.getText();
|
|
dessert = lFriD2.getText();
|
|
chosenMeals.add("Hauptgericht: " + mainDish + " Dessert: " + dessert);
|
|
}
|
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
|
alert.setContentText(chosenMeals.toString());
|
|
alert.show();
|
|
|
|
return chosenMeals;
|
|
}
|
|
|
|
|
|
} |