package com.example.vpr_javafx; 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.AnchorPane; import javafx.stage.Stage; import java.io.Console; import java.io.File; 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.HashMap; import java.util.List; public class HelloController { @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 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 AnchorPane anchorPane; @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 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 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 menu = Files.readAllLines(Paths.get("menue.txt")); for (int i = 0; i < menu.size(); i++) { String[] parts = menu.get(i).split(";"); String dish = parts[1]; String sideDish = parts[2]; String typ = parts[3]; String allergenic = parts[4]; String dayMenu = dish+"\n"+sideDish+"\n"+"("+allergenic+")"; 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 = (Stage) ((Node) event.getSource()).getScene().getWindow(); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); } /** * OnRegistrationButton() lässt einen neuen Nutzer anlegen * @param event * @throws IOException * @author Kevin Maier */ @FXML protected void OnRegistrationButton(ActionEvent event) throws IOException { Alert alert = new Alert(Alert.AlertType.WARNING); Data validData = new Data("user.txt"); if (tfName.getText().isEmpty() || tfPhone.getText().isEmpty() || tfChild.getText().isEmpty()) { alert.setContentText("Registrierungsdaten unvollständig"); } else if (validData.validateData(tfPhone, pfPassword, this)) { try (FileWriter writer = new FileWriter("user.txt")){ writer.write(tfName.getText() + ";" + tfStreet.getText() + " " + tfHouseNumber.getText() + "," + tfPostalCode + " " + tfCity.getText() + ";" + tfPhone.getText() + ";" + tfChild.getText() + ";" + pfPassword.getText()); writer.flush(); } 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) throws IOException { 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 getLabelValueWithRadio(ActionEvent event) { chosenMeals = new ArrayList<>(); String mainDish; String dessert; 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(); } }