This repository has been archived by the owner on Apr 8, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 91
/
FooterBean.java
109 lines (97 loc) · 4.87 KB
/
FooterBean.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/******************************************************************************
* JBoss, a division of Red Hat *
* Copyright 2012, Red Hat Middleware, LLC, and individual *
* contributors as indicated by the @authors tag. See the *
* copyright.txt in the distribution for a full listing of *
* individual contributors. *
* *
* This is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation; either version 2.1 of *
* the License, or (at your option) any later version. *
* *
* This software 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 *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this software; if not, write to the Free *
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
* 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
******************************************************************************/
package org.gatein.portlet.responsive.footer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.portal.Constants;
import org.exoplatform.portal.application.PortalRequestContext;
import org.exoplatform.portal.webui.util.Util;
import org.exoplatform.services.organization.OrganizationService;
import org.exoplatform.services.organization.UserProfile;
import org.exoplatform.services.resources.LocaleConfig;
import org.exoplatform.services.resources.LocaleConfigService;
import org.exoplatform.services.resources.LocaleContextInfo;
import org.exoplatform.services.resources.ResourceBundleService;
/**
* @author <a href="mailto:mwringe@redhat.com">Matt Wringe</a>
* @version $Revision$
*/
public class FooterBean
{
LocaleConfigService localeService;
ResourceBundleService resourceBundleService;
OrganizationService organizationService;
public FooterBean()
{
localeService = (LocaleConfigService)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(LocaleConfigService.class);
resourceBundleService = (ResourceBundleService)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(ResourceBundleService.class);
organizationService = (OrganizationService)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(OrganizationService.class);
}
public Locale getCurrentLocale()
{
return Util.getPortalRequestContext().getLocale();
}
public List<Locale> getLanguages()
{
Collection<LocaleConfig> localeConfigs = localeService.getLocalConfigs();
List<Locale> locales = new ArrayList<Locale>();
for (LocaleConfig localeConfig: localeConfigs)
{
locales.add(localeConfig.getLocale());
}
Collections.sort(locales, new LocaleComparator());
return locales;
}
private class LocaleComparator implements Comparator<Locale>
{
@Override
public int compare(Locale firstLocale, Locale secondLocale)
{
return (firstLocale.getDisplayName(getCurrentLocale()).compareTo(secondLocale.getDisplayName(getCurrentLocale())));
}
}
public void setUserLanguage(String username, String language) throws Exception
{
UserProfile userProfile = organizationService.getUserProfileHandler().findUserProfileByName(username);
if (userProfile != null && userProfile.getUserInfoMap() != null)
{
//Only save if user's locale has not been set
String currLocale = userProfile.getUserInfoMap().get(Constants.USER_LANGUAGE);
if (currLocale == null || currLocale.trim().equals(""))
{
userProfile.getUserInfoMap().put(Constants.USER_LANGUAGE, language);
organizationService.getUserProfileHandler().saveUserProfile(userProfile, false);
}
}
}
public void setLanguage(String language)
{
PortalRequestContext prc = PortalRequestContext.getCurrentInstance();
prc.setLocale(localeService.getLocaleConfig(language).getLocale());
}
}