17 Commits

Author SHA1 Message Date
4a97fee7e7 Erste Ansätze der HTTP-Client integration 2023-12-14 16:53:52 +01:00
ea8c810f13 @author geadded 2023-12-14 13:59:03 +01:00
a34ae15b88 Leerzeile für testzwecke 2023-12-14 09:18:41 +01:00
73416b60e0 CSS entfernt 2023-12-14 08:59:09 +01:00
b77e42914f CSS entfernt 2023-12-14 08:53:06 +01:00
33ebabe083 RechnungFilter View+Controller 2023-12-13 18:19:02 +01:00
7eea5b2a50 ListView Item Controller + View 2023-12-13 18:08:20 +01:00
e8d29f851c Inhaltsstoffe-Filtern View+Controller 2023-12-13 17:27:57 +01:00
7f4fde9f4a Merge pull request 'samu' (#4) from samu into master
Reviewed-on: #4
2023-12-13 00:03:21 +01:00
ca919637a3 Kommentare + Regions 2023-12-13 00:01:35 +01:00
d69a3d6010 Klassen erstellt 2023-12-12 23:50:10 +01:00
aa9baabb5c weiß nicht was das ist 2023-12-12 23:21:00 +01:00
2cc99c5cca Merge pull request 'svenAccounterstellung' (#3) from svenAccounterstellung into master
Reviewed-on: #3
2023-12-12 12:28:11 +01:00
SvenAlte
0a15189a66 AccounterstellungMaske 2023-12-12 12:26:48 +01:00
SvenAlte
3fbca319ba VPR 11.12 1.Block 2023-12-11 14:32:04 +01:00
4bc951b162 Merge pull request 'Wechslen zwischen Szenen und login / hauptmenue Maske für Mitarbeiter' (#2) from sven into master
Reviewed-on: #2
2023-12-11 11:28:05 +01:00
79a1af6ac2 Merge pull request 'test' (#1) from sven into master
Reviewed-on: #1
2023-12-04 15:01:15 +01:00
22 changed files with 967 additions and 10 deletions

3
.idea/misc.xml generated
View File

@@ -7,8 +7,9 @@
<option value="$PROJECT_DIR$/pom.xml" /> <option value="$PROJECT_DIR$/pom.xml" />
</list> </list>
</option> </option>
<option name="workspaceImportForciblyTurnedOn" value="true" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="21" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

124
.idea/uiDesigner.xml generated Normal file
View File

@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

View File

@@ -0,0 +1,50 @@
// Programmiert von Samuel Wolff
// Noch nicht getestet
package Logik;
public class Account {
// region Felder
private String passwort;
private int id;
private String benutzername;
// endregion
// region Getter & Setter
public String getPasswort() {
return passwort;
}
public void setPasswort(String passwort) {
this.passwort = passwort;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBenutzername() {
return benutzername;
}
public void setBenutzername(String benutzername) {
this.benutzername = benutzername;
}
// endregion
// region Konstruktoren
public Account(String passwort, String benutzername) {
this.passwort = passwort;
this.benutzername = benutzername;
}
// endregion
}

View File

@@ -0,0 +1,72 @@
// Programmiert von Samuel Wolff
// Noch nicht getestet
//
// TODO: Methoden implementieren!
//
package Logik;
import java.nio.file.WatchEvent;
import java.util.ArrayList;
public class Benutzer extends Account {
// region Felder
private String email;
private ArrayList<Kind> kinder;
// endregion
// region Getter & Setter
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public ArrayList<Kind> getKinder() {
return kinder;
}
public void setKinder(ArrayList<Kind> kinder) {
this.kinder = kinder;
}
// endregion
// region Konstruktoren
public Benutzer(String passwort, String benutzername, String email) {
super(passwort, benutzername);
this.email = email;
kinder = new ArrayList<>();
}
// endregion
// region Methoden
/**
* Lädt eine Rechnung herunter
*/
public void rechnungHerunterladen() {
}
/**
* Bestellt eine Mahlzeit
*/
public void mahlzeitBestellen() {
}
/**
* Zeigt Rechnungen gefiltert an
* @param params Die Filter Argumente
*/
public void rechnungAnzeigen(String params) {
}
// endregion
}

View File

@@ -0,0 +1,59 @@
package Logik;
import java.util.ArrayList;
public class Kind {
// region Felder
private String name;
private String vorname;
private int id;
// TODO Zutat implementieren!
// private ArrayList<Zutat> filter;
// endregion
// region Getter & Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVorname() {
return vorname;
}
public void setVorname(String vorname) {
this.vorname = vorname;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
// TODO Zutat implementieren!
/*
public ArrayList<Zutat> getFilter() {
return filter;
}
public void setFilter(ArrayList<Zutat> filter) {
this.filter = filter;
}
*/
// endregion
// region Konstruktoren
public Kind(String name, String vorname) {
this.name = name;
this.vorname = vorname;
}
// endregion
}

View File

@@ -0,0 +1,87 @@
// Programmiert von Samuel Wolff
// Noch nicht getestet
//
// TODO Methoden implementieren
//
package Logik;
import java.util.ArrayList;
public class MitarbeiterAccount extends Account {
// region Konstrukoren
public MitarbeiterAccount(String passwort, String benutzername) {
super(passwort, benutzername);
}
//endregion
// region Methoden
/**
* Setzt das Passwort eines gegebenen Accounts auf das gegebene Passwort zurück
* @param other Der Accout dessen Passwort zurückgesetzt wird
* @param passwort Das neue Passwort
*/
public void passwortZurzecksetzen(Account other, String passwort) {
// Soll das so?
other.setPasswort(passwort);
}
/**
* Bestellt eine Mahlzeit
*/
public void mahlzeitBestellen() {
}
/**
* Ändert einen Tagesplan
*/
public void tagesplanAendern() {
}
/**
* Erstellt einen neuen Account und fügt ihn in die Datenbank ein
* @param passwort Passwort des neuen Accounts
* @param benutzername Benutzername des neuen Accounts
* @param email Die E-Mail mit der sich der User einloggt
* @param kinder Eine Liste mit allen zugehörigen Kindern des Accounts
*/
public void accountErstellen(String passwort, String benutzername, String email, ArrayList<Kind> kinder) {
Benutzer newAccount = new Benutzer(passwort, benutzername, email);
newAccount.setKinder(kinder);
// Id muss aus der Datenbank geholt werden und dann gesetzt werden
}
/**
* Zeigt Rechnungen gefilter nach params an
* @param params Die Filter Arguemente
*/
public void rechnungAnzeigen(String[] params) {
}
// TODO sollte hier nicht noch ein User mitgegeben werden?
/**
* Weist ein Kind einem Account zu
* @param kind Das zuzuweisende Kind
*/
public void kinderZuweisen(Kind kind) {
}
// TODO hier auch?
/**
* Zeigt einen Benutzer an
*/
public void zeigeBenutzer() {
}
// endregion
}

View File

@@ -0,0 +1,40 @@
/**
* @author Samuel Wolff
* noch nicht getestet
*
* TODO Json hinzufügen
*/
package RestAPISchnittstelle;
public interface IRestAPI {
// region Get
void get(String controllerName);
void get (String controllerName, int id);
void get (String controllerName, int id, boolean bezahlt);
//endregion
// region put
void put (String controllerName, int id, String jsonData);
// endregion
// region POST
void post (String controllerName, String jsonData);
// endregion
// region DELETE
void delete(String controllerName, int id);
// endregion
}

View File

@@ -0,0 +1,152 @@
/**
* @author Samuel Wolff
* noch nicht getestet
* TODO FERTIG MACHEN
*/
package RestAPISchnittstelle;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
public class RestApiClient implements IRestAPI{
private final String urlBase = "https://pbg2h22awo.web.pb.bib.de/VPR_Schnittstelle/VPR_Schnittstelle/restAPI.php";
private final HttpClient client;
public RestApiClient(){
client = HttpClient.newHttpClient();
}
public static void main(String[] args){
new RestApiClient().get("Kind", 2);
}
/**
* @param controllerName
*/
@Override
public void get(String controllerName) {
URI apiUri = URI.create(String.format("%s/%s", urlBase, controllerName));
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(apiUri)
.GET()
.build();
try {
// Send the request and get the response
HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param controllerName
* @param id
*/
@Override
public void get(String controllerName, int id) {
URI apiUri = URI.create(String.format("%s/%s/%s", urlBase, controllerName, id));
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(apiUri)
.GET()
.build();
try {
// Send the request and get the response
HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param controllerName
* @param id
* @param bezahlt
*/
@Override
public void get(String controllerName, int id, boolean bezahlt) {
URI apiUri = URI.create(String.format("%s/%s?%s&%s", urlBase, controllerName, id, bezahlt));
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(apiUri)
.GET()
.build();
try {
// Send the request and get the response
HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param controllerName
* @param id
*/
@Override
public void put(String controllerName, int id, String jsonData) {
URI apiUri = URI.create(String.format("%s/%s/%s", urlBase,controllerName, id));
HttpRequest httpRequest = HttpRequest.newBuilder()
.uri(apiUri)
.header("Content-Type", "application/json")
.PUT(HttpRequest.BodyPublishers.ofString(jsonData, StandardCharsets.UTF_8))
.build();
try {
// Send the request and get the response
HttpResponse<String> httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
System.out.println("Response Body: " + httpResponse.body());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param controllerName
*/
@Override
public void post(String controllerName, String jsonData) {
}
/**
* @param controllerName
* @param id
*/
@Override
public void delete(String controllerName, int id) {
}
}

View File

@@ -0,0 +1,116 @@
package de.subway_surfers.vpr_app;
import javafx.collections.ListChangeListener;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.layout.Background;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import java.util.Random;
public class AccounterstellungMitarbeiter {
private @FXML Label status;
private @FXML Label einmalpw;
private @FXML HBox kindanzeige;
private @FXML GridPane kindDaten;
private @FXML RadioButton typMitarbeiter;
private @FXML RadioButton typEltern;
private ToggleGroup accountTyp;
public void initialize() {
accountTyp = new ToggleGroup();
accountTyp.getToggles().add(typEltern);
accountTyp.getToggles().add(typMitarbeiter);
einmalpw.setText(einmalPwGenerieren());
}
public void onZurueck(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
}
public void onAbmelden(ActionEvent actionEvent) {
VerwaltungApplication.abmelden();
}
public void onTypMitarbeiter(ActionEvent actionEvent) {
kindDaten.getChildren().clear();
}
public void onTypEltern(ActionEvent actionEvent) {
Label ueberschrift = new Label();
ueberschrift.setText("Daten des Kindes:");
kindDaten.addRow(0);
kindDaten.addColumn(0);
kindDaten.addRow(1);
kindDaten.add(ueberschrift,0,0);
kindDaten.addRow(1);
Label name = new Label("Name:");
kindDaten.add(name, 0, 1);
TextField nameEingabe = new TextField();
kindDaten.add(nameEingabe, 1, 1);
kindDaten.addRow(2);
Label geburtstag = new Label("Geburtstag: ");
kindDaten.add(geburtstag, 0, 2);
DatePicker geburtstagEingabe = new DatePicker();
geburtstagEingabe.setEditable(false);
kindDaten.add(geburtstagEingabe, 1, 2);
kindDaten.addRow(3);
Button hinzufuegen = new Button("hinzufügen");
kindDaten.add(hinzufuegen, 1, 3);
kindDaten.addRow(4);
hinzufuegen.setOnAction(e -> {
Button neues = new Button(nameEingabe.getText());
boolean nameGueltig = false;
boolean gebGueltig = false;
if (!nameEingabe.getText().equals("")) {
nameGueltig = true;
}
if (!geburtstagEingabe.getEditor().getText().equals("")) {
gebGueltig = true;
}
if (nameGueltig && gebGueltig) {
kindanzeige.getChildren().add(neues);
neues.setOnAction(a -> {
((HBox) neues.getParent()).getChildren().remove(neues);
});
nameEingabe.setText("");
geburtstagEingabe.getEditor().setText("");
}
});
}
private String einmalPwGenerieren() {
final int pwLaenge = 8;
String pw = "";
Random zufall = new Random();
for (int i = 0; i < pwLaenge; i++) {
pw += (char)zufall.nextInt('A', 'Z' + 1);
}
return pw;
}
private boolean eingabenGueltig() {
return true;
}
public void onSpeichern(ActionEvent actionEvent) {
if (eingabenGueltig()) {
status.setText("Daten Erfolgreich gespeichert");
einmalpw.setText(einmalPwGenerieren());
}
}
}

View File

@@ -3,7 +3,13 @@ package de.subway_surfers.vpr_app;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
public class HauptmenueMitarbeiterView { public class HauptmenueMitarbeiterView {
public void onAbmelden(ActionEvent actionEvent) { public void onAbmelden(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("login-view.fxml"); VerwaltungApplication.abmelden();
} }
public void onAccountAnlegen(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("accounterstellung_mitarbeiter.fxml");
}
} }

View File

@@ -0,0 +1,32 @@
/**
* @author Samuel Wolff
* noch nicht getestet
*/
// TODO Alle Zutaten einlesen und Listview mit zutatListView Objekten füllen
package de.subway_surfers.vpr_app;
import Logik.Kind;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ListView;
public class InhaltsstoffeFilternController {
private @FXML ListView<zutatListViewController> zutatListView;
private @FXML CheckBox speichernCheckBox;
private @FXML Button abbrechenButton;
private @FXML Button fortfahrenButton;
public void initialize(){
// hier ListView füllen
}
}

View File

@@ -0,0 +1,32 @@
/**
* @author Samuel Wolff
* noch nicht getestet
*/
// Noch nicht getestet
package de.subway_surfers.vpr_app;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
public class RechnungFilterViewController {
private @FXML RadioButton alle;
private @FXML RadioButton nichtBezahlt;
private @FXML RadioButton bezahlt;
private ToggleGroup rButtons;
private @FXML Button abbrechenButton;
private @FXML Button fortfahrenButton;
public void initialize(){
rButtons = new ToggleGroup();
alle.setToggleGroup(rButtons);
nichtBezahlt.setToggleGroup(rButtons);
bezahlt.setToggleGroup(rButtons);
}
}

View File

@@ -105,7 +105,10 @@ public class VerwaltungApplication extends Application {
e.printStackTrace(); e.printStackTrace();
} }
}
public static void abmelden() {
sceneWechseln("login-view.fxml");
} }
public static void main(String[] args) { public static void main(String[] args) {

View File

@@ -0,0 +1,32 @@
// Programmiert von Samuel Wolff
/**
* @author Samuel Wolff
* noch nicht getestet
*/
// TODO Sobald Zutat-Klasse implementiert ist Kommentare entfernen
package de.subway_surfers.vpr_app;
import javafx.fxml.FXML;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
public class zutatListViewController {
//private Zutat zutat;
private @FXML CheckBox isChecked;
private @FXML Label nameLabel;
/*public zutatListViewController(Zutat zutat){
this.zutat = zutat;
}*/
public void initialize(){
nameLabel.setText("ZutatA");
}
}

View File

@@ -1,6 +1,7 @@
module de.subway_surfers.vpr_app { module de.subway_surfers.vpr_app {
requires javafx.controls; requires javafx.controls;
requires javafx.fxml; requires javafx.fxml;
requires java.net.http;
opens de.subway_surfers.vpr_app to javafx.fxml; opens de.subway_surfers.vpr_app to javafx.fxml;

View File

@@ -0,0 +1,59 @@
<?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.AccounterstellungMitarbeiter"
prefHeight="400.0" prefWidth="600.0"
stylesheets="@layout.css">
<top>
<BorderPane styleClass="kopfzeile">
<left>
<Button text="Zurück" onAction="#onZurueck"/>
</left>
<right>
<Button text="Abmelden" onAction="#onAbmelden"/>
</right>
</BorderPane>
</top>
<center>
<BorderPane styleClass="main">
<left>
<VBox styleClass="accounterstellung_links">
<GridPane styleClass="accounterstellung_daten">
<Label text="Accountname:" GridPane.rowIndex="0" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="0" GridPane.columnIndex="1"/>
<Label text="E-Mail:" GridPane.rowIndex="1" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="1" GridPane.columnIndex="1"/>
<RadioButton fx:id="typMitarbeiter" onAction="#onTypMitarbeiter" text="Mitarbeiter" GridPane.rowIndex="2" GridPane.columnIndex="0"/>
<RadioButton fx:id="typEltern" onAction="#onTypEltern" text="Eltern" GridPane.rowIndex="2" GridPane.columnIndex="1"/>
</GridPane>
<GridPane fx:id="kindDaten" styleClass="accounterstellung_daten"/>
<HBox fx:id="kindanzeige"/>
</VBox>
</left>
<right>
<HBox>
<Label text="Einmalpasswort: "/>
<Label fx:id="einmalpw"/>
</HBox>
</right>
</BorderPane>
</center>
<bottom>
<BorderPane>
<right>
<HBox styleClass="button-untenrechts">
<Label fx:id="status"/>
<Button text="Speichern" onAction="#onSpeichern"/>
</HBox>
</right>
</BorderPane>
</bottom>
</BorderPane>

View File

@@ -27,7 +27,7 @@
<Button text="Alle Bestellungen anzeigen"/> <Button text="Alle Bestellungen anzeigen"/>
<Button text="Rechnungen herunterladen"/> <Button text="Rechnungen herunterladen"/>
<Button text="Daten importieren/Exportieren"/> <Button text="Daten importieren/Exportieren"/>
<Button text="Account anlegen"/> <Button text="Account anlegen" onAction="#onAccountAnlegen"/>
</VBox> </VBox>
</left> </left>
<right> <right>
@@ -43,9 +43,4 @@
</right> </right>
</BorderPane> </BorderPane>
</center> </center>
<right>
<TilePane>
</TilePane>
</right>
</BorderPane> </BorderPane>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- @author Samuel Wolff
Noch nicht getestet
TODO Style einbauen
-->
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox prefHeight="400.0" prefWidth="600.0" stylesheets="@layout.css" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.subway_surfers.vpr_app.InhaltsstoffeFilternController">
<Label text="Nach Inhaltsstoffen filtern" />
<ListView fx:id="zutatListView" />
<HBox prefHeight="128.0" prefWidth="600.0" styleClass="bottomHbox">
<CheckBox fx:id="speichernCheckBox" text="Auswahl für KindA speichern " />
<Button fx:id="abbrechenButton" cancelButton="true" text="Abbrechen" />
<Button fx:id="fortfahrenButton" defaultButton="true" text="Fortfahren" />
</HBox>
</VBox>

View File

@@ -3,6 +3,9 @@
-fx-font-size: 15; -fx-font-size: 15;
} }
* {
-fx-font-size: 15;
}
.kopfzeile{ .kopfzeile{
@@ -49,7 +52,7 @@
-fx-pref-width: 200; -fx-pref-width: 200;
} }
.login_btn_anmelden { .button-untenrechts {
-fx-padding: 20; -fx-padding: 20;
} }
@@ -61,3 +64,21 @@
-fx-font-size: 30; -fx-font-size: 30;
} }
.text-field {
-fx-pref-width: 225;
-fx-pref-height: 32;
}
.accounterstellung_daten {
-fx-vgap: 10;
-fx-hgap: 10;
}
.accounterstellung_links {
-fx-spacing: 20;
}
.falscheEingabe {
-fx-background-color: #FFDCDC;
-fx-text-fill: #FFDCDC;
}

View File

@@ -30,7 +30,7 @@
<bottom> <bottom>
<BorderPane> <BorderPane>
<right> <right>
<VBox styleClass="login_btn_anmelden"> <VBox styleClass="button-untenrechts">
<Button text="Anmelden" onAction="#onAnmeldenClick"/> <Button text="Anmelden" onAction="#onAnmeldenClick"/>
</VBox> </VBox>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
@author Samuel Wolff
Noch nicht getestet
TODO Style einbinden
-->
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="de.subway_surfers.vpr_app.RechnungFilterViewController"
prefHeight="400.0" prefWidth="600.0"
stylesheets="@layout.css">
<RadioButton fx:id="alle" text="Alle anzeigen" />
<RadioButton fx:id="nichtBezahlt" text="Alle nicht bezahlten Anzeigen" />
<RadioButton fx:id="bezahlt" text="Alle bezahlten Anzeigen" />
<HBox>
<Button fx:id="abbrechenButton" text="Abbruch" />
<Button fx:id="fortfahrenButton" text="Fortfahren" />
</HBox>
</VBox>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
@author Samuel Wolff
Noch nicht getestet
TODO Style einbauen
-->
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<HBox xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="de.subway_surfers.vpr_app.zutatListViewController"
prefHeight="400.0" prefWidth="600.0"
stylesheets="@layout.css">
<CheckBox fx:id="isChecked" />
<Label fx:id="nameLabel" text="placeholder" />
</HBox>