X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=Addressbook%2Fsrc%2Forg%2Fmxchange%2Faddressbook%2Fmanager%2Fcontact%2FContactManager.java;h=327069093a61a362cf94ca26676344a15daf2cea;hb=15bc8210e431a80105f59143aed37cd285214260;hp=096197be45fa6c1f9cdf312f87264662fce34293;hpb=c3a6502c11c40b41c5c20988dd7344526d583b14;p=addressbook-swing.git diff --git a/Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java b/Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java index 096197b..3270690 100644 --- a/Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java +++ b/Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java @@ -19,6 +19,7 @@ package org.mxchange.addressbook.manager.contact; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.mxchange.addressbook.UnhandledUserChoiceException; import org.mxchange.addressbook.client.Client; import org.mxchange.addressbook.contact.Contact; import org.mxchange.addressbook.contact.user.UserContact; @@ -102,25 +103,32 @@ public class ContactManager extends BaseManager implements ManageableContact { @Override public void changeOwnData () { /* - * First check if the user has registered own contact, before that + * First check if the user has registered own contact, before that * nothing can be changed. */ if (!this.isOwnContactAdded()) { // Not added - this.getClient().displayMessage("Sie haben noch nicht Ihre Daten eingegeben."); - + this.getClient().outputMessage("Sie haben noch nicht Ihre Daten eingegeben."); + // Skip any below code return; } - + // Instance Contact contact = this.getOwnContact(); - + // It must be found assert(contact instanceof Contact); - - // @TODO Unfinished - throw new UnsupportedOperationException("Method is not finished."); + + // Display contact + contact.show(this.getClient()); + + try { + // Ask user what to change + this.getClient().userChooseChangeContactData(contact); + } catch (final UnhandledUserChoiceException ex) { + this.getLogger().catching(ex); + } } /** @@ -131,11 +139,89 @@ public class ContactManager extends BaseManager implements ManageableContact { throw new UnsupportedOperationException("Not supported yet."); } + /** + * Let the user change address data + * + * @param contact Instance to change data + * @param client Client instance to call back + */ + @Override + public void doChangeAddressData (final Contact contact, final Client client) { + // First display it again + client.displayAddressBox(contact); + + // Is it own data? + if (contact.isOwnContact()) { + // Own address data + String street = this.enterOwnStreet(); + + // Get zip code + int zipCode = this.enterOwnZipCode(); + + // Get city name + String city = this.enterOwnCity(); + + // Get country code + String countryCode = this.enterOwnCountryCode(); + + // Update address data + contact.updateAddressData(street, zipCode, city, countryCode); + } else { + // Other contact's address data to change + throw new UnsupportedOperationException("Changing contact entries not finished."); + } + } + + /** + * Let the user change "name data" + * + * @param contact Instance to change data + * @param client Client instance to call back + */ + @Override + public void doChangeNameData (final Contact contact, final Client client) { + // First display them again + client.displayNameBox(contact); + + // Is this own data? + if (contact.isOwnContact()) { + // Re-ask own data + // Gender: + char gender = this.enterOwnGender(); + + // Surname + String surname = this.enterOwnSurname(); + + // Family name + String familyName = this.enterOwnFamilyName(); + + // And company + String companyName = this.enterCompanyName(); + + // Update contact instance + contact.updateNameData(gender, surname, familyName, companyName); + } else { + // Then re-ask them ... + throw new UnsupportedOperationException("Changing contact entries not finished."); + } + } + + /** + * Let the user change other data + * + * @param contact Instance to change data + * @param client Client instance to call back + */ + @Override + public void doChangeOtherData (final Contact contact, final Client client) { + throw new UnsupportedOperationException("Not supported yet."); + } + /** * Asks user for own data */ @Override - public void enterOwnData () { + public void doEnterOwnData () { // First ask for gender char gender = this.enterOwnGender(); @@ -145,8 +231,11 @@ public class ContactManager extends BaseManager implements ManageableContact { // And 3rd for family name String familyName = this.enterOwnFamilyName(); + // Company name ... + String companyName = this.enterCompanyName(); + // Construct UserContact instance - Contact contact = new UserContact(gender, surname, familyName); + Contact contact = new UserContact(gender, surname, familyName, companyName); // Mark contact as own contact.enableFlagOwnContact(); @@ -165,12 +254,38 @@ public class ContactManager extends BaseManager implements ManageableContact { return this.contacts.size(); } + /** + * Asks the user for his/her company name + * @return + */ + private String enterCompanyName () { + return this.getClient().enterString(5, 50, "Bitte geben Sie Ihre Firmenbezeichnung ein: ", true); + } + + /** + * Asks the user for his/her city's name + * + * @return City's name of the user + */ + private String enterOwnCity () { + return this.getClient().enterString(3, 50, "Bitte geben Sie Ihre Wohnort ein: ", false); + } + + /** + * Asks user for his/her own country code + * + * @return User's own country code + */ + private String enterOwnCountryCode () { + return this.getClient().enterString(2, 2, "Bitte geben Sie den zweistelligen Ländercode von Ihrem Land ein: ", false).toUpperCase(); + } + /** * Asks the user for family name * @return Family name of the user */ private String enterOwnFamilyName () { - return this.getClient().enterString(2, 50, "Bitte geben Sie Ihren Nachnamen ein: "); + return this.getClient().enterString(2, 50, "Bitte geben Sie Ihren Nachnamen ein: ", false); } /** @@ -181,12 +296,27 @@ public class ContactManager extends BaseManager implements ManageableContact { return this.getClient().enterChar(new char[] {'M', 'F', 'C'}, "Bitte geben Sie die Anrede ein: (M=Herr, F=Frau, C=Firma): "); } + /** + * Asks the user for own street (including number) + */ + private String enterOwnStreet () { + return this.getClient().enterString(5, 50, "Bitte geben Sie Ihre Strasse und Hausnummer ein: ", false); + } + /** * Asks the user for surname * @return Surname of the user */ private String enterOwnSurname () { - return this.getClient().enterString(2, 50, "Bitte geben Sie Ihren Vornamen ein: "); + return this.getClient().enterString(2, 50, "Bitte geben Sie Ihren Vornamen ein: ", false); + } + + /** + * Asks the user for own ZIP code + * @return ZIP code + */ + private int enterOwnZipCode () { + return this.getClient().enterInt(0, 99_999, "Bitte geben Sie Ihre Postleitzahl ein: "); } /**