Gericht erstellen Maske

This commit is contained in:
SvenAlte 2023-12-13 18:51:01 +01:00
parent cf4014f552
commit 99419ed471
7 changed files with 107 additions and 5 deletions

View File

@ -9,6 +9,8 @@ import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.RowConstraints;
import javafx.stage.Modality;
import javafx.stage.Stage;
public class EssensverwaltungMitarbeiterView {
@ -42,6 +44,15 @@ public class EssensverwaltungMitarbeiterView {
}
public void onHinzufuegen(ActionEvent actionEvent) {
Stage gerichterstellung = new Stage();
//solange das neu geöffnete Fenster offen ist, wird das Hauptfenster gesperrt
gerichterstellung.initModality(Modality.APPLICATION_MODAL);
VerwaltungApplication.sceneWechseln(gerichterstellung, 400, 530, "gerichterstellung_mitarbeiter-view.fxml");
gerichterstellung.minWidthProperty().set(400);
gerichterstellung.minHeightProperty().set(530);
}
public void onZurueck(ActionEvent actionEvent) {

View File

@ -0,0 +1,52 @@
package de.subway_surfers.vpr_app;
import de.subway_surfers.vpr_app.logik.Zutat;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import java.util.ArrayList;
public class GerichterstellungMitarbeiterView {
private @FXML HBox anzeigeInhaltsstoffe;
private @FXML TextArea eingabeBeschreibung;
private @FXML TextField eingabeName;
private @FXML Button buttonInhaltsstoffe;
private @FXML TextField eingabeInhaltsstoffe;
private ArrayList<Zutat> zutaten;
public void initialize() {
zutaten = new ArrayList<>();
//wird das Fenster vergrößert, wird das Eingabefeld für Inhaltstoffe und den Hinzufügenbutton
// auf die volle breite vergrößert.
((Pane) eingabeInhaltsstoffe.getParent()).widthProperty().addListener((obs, oldValue, newValue) -> {
//eingabeName, da dieses Feld immer die gesamte breite der Stage haben.
eingabeInhaltsstoffe.setPrefWidth(eingabeName.getWidth() - buttonInhaltsstoffe.getPrefWidth());
});
}
public void onButtonInhaltsstoffeClick(ActionEvent actionEvent) {
String text = eingabeInhaltsstoffe.getText();
if (!text.equals("")) {
eingabeInhaltsstoffe.setText("");
Button neuerInhalt = new Button();
neuerInhalt.setText(text);
anzeigeInhaltsstoffe.getChildren().add(neuerInhalt);
Zutat neue = new Zutat(text);
zutaten.add(neue);
neuerInhalt.setOnAction(e -> {
((HBox) neuerInhalt.getParent()).getChildren().remove(neuerInhalt);
zutaten.remove(neue);
});
}
}
}

View File

@ -8,8 +8,11 @@ public class HauptmenueMitarbeiterView {
VerwaltungApplication.abmelden();
}
public void onAccountAnlegen(ActionEvent actionEvent) {
public void onAccountAnlegenClick(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("accounterstellung_mitarbeiter.fxml");
}
public void onSpeiseplanClick(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("essensverwaltung_mitarbeiter-view.fxml");
}
}

View File

@ -95,10 +95,12 @@ public class VerwaltungApplication extends Application {
Stage akt = VerwaltungApplication.getStage();
//neue Scene wird auf eine neue Stage gesetzt
try {
Scene scene = new Scene(fxmlLoader.load(), width, height);
Scene scene = new Scene(fxmlLoader.load());
neue.setScene(scene);
neue.show();
neue.setHeight(height);
neue.setWidth(width);
}
//wird die angegebene fxml Datei nicht gefunden, wird ein Alertfenster geöffnet
catch (IOException | RuntimeException e) {

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="de.subway_surfers.vpr_app.GerichterstellungMitarbeiterView"
prefHeight="400.0" prefWidth="600.0"
stylesheets="@layout.css" styleClass="main">
<center>
<VBox styleClass="gerichterstellung_felder">
<TextField fx:id="eingabeName" promptText="Name des Gerichtes" focusTraversable="false"/>
<TextArea fx:id="eingabeBeschreibung" promptText="Beschreibung" focusTraversable="false"/>
<HBox>
<TextField fx:id="eingabeInhaltsstoffe" promptText="Inhaltsstoffe" focusTraversable="false"/>
<Button fx:id="buttonInhaltsstoffe" onAction="#onButtonInhaltsstoffeClick" text="Hinzufügen"/>
</HBox>
<HBox fx:id="anzeigeInhaltsstoffe" />
</VBox>
</center>
<bottom>
<BorderPane>
<right>
<HBox styleClass="button_untenrechts">
<Button text="Speichern"/>
</HBox>
</right>
</BorderPane>
</bottom>
</BorderPane>

View File

@ -23,11 +23,11 @@
<BorderPane styleClass="main">
<left>
<VBox styleClass="hauptmenue_buttons_links">
<Button text="Speiseplan"/>
<Button text="Speiseplan" onAction="#onSpeiseplanClick"/>
<Button text="Alle Bestellungen anzeigen"/>
<Button text="Rechnungen herunterladen"/>
<Button text="Daten importieren/Exportieren"/>
<Button text="Account anlegen" onAction="#onAccountAnlegen"/>
<Button text="Account anlegen" onAction="#onAccountAnlegenClick"/>
</VBox>
</left>
<right>

View File

@ -18,7 +18,7 @@
-fx-padding: 20;
}
.hauptmenue_buttons_links{
.hauptmenue_buttons_links, .gerichterstellung_felder{
-fx-spacing: 20;
}