]> git.mxchange.org Git - addressbook-war.git/commitdiff
Imported new way into + ignored .gitcommits (please cherry-pick this)
authorRoland Haeder <roland@mxchange.org>
Thu, 28 Jul 2016 19:08:26 +0000 (21:08 +0200)
committerRoland Haeder <roland@mxchange.org>
Thu, 28 Jul 2016 19:37:00 +0000 (21:37 +0200)
Signed-off-by: Roland Häder <roland@mxchange.org>
.gitignore
src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionBean.java
src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionController.java

index 954416ad5bbaa6df153e0334f293e67f42ecfed7..d1971127b1d530dde46a52c28bd155f1f972c312 100644 (file)
@@ -10,3 +10,4 @@
 /*-ejb/build/
 /*-ejb/dist/
 .~lock*
+.gitcommits
index 9dd53aad2ef98f15eb4ade0a78fc960805e63263..0d7267b8300c98460848a25b9e6bcf739bad16f3 100644 (file)
@@ -33,6 +33,7 @@ import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import org.mxchange.addressbook.beans.BaseAddressbookController;
 import org.mxchange.addressbook.beans.login.AddressbookUserLoginWebSessionController;
+import org.mxchange.addressbook.beans.user.AddressbookUserWebSessionController;
 import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jcontacts.contact.ContactSessionBeanRemote;
 import org.mxchange.jcontacts.contact.UserContact;
@@ -53,7 +54,9 @@ import org.mxchange.jusercore.events.confirmation.UserConfirmedAccountEvent;
 import org.mxchange.jusercore.events.login.UserLoggedInEvent;
 import org.mxchange.jusercore.events.registration.UserRegisteredEvent;
 import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent;
+import org.mxchange.jusercore.events.user.linked.AdminLinkedUserEvent;
 import org.mxchange.jusercore.exceptions.UserPasswordMismatchException;
+import org.mxchange.jusercore.model.user.User;
 
 /**
  * A general contact bean (controller)
@@ -189,11 +192,22 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
         */
        private Long phoneNumber;
 
+       /**
+        * A list of all selectable contacts
+        */
+       private List<Contact> selectableContacts;
+
        /**
         * Street
         */
        private String street;
 
+       /**
+        * Regular user controller
+        */
+       @Inject
+       private AddressbookUserWebSessionController userController;
+
        /**
         * Login bean (controller)
         */
