]> git.mxchange.org Git - jfinancials-war.git/commitdiff
added afterUserLogin() observer to set user's locale as current
authorRoland Häder <roland@mxchange.org>
Mon, 23 May 2016 07:26:47 +0000 (09:26 +0200)
committerRoland Haeder <roland@mxchange.org>
Wed, 25 May 2016 18:22:21 +0000 (20:22 +0200)
Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/addressbook/beans/localization/AddressbookLocalizationSessionBean.java
src/java/org/mxchange/addressbook/beans/localization/AddressbookLocalizationSessionController.java

index c1f029b1ffcfd88ea3d74c1a25b265232c41b5aa..fd03276a3bf36adc22e45827fb200ce89447283c 100644 (file)
  */
 package org.mxchange.addressbook.beans.localization;
 
+import java.text.MessageFormat;
 import java.util.Locale;
 import javax.annotation.PostConstruct;
+import javax.enterprise.event.Observes;
 import javax.faces.bean.SessionScoped;
 import javax.faces.context.FacesContext;
 import javax.inject.Named;
 import org.mxchange.addressbook.beans.BaseAddressbookController;
+import org.mxchange.jusercore.events.login.UserLoggedInEvent;
 
 /**
  * A session bean for handling localization/internationalization changes. This
@@ -45,6 +48,33 @@ public class AddressbookLocalizationSessionBean extends BaseAddressbookControlle
         */
        private Locale locale;
 
+       @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
+                       throw new NullPointerException("event is null"); //NOI18N
+               } else if (event.getLoggedInUser() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("event.loggedInUser is null"); //NOI18N
+               } else if (event.getLoggedInUser().getUserId() == null) {
+                       // userId is null
+                       throw new NullPointerException("event.loggedInUser.userId is null"); //NOI18N
+               } else if (event.getLoggedInUser().getUserId() < 1) {
+                       // Not avalid id
+                       throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getLoggedInUser(), event.getLoggedInUser().getUserId())); //NOI18N
+               }
+
+               // Set locale here
+               this.setLocale(event.getLoggedInUser().getUserLocale());
+
+               // Trace message
+               //* NOISY-DEBUG: */ System.out.println("ContactWebBean:afterUserLogin - EXIT!"); //NOI18N
+       }
+
        @Override
        public String getLanguage () {
                //this.getLoggerBeanLocal().logTrace(MessageFormat.format("AddressbookLocalizationSessionBean::getLanguage(): locale.language={0} - EXIT!", this.getLocale().getLanguage())); //NOI18N
index 00fef9916bf95032cfcea3d7cdb3bb9caafd8461..8b5422a21ef2a3474677a4c0a7dbb4ad11d1a0aa 100644 (file)
@@ -18,6 +18,7 @@ package org.mxchange.addressbook.beans.localization;
 
 import java.io.Serializable;
 import java.util.Locale;
+import org.mxchange.jusercore.events.login.UserLoggedInEvent;
 
 /**
  * An interface for localization change beans
@@ -26,6 +27,13 @@ import java.util.Locale;
  */
 public interface AddressbookLocalizationSessionController extends Serializable {
 
+       /**
+        * Event observer for logged-in user
+        * <p>
+        * @param event Event instance
+        */
+       void afterUserLogin (final UserLoggedInEvent event);
+
        /**
         * Getter for locale
         * <p>