diff --git a/src/main/java/de/itstall/TelefonbuchController.java b/src/main/java/de/itstall/TelefonbuchController.java index 5de8b156e86ecc1d45293422ea94e0f47e413b66..7f9ed02bc9b7fa2afdd8c553d385e1ca8f0cba4d 100644 --- a/src/main/java/de/itstall/TelefonbuchController.java +++ b/src/main/java/de/itstall/TelefonbuchController.java @@ -6,6 +6,7 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TextField; + import java.util.ArrayList; /** @@ -13,10 +14,14 @@ import java.util.ArrayList; */ public class TelefonbuchController { - /** Initialisiert die TreeMap für die Kontakte */ + /** + * Initialisiert die TreeMap für die Kontakte + */ private Kontakt kontakt = new Kontakt(); - /** Initialisiert das Fehler Objekt */ + /** + * Initialisiert das Fehler Objekt + */ private Fehler fehler = new Fehler(); @FXML @@ -54,12 +59,13 @@ public class TelefonbuchController { /** * Action Listener für btnLoeschen + * * @param event : ActionEvent */ @FXML void loeschen(ActionEvent event) { deleteKontakt(true); - if(App.eintraege.size() != 0) { + if (App.eintraege.size() != 0) { kontakt = App.eintraege.get(sucheEintrag(kontakt.getTelefon())[0]); setKontaktToForm(kontakt); } @@ -67,11 +73,12 @@ public class TelefonbuchController { /** * Action Listener für btnWeiter + * * @param event : ActionEvent */ @FXML void navWeiter(ActionEvent event) { - if(App.eintraege.size() != 0) { + if (App.eintraege.size() != 0) { kontakt = App.eintraege.get(sucheEintrag(kontakt.getTelefon())[1]); setKontaktToForm(kontakt); } @@ -79,11 +86,12 @@ public class TelefonbuchController { /** * Action Listener für btnZurueck + * * @param event : ActionEvent */ @FXML void navZurueck(ActionEvent event) { - if(App.eintraege.size() != 0) { + if (App.eintraege.size() != 0) { kontakt = App.eintraege.get(sucheEintrag(kontakt.getTelefon())[0]); setKontaktToForm(kontakt); } @@ -91,6 +99,7 @@ public class TelefonbuchController { /** * Action Listener für btnNeuerEintrag + * * @param event : ActionEvent */ @FXML @@ -117,7 +126,7 @@ public class TelefonbuchController { assert btnLoeschen != null : "fx:id=\"btnLoeschen\" was not injected: check your FXML file 'telefonbuch.fxml'."; /** Wenn noch keine Einträge vorhanden sind, die Buttons deaktivieren */ - if(App.eintraege.size() == 0) { + if (App.eintraege.size() == 0) { deaktiviereButtons(true); } @@ -228,9 +237,13 @@ public class TelefonbuchController { /** Prüfen ob das Feld verändert wurde */ if (!t1) { /** Wenn die Nummer korrekt ausgefüllt wurde und der Kontakt bereits in der DB enthalten war, den Kontakt löschen und neu anlegen */ - if (!txtTelefon.getText().equals("") && txtTelefon.getText() != null && txtTelefon.getText() != kontakt.getTelefon()) { - deleteKontakt(false); - saveKontakt(); + if (!txtTelefon.getText().equals("") && txtTelefon.getText() != null && txtTelefon.getText() != kontakt.getTelefon()) { + if (App.eintraege.containsKey(txtTelefon.getText())) { + fehler.showErrorDialog("error", "", "Es gibt bereits einen Eintrag im Adressbuch mit dieser Telefonnummer. Die Telefonnummer muss eindeutig sein."); + } else { + deleteKontakt(false); + saveKontakt(); + } } /** Wenn das Feld noch leer ist oder nicht den Regeln entspricht, Fehler ausgeben */ if (txtTelefon.getText() == null || !kontakt.setTelefon(txtTelefon.getText())) { @@ -255,11 +268,12 @@ public class TelefonbuchController { /** * Kontakt aus Treemap loeschen + * * @param resetForm : boolean : Soll das Formular auch geleert werden? */ public void deleteKontakt(boolean resetForm) { App.eintraege.remove(txtTelefon.getText()); - if(resetForm) { + if (resetForm) { resetForm(); } } @@ -277,7 +291,7 @@ public class TelefonbuchController { * Kontrollieren ob alle Felder fehlerfrei sind. Wenn ja, die Buttons wieder aktivieren. */ public void checkFieldErrors() { - if(!txtVorname.getStyle().equals("-fx-control-inner-background: #ff000040;") && + if (!txtVorname.getStyle().equals("-fx-control-inner-background: #ff000040;") && !txtNachname.getStyle().equals("-fx-control-inner-background: #ff000040;") && !txtStrasse.getStyle().equals("-fx-control-inner-background: #ff000040;") && !txtHNr.getStyle().equals("-fx-control-inner-background: #ff000040;") && @@ -368,7 +382,7 @@ public class TelefonbuchController { */ public void resetForm() { /** Wenn keine Einträge mehr vorhanden sind, auch die Buttons deaktivieren */ - if(App.eintraege.size() == 0) { + if (App.eintraege.size() == 0) { deaktiviereButtons(true); } kontakt = new Kontakt(); @@ -398,15 +412,16 @@ public class TelefonbuchController { /** * Deaktiviert die Buttons + * * @param deaktivieren : boolean */ public void deaktiviereButtons(boolean deaktivieren) { - if(deaktivieren) { + if (deaktivieren) { btnLoeschen.setDisable(true); btnNaviLinks.setDisable(true); btnNaviRechts.setDisable(true); btnNeuerEintrag.setDisable(true); - } else if (deaktivieren == false && !txtTelefon.getText().equals("") && txtTelefon.getText() != null) { + } else if (deaktivieren == false && !txtTelefon.getText().equals("") && txtTelefon.getText() != null) { btnLoeschen.setDisable(false); btnNaviLinks.setDisable(false); btnNaviRechts.setDisable(false); diff --git a/src/main/resources/de/itstall/telefonbuch.fxml b/src/main/resources/de/itstall/telefonbuch.fxml index ecf5f6310fab4aa3c84f049ee69cbc8474bc672e..004fd39b10c9a0d216163a7db78c7b74eaa0610b 100644 --- a/src/main/resources/de/itstall/telefonbuch.fxml +++ b/src/main/resources/de/itstall/telefonbuch.fxml @@ -39,37 +39,37 @@ <Font size="14.0" /> </font> </Label> - <Label text="Straße" GridPane.rowIndex="2"> + <Label text="Telefon Nummer" GridPane.rowIndex="2"> <font> <Font size="14.0" /> </font> </Label> - <Label text="Haus Nummer" GridPane.rowIndex="3"> + <Label text="Straße" GridPane.rowIndex="3"> <font> <Font size="14.0" /> </font> </Label> - <Label text="Postleitzahl" GridPane.rowIndex="4"> + <Label text="Haus Nummer" GridPane.rowIndex="4"> <font> <Font size="14.0" /> </font> </Label> - <Label text="Ort" GridPane.rowIndex="5"> + <Label text="Postleitzahl" GridPane.rowIndex="5"> <font> <Font size="14.0" /> </font> </Label> - <Label text="Telefon Nummer" GridPane.rowIndex="6"> + <Label text="Ort" GridPane.rowIndex="6"> <font> <Font size="14.0" /> </font> </Label> <TextField fx:id="txtNachname" GridPane.columnIndex="1" GridPane.rowIndex="1" /> - <TextField fx:id="txtStrasse" GridPane.columnIndex="1" GridPane.rowIndex="2" /> - <TextField fx:id="txtHNr" GridPane.columnIndex="1" GridPane.rowIndex="3" /> - <TextField fx:id="txtPlz" GridPane.columnIndex="1" GridPane.rowIndex="4" /> - <TextField fx:id="txtOrt" GridPane.columnIndex="1" GridPane.rowIndex="5" /> - <TextField fx:id="txtTelefon" GridPane.columnIndex="1" GridPane.rowIndex="6" /> + <TextField fx:id="txtTelefon" GridPane.columnIndex="1" GridPane.rowIndex="2" /> + <TextField fx:id="txtStrasse" GridPane.columnIndex="1" GridPane.rowIndex="3" /> + <TextField fx:id="txtHNr" GridPane.columnIndex="1" GridPane.rowIndex="4" /> + <TextField fx:id="txtPlz" GridPane.columnIndex="1" GridPane.rowIndex="5" /> + <TextField fx:id="txtOrt" GridPane.columnIndex="1" GridPane.rowIndex="6" /> </children> </GridPane> <HBox layoutX="35.0" layoutY="314.0" prefHeight="25.0" prefWidth="326.0">