Merge pull request 'Wechslen zwischen Szenen und login / hauptmenue Maske für Mitarbeiter' (#2) from sven into master

Reviewed-on: #2
This commit is contained in:
Sven Alteköster 2023-12-11 11:28:05 +01:00
commit 4bc951b162
10 changed files with 310 additions and 57 deletions

View File

@ -0,0 +1,9 @@
package de.subway_surfers.vpr_app;
import javafx.event.ActionEvent;
public class HauptmenueMitarbeiterView {
public void onAbmelden(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("login-view.fxml");
}
}

View File

@ -1,25 +0,0 @@
package de.subway_surfers.vpr_app;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 320, 240);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}

View File

@ -1,16 +0,0 @@
package de.subway_surfers.vpr_app;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class HelloController {
@FXML
private Label welcomeText;
@FXML
protected void onHelloButtonClick() {
welcomeText.setText("Welcome to JavaFX Application!");
}
}

View File

@ -0,0 +1,6 @@
package de.subway_surfers.vpr_app;
import javafx.scene.control.Button;
public class LoginView {
}

View File

@ -0,0 +1,115 @@
package de.subway_surfers.vpr_app;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.stage.Stage;
import java.io.IOException;
public class VerwaltungApplication extends Application {
private static Stage stage;
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("login-view.fxml"));
Scene scene = new Scene(fxmlLoader.load());
stage.setWidth(960);
stage.setHeight(540);
stage.setMinWidth(960);
stage.setMinHeight(540);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
VerwaltungApplication.stage = stage;
}
public static Stage getStage() {
return stage;
}
public static void setStage(Stage stage) {
VerwaltungApplication.stage = stage;
}
/**
* Die Scene auf der aktuellen Stage wird durch die in der fxml-Datei definierte Scene ausgetauscht.
*
* Geschrieben: Sven Alteköster
* Getestet:
*
* @param fxml name der zu ladenden fxml Datei.
*/
public static void sceneWechseln(String fxml) {
FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource(fxml));
Stage akt = VerwaltungApplication.getStage();
double breite = akt.getWidth();
double hoehe = akt.getHeight();
//neue Scene wird auf die Stage gesetzt
try {
Scene scene = new Scene(fxmlLoader.load());
akt.setScene(scene);
akt.show();
akt.setWidth(breite);
akt.setHeight(hoehe);
}
//wird die angegebene fxml Datei nicht gefunden, wird ein Alertfenster geöffnet
catch (IOException e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setContentText("Beim Laden der Maske ist ein Fehler aufgetreten");
alert.showAndWait();
e.printStackTrace();
}
}
/**
* in einem neuen Fenster wird die in der fxml-Datei definierte Scene gesetzt.
* Die geladene Scene wird <b><u>nicht</u></b> zu der neuen Hauptstage.
*
* Geschrieben: Sven Alteköster
* Getestet:
*
* @param neue Stage auf der die Scene gesetzt werden soll
* @param width breite des neuen Fensters
* @param height höhe des neuen Fensters
* @param fxml name der fxml Datei
*/
public static void sceneWechseln(Stage neue, int width, int height, String fxml) {
FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource(fxml));
Stage akt = VerwaltungApplication.getStage();
//neue Scene wird auf eine neue Stage gesetzt
try {
Scene scene = new Scene(fxmlLoader.load(), width, height);
neue.setScene(scene);
neue.show();
}
//wird die angegebene fxml Datei nicht gefunden, wird ein Alertfenster geöffnet
catch (IOException | RuntimeException e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setContentText("Beim Laden der Maske ist ein Fehler aufgetreten");
alert.showAndWait();
e.printStackTrace();
}
}
public static void main(String[] args) {
launch();
}
}

View File

