]> git.mxchange.org Git - jbonuscard-lib.git/blobdiff - Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java
Introduced updateNameData() + changing own "name data" is basicly finished
[jbonuscard-lib.git] / Addressbook / src / org / mxchange / addressbook / manager / contact / ContactManager.java
index 096197be45fa6c1f9cdf312f87264662fce34293..7dca9da4d0705fea2aca57287c90299b123ade72 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
@@ -88,6 +89,51 @@ 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 changeAddressData (final Contact contact, final Client client) {\r
+       throw new UnsupportedOperationException("Not supported yet.");\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 changeNameData (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 address\r
      */\r
@@ -96,6 +142,17 @@ public class ContactManager extends BaseManager implements ManageableContact {
        throw new UnsupportedOperationException("Not supported yet.");\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 changeOtherData (final Contact contact, final Client client) {\r
+       throw new UnsupportedOperationException("Not supported yet.");\r
+    }\r
+\r
     /**\r
      * Allows the user to change his/her own data\r
      */\r
@@ -119,8 +176,15 @@ public class ContactManager extends BaseManager implements ManageableContact {
        // It must be found\r
        assert(contact instanceof Contact);\r
 \r
-       // @TODO Unfinished\r
-       throw new UnsupportedOperationException("Method is not finished.");\r
+       // Display contact\r
+       contact.show(this.getClient());\r
+\r
+       try {\r
+           // Ask user what to change\r
+           this.getClient().doUserChangeAdressChoice(contact);\r
+       } catch (final UnhandledUserChoiceException ex) {\r
+           this.getLogger().catching(ex);\r
+       }\r
     }\r
 \r
     /**\r
@@ -145,8 +209,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 +232,20 @@ 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 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
@@ -186,7 +261,7 @@ public class ContactManager extends BaseManager implements ManageableContact {
      * @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