@@ -224,9 +238,6 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
        @Override
        public void afterAdminAddedContact (@Observes final AdminAddedContactEvent event) {
-               // Trace message
-               /* NOISY-DEBUG: */ System.out.println(MessageFormat.format("contactController.afterAdminAddedContact(): event={0} - CALLED!", event)); //NOI18N
-
                // The event must be valid
                if (null == event) {
                        // Throw NPE
@@ -236,10 +247,10 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
                        throw new NullPointerException("event.addedContact is null"); //NOI18N
                } else if (event.getAddedContact().getContactId() == null) {
                        // ... and again
-                       throw new NullPointerException("event.addedContact.customerId is null"); //NOI18N
+                       throw new NullPointerException("event.addedContact.contactId is null"); //NOI18N
                } else if (event.getAddedContact().getContactId() < 1) {
                        // Not valid
-                       throw new IllegalArgumentException(MessageFormat.format("event.addedContact.customerId={0} is not valid", event.getAddedContact().getContactId())); //NOI18N //NOI18N
+                       throw new IllegalArgumentException(MessageFormat.format("event.addedContact.contactId={0} is not valid", event.getAddedContact().getContactId())); //NOI18N //NOI18N
                }
 
                // Clear this bean
@@ -251,9 +262,6 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
        @Override
        public void afterAdminAddedUserEvent (@Observes final AdminAddedUserEvent event) {
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("UserWebBean:afterAdminAddedUserEvent: event={0} - CALLED!", event)); //NOI18N
-
                // event should not be null
                if (null == event) {
                        // Throw NPE
@@ -271,16 +279,37 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
                // Clear all data
                this.clear();
+       }
 
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println("UserWebBean:afterAdminAddedUserEvent: EXIT!"); //NOI18N
+       @Override
+       public void afterAdminLinkedUser (@Observes final AdminLinkedUserEvent event) {
+               // event should not be null
+               if (null == event) {
+                       // Throw NPE
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getLinkedUser() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.linkedUser is null"); //NOI18N
+               } else if (event.getLinkedUser().getUserContact() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.linkedUser.userContact is null"); //NOI18N
+               } else if (event.getLinkedUser().getUserContact().getContactId() == null) {
+                       // userId is null
+                       throw new NullPointerException("event.linkedUser.userContact.contactId is null"); //NOI18N
+               } else if (event.getLinkedUser().getUserContact().getContactId() < 1) {
+                       // Not avalid id
+                       throw new IllegalArgumentException(MessageFormat.format("contactId of contact={0} is not valid: {1}", event.getLinkedUser(), event.getLinkedUser().getUserContact().getContactId())); //NOI18N
+               }
+
+               // Remove contact from list available contacts list
+               this.selectableContacts.remove(event.getLinkedUser().getUserContact());
+
+               // Clear all data
+               this.clear();
        }
 
        @Override
        public void afterAdminUpdatedContactDataEvent (@Observes final AdminUpdatedContactEvent event) {
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("ContactWebBean:afterAdminUpdatedContactDataEvent: event={0} - CALLED!", event)); //NOI18N
-
                // event should not be null
                if (null == event) {
                        // Throw NPE
@@ -324,9 +353,6 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
        @Override
        public void afterRegistrationEvent (@Observes final UserRegisteredEvent event) {
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("ContactWebBean:afterRegistration: event={0} - CALLED!", event)); //NOI18N
-
                // event should not be null
                if (null == event) {
                        // Throw NPE
@@ -345,9 +371,6 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
                // Get user instance
                Contact registeredContact = event.getRegisteredUser().getUserContact();
 
-               // Debug message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("ContactWebBean:afterRegistration: registeredContact={0}", registeredContact)); //NOI18N
-
                // Copy all data from registered->user
                this.copyContact(registeredContact);
 
@@ -356,16 +379,10 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
                // Clear all data
                this.clear();
-
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println("ContactWebBean:afterRegistration: EXIT!"); //NOI18N
        }
 
        @Override
        public void afterUserConfirmedAccount (@Observes final UserConfirmedAccountEvent event) {
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("ContactWebBean:afterAdminUpdatedContactDataEvent: event={0} - CALLED!", event)); //NOI18N
-
                // event should not be null
                if (null == event) {
                        // Throw NPE
@@ -395,7 +412,7 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
                        // Is id number the same?
                        if (Objects.equals(contact.getContactId(), next.getContactId())) {
                                // Found entry, so remove it and abort
-                               this.contactList.remove(next);
+                               this.removeContact(next);
                                break;
                        }
                }
@@ -406,9 +423,6 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
        @Override
        public void afterUserLogin (@Observes final UserLoggedInEvent event) {
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println(MessageFormat.format("ContactWebBean:afterUserLogin: event={0} - CALLED!", event)); //NOI18N
-
                // event should not be null
                if (null == event) {
                        // Throw NPE
@@ -426,9 +440,6 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
                // Copy all data to this bean
                this.copyContact(event.getLoggedInUser().getUserContact());
-
-               // Trace message
-               //* NOISY-DEBUG: */ System.out.println("ContactWebBean:afterUserLogin - EXIT!"); //NOI18N
        }
 
        @Override
@@ -803,6 +814,40 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
 
                // Get full contact list
                this.contactList = this.contactBean.getAllContacts();
+
+               // Get all users
+               List<User> allUsers = this.userController.allUsers();
+
+               // Get all contacts
+               List<Contact> allContacts = this.contactBean.getAllContacts();
+
+               // Get iterator
+               Iterator<Contact> iterator = allContacts.iterator();
+
+               // Loop through it
+               while (iterator.hasNext()) {
+                       // Get next element
+                       Contact next = iterator.next();
+
+                       // Get iterator
+                       Iterator<User> userIterator = allUsers.iterator();
+
+                       // Loop through all users
+                       while (userIterator.hasNext()) {
+                               // Get user instance
+                               User nextUser = userIterator.next();
+
+                               // Is contact same?
+                               if (Objects.equals(next, nextUser.getUserContact())) {
+                                       // Found same
+                                       iterator.remove();
+                                       break;
+                               }
+                       }
+               }
+
+               // Set contact list
+               this.selectableContacts = allContacts;
        }
 
        @Override
@@ -886,6 +931,11 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
                return localContact;
        }
 
+       @Override
+       public List<Contact> selectableContacts () {
+               return Collections.unmodifiableList(this.selectableContacts);
+       }
+
        @Override
        public void updateContactDataFromController (final Contact contact) {
                // Is the instance valid?
@@ -926,7 +976,8 @@ public class AddressbookContactWebSessionBean extends BaseAddressbookController
        private void clear () {
                // Clear all data
                // - personal data
-               this.setGender(Gender.UNKNOWN);
+               this.setGender(null);
+               // TODO: Unfinished this.setTitle(null);
                this.setFirstName(null);
                this.setFamilyName(null);
                this.setStreet(null);
index 1573f14957a2f02fa3442486016ab97167f97ff9..38675b3a823cdf323f6d14349f2704ab8a681eb6 100644 (file)
@@ -30,6 +30,7 @@ import org.mxchange.jusercore.events.confirmation.UserConfirmedAccountEvent;
 import org.mxchange.jusercore.events.login.UserLoggedInEvent;
 import org.mxchange.jusercore.events.registration.UserRegisteredEvent;
 import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent;
+import org.mxchange.jusercore.events.user.linked.AdminLinkedUserEvent;
 
 /**
  * An interface for user beans
@@ -105,6 +106,14 @@ public interface AddressbookContactWebSessionController extends Serializable {
         */
        void afterAdminAddedContact (final AdminAddedContactEvent event);
 
+       /**
+        * Observes events being fired when an administrator has linked a new user
+        * with existing contact data.
+        * <p>
+        * @param event Event being fired
+        */
+       void afterAdminLinkedUser (final AdminLinkedUserEvent event);
+
        /**
         * Event observer for updated contact data by administrators
         * <p>