/*
- * Copyright (C) 2016 Cho-Time GmbH
+ * Copyright (C) 2016 Roland Haeder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
*/
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
*/