]> git.mxchange.org Git - pizzaservice-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 17:31:34 +0000 (19:31 +0200)
Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/pizzaapplication/beans/localization/PizzaLocalizationSessionBean.java
src/java/org/mxchange/pizzaapplication/beans/localization/PizzaLocalizationSessionController.java

index 4496bfc5dc4883f1263b081f3a3e08e1abbb8092..5e7acb6459d6d5aff8c15c47f3b292beb946a101 100644 (file)
  */
 package org.mxchange.pizzaapplication.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.pizzaapplication.beans.BasePizzaController;
+import org.mxchange.jusercore.events.login.UserLoggedInEvent;
 
 /**
  * A session bean for handling localization/internationalization changes. This
@@ -45,6 +48,33 @@ public class PizzaLocalizationSessionBean extends BasePizzaController implements
         */
        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("PizzaLocalizationSessionBean::getLanguage(): locale.language={0} - EXIT!", this.getLocale().getLanguage())); //NOI18N
index 7150b33000fbe16d3891810b19006003105413f8..7dbb017eb4f52d37252f6b6e68d4360187efd30d 100644 (file)
@@ -18,6 +18,7 @@ package org.mxchange.pizzaapplication.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 PizzaLocalizationSessionController extends Serializable {
 
+       /**
+        * Event observer for logged-in user
+        * <p>
+        * @param event Event instance
+        */
+       void afterUserLogin (final UserLoggedInEvent event);
+
        /**
         * Getter for locale
         * <p>