From: Roland Haeder Date: Thu, 28 Jul 2016 19:08:26 +0000 (+0200) Subject: Imported new way into + ignored .gitcommits (please cherry-pick this) X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=8eab941555ab4c6519e73e1db9331107e3692e55;p=addressbook-war.git Imported new way into + ignored .gitcommits (please cherry-pick this) Signed-off-by: Roland Häder --- diff --git a/.gitignore b/.gitignore index 954416ad..d1971127 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /*-ejb/build/ /*-ejb/dist/ .~lock* +.gitcommits diff --git a/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionBean.java b/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionBean.java index 9dd53aad..0d7267b8 100644 --- a/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionBean.java +++ b/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionBean.java @@ -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 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 allUsers = this.userController.allUsers(); + + // Get all contacts + List allContacts = this.contactBean.getAllContacts(); + + // Get iterator + Iterator iterator = allContacts.iterator(); + + // Loop through it + while (iterator.hasNext()) { + // Get next element + Contact next = iterator.next(); + + // Get iterator + Iterator 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 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); diff --git a/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionController.java b/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionController.java index 1573f149..38675b3a 100644 --- a/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionController.java +++ b/src/java/org/mxchange/addressbook/beans/contact/AddressbookContactWebSessionController.java @@ -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. + *

+ * @param event Event being fired + */ + void afterAdminLinkedUser (final AdminLinkedUserEvent event); + /** * Event observer for updated contact data by administrators *