/*
- * Copyright (C) 2016 Roland Haeder
+ * Copyright (C) 2016 Cho-Time GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
import org.mxchange.jcontacts.contact.UserContact;
import org.mxchange.jcontacts.contact.gender.Gender;
import org.mxchange.jcontacts.contact.utils.ContactUtils;
+import org.mxchange.jcontacts.events.contact.add.AdminAddedContactEvent;
import org.mxchange.jcontacts.events.contact.add.AdminContactAddedEvent;
import org.mxchange.jcontacts.events.contact.update.AdminContactUpdatedEvent;
import org.mxchange.jcontacts.events.contact.update.AdminUpdatedContactEvent;
import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
-import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent;
/**
* An administrative user bean (controller)
private static final long serialVersionUID = 542_145_347_916L;
/**
- * An event fired when the administrator has added a new user
+ * An event fired when the administrator has added a new contact
*/
@Inject
@Any
- private Event<AdminAddedUserEvent> addedUserEvent;
+ private Event<AdminAddedContactEvent> addedContactEvent;
/**
* Admin helper instance
*/
private final ContactSessionBeanRemote contactBean;
+ /**
+ * General contact controller
+ */
+ @Inject
+ private AddressbookContactWebSessionController contactController;
+
/**
* Contact id
*/
return this.contactController.allContacts();
}
- @Override
- public String changeContactData () {
- // Get contact instance
- Contact contact = this.adminHelper.getContact();
-
- // Default is not same contact
- if (this.isSameContactFound(contact)) {
- // Already registered
- throw new FaceletException(new ContactAlreadyAddedException(contact));
- }
-
- // Init contact
- Contact updatedContact;
-
- // Try to call EJB
- try {
- // Call EJB
- updatedContact = this.contactBean.addContact(contact);
- } catch (final ContactAlreadyAddedException ex) {
- // Throw again
- throw new FaceletException(ex);
- }
-
- // Fire event
- this.addedContactEvent.fire(new AdminContactAddedEvent(updatedContact));
-
- // Clear this bean
- this.clear();
-
- // Return outcome
- return "admin_list_contact"; //NOI18N
- }
-
@Override
public void copyContactToController (final Contact contact) {
// The contact instance must be valid
this.setPhoneNumber(contact.getContactLandLineNumber().getPhoneNumber());
}
- @Override
- public String editContactData () {
- // Get contact instance
- Contact contact = this.adminHelper.getContact();
-
- // Is the land-line number set?
- if (contact.getContactLandLineNumber() instanceof DialableLandLineNumber) {
- // .. land-line data
- this.setLandLineId(contact.getContactLandLineNumber().getPhoneId());
- this.setPhoneAreaCode(contact.getContactLandLineNumber().getPhoneAreaCode());
- this.setPhoneCountry(contact.getContactLandLineNumber().getPhoneCountry());
- this.setPhoneNumber(contact.getContactLandLineNumber().getPhoneNumber());
- }
-
- // Log message
- //* NOISY-DEBUG: */ System.out.println("AdminContactController::copyContactToController(): EXIT!"); //NOI18N
- }
-
@Override
public Contact createContactInstance () {
// Generate phone number
return contact;
}
+ @Override
+ public String editContactData () {
+ // Get contact instance
+ Contact contact = this.adminHelper.getContact();
+
+ // Check if contact instance is in helper and valid
+ if (null == contact) {
+ // Throw NPE
+ throw new NullPointerException("adminHelper.contact is null"); //NOI18N
+ } else if (contact.getContactId() == null) {
+ // Throw NPE again
+ throw new NullPointerException("adminHelper.contact.contactId is null"); //NOI18N //NOI18N
+ } else if (contact.getContactId() < 1) {
+ // Invalid id
+ throw new IllegalStateException(MessageFormat.format("adminHelper.contact.contactId={0} is invalid", contact.getContactId())); //NOI18N
+ }
+
+ // Update all data in contact
+ this.updateContactData(contact);
+
+ // Call EJB for updating contact data
+ Contact updatedContact = this.contactBean.updateContactData(contact, this.isCellphoneUnlinked, this.isLandLineUnlinked, this.isFaxUnlinked);
+
+ // Fire event
+ this.updatedContactEvent.fire(new AdminContactUpdatedEvent(updatedContact));
+
+ // Clear bean
+ this.clear();
+
+ // Return to contact list (for now)
+ return "admin_list_contact"; //NOI18N
+ }
+
@Override
@SuppressWarnings ("ReturnOfDateField")
public Date getBirthday () {
this.zipCode = zipCode;
}
+ @Override
+ public boolean hasContacts () {
+ return (!this.allContacts().isEmpty());
+ }
+
/**
* Post-initialization of this class
*/