]> git.mxchange.org Git - jfinancials-war.git/commitdiff
Continued a bit:
authorRoland Häder <roland@mxchange.org>
Fri, 22 Apr 2016 07:52:57 +0000 (09:52 +0200)
committerRoland Haeder <roland@mxchange.org>
Sat, 23 Apr 2016 19:42:09 +0000 (21:42 +0200)
- added observer method afterAdminUpdatedContactDataEvent() to update contact and email lists
- no contact list in admin controller as the same exists in general controller
- imports cleaned up

Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/addressbook/beans/contact/AddressbookAdminContactWebRequestBean.java
src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionBean.java
src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionController.java

index 51a4c04727dfc82382bd7445755f480fb0f58183..554d404bf5aa81e1a8e6d6f424c9ebd4afe5c810 100644 (file)
@@ -238,11 +238,8 @@ public class AddressbookAdminContactWebRequestBean implements AddressbookAdminCo
                // Call EJB for updating contact data
                Contact updatedContact = this.contactBean.updateContactPersonalData(contact);
 
-               // Update list
-               this.updateList(updatedContact);
-
                // Fire event
-               this.updatedContactDataEvent.fire(new AdminContactUpdatedEvent(updatedContact));
+               this.updatedContactEvent.fire(new AdminContactUpdatedEvent(updatedContact));
 
                // Return to contact list (for now)
                return "admin_list_contact"; //NOI18N
index 7e2c94d6ae7aae3f1d4e6fb36e80bb82384087ba..66295f5577b12ec49c9c5114f0ceff9a6fb0c1ea 100644 (file)
@@ -35,6 +35,7 @@ import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jcontacts.contact.ContactSessionBeanRemote;
 import org.mxchange.jcontacts.contact.UserContact;
 import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
 import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
 import org.mxchange.jcountry.data.Country;
 import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber;
@@ -209,6 +210,52 @@ public class AddressbookContactWebSessionBean implements AddressbookContactWebSe
                this.emailAddressList.add(contactEmailAddress);
        }
 
+       @Override
+       public void afterAdminUpdatedContactDataEvent (@Observes final AdminUpdatedContactEvent event) {
+               // Trace message
+               System.out.println(MessageFormat.format("ContactWebBean:afterAdminUpdatedContactDataEvent: event={0} - CALLED!", event)); //NOI18N
+
+               // event should not be null
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getUpdatedContact()== null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.user is null"); //NOI18N
+               } else if (event.getUpdatedContact().getContactId() == null) {
+                       // userId is null
+                       throw new NullPointerException("event.user.userId is null"); //NOI18N
+               } else if (event.getUpdatedContact().getContactId() < 1) {
+                       // Not avalid id
+                       throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getUpdatedContact(), event.getUpdatedContact().getContactId())); //NOI18N
+               }
+
+               // Get iterator from list
+               Iterator<Contact> iterator = this.contactList.iterator();
+
+               // "Walk" through all entries
+               while (iterator.hasNext()) {
+                       // Get next element
+                       Contact next = iterator.next();
+
+                       // Is id number the same?
+                       if (Objects.equals(event.getUpdatedContact().getContactId(), next.getContactId())) {
+                               // Found entry, so remove it and abort
+                               this.contactList.remove(next);
+
+                               // Remove also email from list
+                               this.emailAddressList.remove(next.getContactEmailAddress());
+                               break;
+                       }
+               }
+
+               // Add contact to list
+               this.contactList.add(event.getUpdatedContact());
+
+               // Add email address to list
+               this.emailAddressList.add(event.getUpdatedContact().getContactEmailAddress());
+       }
+
        @Override
        public void afterRegistrationEvent (final @Observes UserRegisteredEvent event) {
                // Trace message
@@ -393,6 +440,7 @@ public class AddressbookContactWebSessionBean implements AddressbookContactWebSe
 
                // Trace message
                //this.getLogger().logTrace(MessageFormat.format("createContactInstance: localContact={0} - EXIT!", localContact));
+
                // Return it
                return localContact;
        }
index 757b8273461b0e050a68f91ae7fd20264319bbcf..39998c6cae1bc00ba6f384334ced8f7a12a9745e 100644 (file)
@@ -20,6 +20,7 @@ import java.io.Serializable;
 import java.util.Date;
 import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
 import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
 import org.mxchange.jcountry.data.Country;
 import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
@@ -76,6 +77,13 @@ public interface AddressbookContactWebSessionController extends Serializable {
         */
        void afterRegistrationEvent (final UserRegisteredEvent event);
 
+       /**
+        * Event observer for updated contact data by admins
+        * <p>
+        * @param event Updated contact data event
+        */
+       void afterAdminUpdatedContactDataEvent (final AdminUpdatedContactEvent event);
+
        /**
         * Event observer for logged-in user
         * <p>