From d57e1876625484f9f1010152be85853a572e3fad Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Fri, 1 Apr 2016 21:04:52 +0200 Subject: [PATCH] added stuff for localization support (unfinished) --- .../LocalizationSessionController.java | 43 ++++++++++++ .../PizzaLocalizationSessionBean.java | 70 +++++++++++++++++++ web/WEB-INF/templates/base.tpl | 4 +- 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 src/java/org/mxchange/pizzaapplication/beans/localization/LocalizationSessionController.java create mode 100644 src/java/org/mxchange/pizzaapplication/beans/localization/PizzaLocalizationSessionBean.java diff --git a/src/java/org/mxchange/pizzaapplication/beans/localization/LocalizationSessionController.java b/src/java/org/mxchange/pizzaapplication/beans/localization/LocalizationSessionController.java new file mode 100644 index 00000000..f9faa9f0 --- /dev/null +++ b/src/java/org/mxchange/pizzaapplication/beans/localization/LocalizationSessionController.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2016 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.pizzaapplication.beans.localization; + +import java.io.Serializable; +import java.util.Locale; + +/** + * An interface for localization change beans + *

+ * @author Roland Haeder + */ +public interface LocalizationSessionController extends Serializable { + + /** + * Getter for locale + *

+ * @return Locale + */ + Locale getLocale (); + + /** + * Setter for locale + *

+ * @param locale Locale + */ + void setLocale (final Locale locale); + +} diff --git a/src/java/org/mxchange/pizzaapplication/beans/localization/PizzaLocalizationSessionBean.java b/src/java/org/mxchange/pizzaapplication/beans/localization/PizzaLocalizationSessionBean.java new file mode 100644 index 00000000..2d0bc184 --- /dev/null +++ b/src/java/org/mxchange/pizzaapplication/beans/localization/PizzaLocalizationSessionBean.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2016 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.pizzaapplication.beans.localization; + +import java.util.Locale; +import javax.annotation.PostConstruct; +import javax.faces.bean.SessionScoped; +import javax.faces.context.FacesContext; +import javax.inject.Named; +import org.mxchange.jcoreee.database.BaseDatabaseBean; + +/** + * A session bean for handling localization/internationalization changes. This + * class is based on an example at [1] from mkyong. + *

+ * 1: http://www.mkyong.com/jsf2/jsf-2-internationalization-example/ + *

+ * @author Roland Haeder + */ +@Named ("localization") +@SessionScoped +public class PizzaLocalizationSessionBean extends BaseDatabaseBean implements LocalizationSessionController { + + /** + * Serial number + */ + private static final long serialVersionUID = 1_867_671_657_629_601_528L; + + /** + * Current Locale + */ + private Locale locale; + + @Override + public Locale getLocale () { + return this.locale; + } + + @Override + public void setLocale (final Locale locale) { + this.locale = locale; + } + + /** + * Initializer for this bean + */ + @PostConstruct + public void init () { + // Create locale instance from context + Locale loc = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale(); + + // Set it here + this.setLocale(loc); + } + +} diff --git a/web/WEB-INF/templates/base.tpl b/web/WEB-INF/templates/base.tpl index f5d426eb..5c7d9cbe 100644 --- a/web/WEB-INF/templates/base.tpl +++ b/web/WEB-INF/templates/base.tpl @@ -1,5 +1,6 @@ + @@ -18,7 +20,7 @@

-