@ -0,0 +1,26 @@
package de.subway_surfers.vpr_app;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.stage.Stage;
import java.io.IOException;
public class VerwaltungController {
public void initialize(){
}
/**
* Wird der Abmeldenbutton geklickt, wird der Nutzer angemeldet.
*/
public void onAnmeldenClick(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
}
}

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Erstellt von Sven Alteköster-->
<?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.HauptmenueMitarbeiterView"
prefHeight="400.0" prefWidth="600.0"
stylesheets="@layout.css">
<top>
<BorderPane styleClass="kopfzeile">
<right>
<Button text="Abmelden" onAction="#onAbmelden"/>
</right>
</BorderPane>
</top>
<center>
<BorderPane styleClass="main">
<left>
<VBox styleClass="hauptmenue_buttons_links">
<Button text="Speiseplan"/>
<Button text="Alle Bestellungen anzeigen"/>
<Button text="Rechnungen herunterladen"/>
<Button text="Daten importieren/Exportieren"/>
<Button text="Account anlegen"/>
</VBox>
</left>
<right>
<GridPane styleClass="hauptmenue_wochenuebersicht">
<Label text="Montag" GridPane.columnIndex="0" GridPane.rowIndex="0"/>
<Label text="Dienstag" GridPane.columnIndex="1" GridPane.rowIndex="0"/>
<Label text="Mittwoch" GridPane.columnIndex="2" GridPane.rowIndex="0"/>
<Label text="Donnerstag" GridPane.columnIndex="3" GridPane.rowIndex="0"/>
<Label text="Freitag" GridPane.columnIndex="4" GridPane.rowIndex="0"/>
<Label text="Gericht1" styleClass="hauptmenue_gericht" GridPane.columnIndex="0" GridPane.rowIndex="1"/>
</GridPane>
</right>
</BorderPane>
</center>
<right>
<TilePane>
</TilePane>
</right>
</BorderPane>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Button?>
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml"
fx:controller="de.subway_surfers.vpr_app.HelloController">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
</padding>
<Label fx:id="welcomeText"/>
<Button text="Hello!" onAction="#onHelloButtonClick"/>
</VBox>

View File

@ -0,0 +1,63 @@
.button {
-fx-pref-width: 100;
-fx-font-size: 15;
}
.kopfzeile{
-fx-border-width: 1;
-fx-border-color: transparent transparent black transparent;
-fx-padding: 10 20;
}
.main {
-fx-padding: 20;
}
.hauptmenue_buttons_links{
-fx-spacing: 20;
}
.hauptmenue_buttons_links .button{
-fx-pref-height: 32;
-fx-pref-width: 250;
}
.hauptmenue_wochenuebersicht{
-fx-grid-lines-visible: true;
-fx-grid-lines-visible: true;
}
.hauptmenue_wochenuebersicht > *{
-fx-pref-width: 100;
-fx-alignment: CENTER;
}
.hauptmenue_gericht {
-fx-pref-height: 50;
}
.login_eingabe {
-fx-vgap: 20;
-fx-alignment: CENTER;
}
.login_eingabe > *{
-fx-alignment: CENTER_LEFT;
-fx-font-size: 15;
-fx-pref-width: 200;
}
.login_btn_anmelden {
-fx-padding: 20;
}
.ueberschrift {
-fx-alignment: center;
}
.ueberschrift > .label{
-fx-font-size: 30;
}

View File

@ -0,0 +1,40 @@
<?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.VerwaltungController"
prefHeight="400.0" prefWidth="600.0"
stylesheets="@layout.css" styleClass="login aussen">
<center>
<GridPane styleClass="login_eingabe">
<HBox GridPane.columnSpan="2" styleClass="ueberschrift">
<Label text="Anmelden" styleClass="label"/>
</HBox>
<Label text="Benutzername" GridPane.rowIndex="1" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="1" GridPane.columnIndex="1"/>
<Label text="Passwort" GridPane.rowIndex="2" GridPane.columnIndex="0"/>
<PasswordField GridPane.rowIndex="2" GridPane.columnIndex="1"/>
<CheckBox text="Kennwort merken" GridPane.rowIndex="3" GridPane.columnIndex="0"/>
</GridPane>
</center>
<bottom>
<BorderPane>
<right>
<VBox styleClass="login_btn_anmelden">
<Button text="Anmelden" onAction="#onAnmeldenClick"/>
</VBox>
</right>
</BorderPane>
</bottom>
</BorderPane>