X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Fjava%2Forg%2Fmxchange%2Fjjobs%2Fbeans%2Fcontact%2FJobsAdminContactWebRequestBean.java;h=ea6ad9664b990d3593b53259cfb0edd2c33814a4;hb=a231e9a11ec7bde003846d8143033229aca2e6a4;hp=37e798b3800a10c1d224e1c815c9b4f0d6ae5e0f;hpb=913352795717f01da9ba060ecbc849f58f62d40f;p=jjobs-war.git diff --git a/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java b/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java index 37e798b3..ea6ad966 100644 --- a/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java +++ b/src/java/org/mxchange/jjobs/beans/contact/JobsAdminContactWebRequestBean.java @@ -19,7 +19,6 @@ package org.mxchange.jjobs.beans.contact; import java.text.MessageFormat; import java.util.Date; import java.util.Iterator; -import java.util.List; import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Event; @@ -35,12 +34,15 @@ import org.mxchange.jcontacts.contact.ContactSessionBeanRemote; 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.jcontacts.exceptions.ContactAlreadyAddedException; import org.mxchange.jcountry.data.Country; -import org.mxchange.jjobs.beans.helper.JobsAdminWebRequestController; +import org.mxchange.jjobs.beans.BaseJobsController; +import org.mxchange.jjobs.beans.helper.JobsWebRequestController; +import org.mxchange.jphone.phonenumbers.DialableNumber; import org.mxchange.jphone.phonenumbers.cellphone.CellphoneNumber; import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber; import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber; @@ -48,7 +50,6 @@ import org.mxchange.jphone.phonenumbers.fax.FaxNumber; 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) @@ -57,7 +58,7 @@ import org.mxchange.jusercore.events.user.add.AdminAddedUserEvent; */ @Named ("adminContactController") @RequestScoped -public class JobsAdminContactWebRequestBean implements JobsAdminContactWebRequestController { +public class JobsAdminContactWebRequestBean extends BaseJobsController implements JobsAdminContactWebRequestController { /** * Serial number @@ -65,17 +66,17 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques 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 addedUserEvent; + private Event addedContactEvent; /** * Admin helper instance */ @Inject - private JobsAdminWebRequestController adminHelper; + private JobsWebRequestController beanHelper; /** * Birth day @@ -112,6 +113,12 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques */ private final ContactSessionBeanRemote contactBean; + /** + * General contact controller + */ + @Inject + private JobsContactWebSessionController contactController; + /** * Contact id */ @@ -207,6 +214,11 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques */ private String street; + /** + * Title + */ + private String title; + /** * An event fired when the administrator has updated contact data */ @@ -223,9 +235,6 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques * Default constructor */ public JobsAdminContactWebRequestBean () { - // Set gender to UNKNOWN - this.gender = Gender.UNKNOWN; - // Try it try { // Get initial context @@ -283,41 +292,6 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques // Fire event this.addedContactEvent.fire(new AdminContactAddedEvent(updatedContact)); - // Return outcome - return "admin_list_contact"; //NOI18N - } - - @Override - public List allContacts () { - 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(); @@ -341,6 +315,7 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques // Set all fields: contact this.setContactId(contact.getContactId()); + this.setTitle(contact.getContactTitle()); this.setBirthday(contact.getContactBirthday()); this.setCity(contact.getContactCity()); this.setComment(contact.getContactComment()); @@ -350,43 +325,32 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques this.setFirstName(contact.getContactFirstName()); this.setGender(contact.getContactGender()); this.setHouseNumber(contact.getContactHouseNumber()); + this.setHouseNumberExtension(contact.getContactHouseNumberExtension()); this.setStreet(contact.getContactStreet()); this.setZipCode(contact.getContactZipCode()); // ... cellphone data - this.setCellphoneId(contact.getContactCellphoneNumber().getPhoneId()); - this.setCellphoneCarrier(contact.getContactCellphoneNumber().getCellphoneProvider()); - this.setCellphoneNumber(contact.getContactCellphoneNumber().getPhoneNumber()); + if (contact.getContactCellphoneNumber() instanceof DialableCellphoneNumber) { + this.setCellphoneId(contact.getContactCellphoneNumber().getPhoneId()); + this.setCellphoneCarrier(contact.getContactCellphoneNumber().getCellphoneProvider()); + this.setCellphoneNumber(contact.getContactCellphoneNumber().getPhoneNumber()); + } // ... fax data - this.setFaxId(contact.getContactFaxNumber().getPhoneId()); - this.setFaxAreaCode(contact.getContactFaxNumber().getPhoneAreaCode()); - this.setFaxCountry(contact.getContactFaxNumber().getPhoneCountry()); - this.setFaxNumber(contact.getContactFaxNumber().getPhoneNumber()); + if (contact.getContactFaxNumber() instanceof DialableFaxNumber) { + this.setFaxId(contact.getContactFaxNumber().getPhoneId()); + this.setFaxAreaCode(contact.getContactFaxNumber().getPhoneAreaCode()); + this.setFaxCountry(contact.getContactFaxNumber().getPhoneCountry()); + this.setFaxNumber(contact.getContactFaxNumber().getPhoneNumber()); + } // .. land-line data - this.setLandLineId(contact.getContactLandLineNumber().getPhoneId()); - this.setPhoneAreaCode(contact.getContactLandLineNumber().getPhoneAreaCode()); - this.setPhoneCountry(contact.getContactLandLineNumber().getPhoneCountry()); - 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 @@ -402,13 +366,13 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques // Check if contact instance is in helper and valid if (null == contact) { // Throw NPE - throw new NullPointerException("adminHelper.contact is null"); //NOI18N + throw new NullPointerException("beanHelper.contact is null"); //NOI18N } else if (contact.getContactId() == null) { // Throw NPE again - throw new NullPointerException("adminHelper.contact.contactId is null"); //NOI18N //NOI18N + throw new NullPointerException("beanHelper.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 + throw new IllegalStateException(MessageFormat.format("beanHelper.contact.contactId={0} is invalid", contact.getContactId())); //NOI18N } // Update all data in contact @@ -427,6 +391,79 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques return contact; } + @Override + public String editContactData () { + // Get contact instance + Contact contact = this.beanHelper.getContact(); + + // Check if contact instance is in helper and valid + if (null == contact) { + // Throw NPE + throw new NullPointerException("beanHelper.contact is null"); //NOI18N + } else if (contact.getContactId() == null) { + // Throw NPE again + throw new NullPointerException("beanHelper.contact.contactId is null"); //NOI18N //NOI18N + } else if (contact.getContactId() < 1) { + // Invalid id + throw new IllegalStateException(MessageFormat.format("beanHelper.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 + public String generateCellphoneNumber (final DialableCellphoneNumber cellphoneNumber) { + // Is it null? + if (null == cellphoneNumber) { + // Return null + return null; + } + + // Get all data + String number = String.format( + "%s%d%d", //NOI18N + cellphoneNumber.getCellphoneProvider().getProviderCountry().getCountryExternalDialPrefix(), + cellphoneNumber.getCellphoneProvider().getProviderDialPrefix(), + cellphoneNumber.getPhoneNumber() + ); + + // Return it + return number; + } + + @Override + public String generatePhoneNumber (final DialableNumber phoneNumber) { + // Is it null? + if (null == phoneNumber) { + // Return null + return null; + } + + // Generate it + String number = String.format( + "%s%d%d", //NOI18N + phoneNumber.getPhoneCountry().getCountryExternalDialPrefix(), + phoneNumber.getPhoneAreaCode(), + phoneNumber.getPhoneNumber() + ); + + // Return it + return number; + } + @Override @SuppressWarnings ("ReturnOfDateField") public Date getBirthday () { @@ -649,6 +686,16 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques this.street = street; } + @Override + public String getTitle () { + return this.title; + } + + @Override + public void setTitle (final String title) { + this.title = title; + } + @Override public Integer getZipCode () { return this.zipCode; @@ -672,11 +719,13 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques private void clear () { // Clear all data // - personal data - this.setGender(Gender.UNKNOWN); + this.setGender(null); + this.setTitle(null); this.setFirstName(null); this.setFamilyName(null); this.setStreet(null); this.setHouseNumber(null); + this.setHouseNumberExtension(null); this.setZipCode(null); this.setCity(null); this.setCountry(null); @@ -709,7 +758,7 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques boolean IsFound = false; // Get iterator - Iterator iterator = this.allContacts().iterator(); + Iterator iterator = this.contactController.allContacts().iterator(); // Loop through all while (iterator.hasNext()) { @@ -748,6 +797,7 @@ public class JobsAdminContactWebRequestBean implements JobsAdminContactWebReques // Update all fields contact.setContactGender(this.getGender()); + contact.setContactTitle(this.getTitle()); contact.setContactFirstName(this.getFirstName()); contact.setContactFamilyName(this.getFamilyName()); contact.setContactStreet(this.getStreet());