package __PACKAGE__;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
@ManagedBean
@SessionScoped
public class LocaleBean {
private Locale locale;
@PostConstruct
public void init() {
locale = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
}
public Locale getLocale() {
return locale;
}
public void setLocale(Locale locale) {
this.locale = locale;
}
public SelectItem[] getLocales() {
List<SelectItem> items = new ArrayList<SelectItem>();
Iterator<Locale> supportedLocales = FacesContext.getCurrentInstance().getApplication().getSupportedLocales();
while (supportedLocales.hasNext()) {
Locale locale = supportedLocales.next();
items.add(new SelectItem(locale.toString(), locale.getDisplayName()));
}
return items.toArray(new SelectItem[] {});
}
public String getSelectedLocale() {
return getLocale().toString();
}
public void setSelectedLocale() {
setSelectedLocale(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("locale"));
}
public void setSelectedLocale(String localeString) {
Iterator<Locale> supportedLocales = FacesContext.getCurrentInstance().getApplication().getSupportedLocales();
while (supportedLocales.hasNext()) {
Locale locale = supportedLocales.next();
if (locale.toString().equals(localeString)) {
this.locale = locale;
break;
}
}
}
}