diff --git a/src/main/java/de/itstall/App.java b/src/main/java/de/itstall/App.java index ead290a87b32324b013da321deaa527981b32407..7419bb27e159dadf463ef9221b469bfd073cb669 100644 --- a/src/main/java/de/itstall/App.java +++ b/src/main/java/de/itstall/App.java @@ -1,5 +1,6 @@ package de.itstall; +import de.itstall.model.Kontakt; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; @@ -7,6 +8,8 @@ import javafx.scene.Scene; import javafx.stage.Stage; import java.io.IOException; +import java.util.ArrayList; +import java.util.TreeMap; /** * JavaFX App @@ -14,6 +17,7 @@ import java.io.IOException; public class App extends Application { private static Scene scene; + public static TreeMap<String, Kontakt> eintraege = new TreeMap<>(); @Override public void start(Stage stage) throws IOException { diff --git a/src/main/java/de/itstall/TelefonbuchController.java b/src/main/java/de/itstall/TelefonbuchController.java index ecb533d697b3c1b34d613990ad6237ebd0ecb58c..8308ba8d920d914c3e590d7e47343d15b8d47cbd 100644 --- a/src/main/java/de/itstall/TelefonbuchController.java +++ b/src/main/java/de/itstall/TelefonbuchController.java @@ -5,11 +5,6 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TextField; -import javafx.scene.layout.Border; -import javafx.scene.layout.BorderStroke; -import javafx.scene.layout.BorderStrokeStyle; -import javafx.scene.layout.BorderWidths; -import javafx.scene.paint.Color; public class TelefonbuchController { @@ -50,12 +45,12 @@ public class TelefonbuchController { @FXML void loeschen(ActionEvent event) { - + deleteKontakt(); } @FXML void navWeiter(ActionEvent event) { - + //kontakt = App.eintraege.get(App.eintraege.n) } @FXML @@ -65,7 +60,14 @@ public class TelefonbuchController { @FXML void neuerEintrag(ActionEvent event) { - + kontakt = new Kontakt(); + txtVorname.setText(""); + txtNachname.setText(""); + txtStrasse.setText(""); + txtHNr.setText(""); + txtPlz.setText(""); + txtOrt.setText(""); + txtTelefon.setText(""); } @FXML @@ -87,6 +89,7 @@ public class TelefonbuchController { if(!kontakt.setVorname(txtVorname.getText())) { setFieldError(txtVorname, true); } else { + saveKontakt(); setFieldError(txtVorname, false); } } @@ -97,6 +100,7 @@ public class TelefonbuchController { if(!kontakt.setNachname(txtNachname.getText())) { setFieldError(txtNachname, true); } else { + saveKontakt(); setFieldError(txtNachname, false); } } @@ -107,6 +111,7 @@ public class TelefonbuchController { if(!kontakt.setStrasse(txtStrasse.getText())) { setFieldError(txtStrasse, true); } else { + saveKontakt(); setFieldError(txtStrasse, false); } } @@ -117,6 +122,7 @@ public class TelefonbuchController { if(!kontakt.setHausnummer(txtHNr.getText())) { setFieldError(txtHNr, true); } else { + saveKontakt(); setFieldError(txtHNr, false); } } @@ -127,6 +133,7 @@ public class TelefonbuchController { if(!kontakt.setPlz(txtPlz.getText())) { setFieldError(txtPlz, true); } else { + saveKontakt(); setFieldError(txtPlz, false); } } @@ -137,6 +144,7 @@ public class TelefonbuchController { if(!kontakt.setOrt(txtOrt.getText())) { setFieldError(txtOrt, true); } else { + saveKontakt(); setFieldError(txtOrt, false); } } @@ -144,16 +152,42 @@ public class TelefonbuchController { txtTelefon.focusedProperty().addListener((observableValue, aBoolean, t1) -> { if(!t1) { + if(txtTelefon.getText() != kontakt.getTelefon()) { + deleteKontakt(); + saveKontakt(); + } if(!kontakt.setTelefon(txtTelefon.getText())) { setFieldError(txtTelefon, true); } else { + saveKontakt(); setFieldError(txtTelefon, false); } } }); } - public void setFieldError(TextField field, boolean set) { + /** + * Kontakt aus Treemap loeschen + */ + public void deleteKontakt() { + App.eintraege.remove(txtTelefon.getText()); + } + + /** + * Kontakt in die Treemap speichern + */ + public void saveKontakt() { + if(!kontakt.getTelefon().isEmpty()) { + App.eintraege.put(kontakt.getTelefon(), kontakt); + } + } + + /** + * Background der Felder setzen im Fehler Fall + * @param field : Textfeld Object + * @param set : true:Fehler false:Kein Fehler + */ + public void setFieldError(TextField field, boolean set) { if(set) { field.setStyle("-fx-control-inner-background: #ff000040;"); } else { diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index e5e6334c9acae6ecc16de33a1d053a93f76f656e..0f18bf9e8c6a0e79a1ae7cd95e718ad4c5c7e55f 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,7 +1,8 @@ module de.itstall { requires javafx.controls; requires javafx.fxml; + requires java.desktop; - opens de.itstall to javafx.fxml; + opens de.itstall to javafx.fxml; exports de.itstall; } \ No newline at end of file