]> git.mxchange.org Git - jjobs-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 20:28:03 +0000 (22:28 +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/jjobs/beans/contact/JobsAdminContactWebRequestBean.java
src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionBean.java
src/java/org/mxchange/jjobs/beans/contact/JobsContactWebSessionController.java

index aa7e7a8abfc22731f53facbcd1aa6c5fc675a364..23eb5122979e635aa058ffd1c26701ec2552dea5 100644 (file)
@@ -238,11 +238,8 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques
                // 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 4080f6cb7e8f8ff5e135bd858bafece81a3d86b4..cb1e5057c8e03b9d21ef65c007b9a1dcf6ca75bf 100644 (file)
@@ -34,6 +34,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.jjobs.beans.login.JobsUserLoginWebSessionController;
@@ -209,6 +210,52 @@ public class JobsContactWebSessionBean implements JobsContactWebSessionControlle
                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 JobsContactWebSessionBean implements JobsContactWebSessionControlle
 
                // Trace message
                //this.getLogger().logTrace(MessageFormat.format("createContactInstance: localContact={0} - EXIT!", localContact));
+
                // Return it
                return localContact;
        }
index 01708364df7febdfa5ce19f5dc31d2c2c1b5c24f..d22da2f631fdd2f94a57ec9f646331afe7983576 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 JobsContactWebSessionController 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>