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