001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.portlet.communities.action;
016    
017    import com.liferay.portal.kernel.util.ParamUtil;
018    import com.liferay.portal.model.Group;
019    import com.liferay.portal.model.Layout;
020    import com.liferay.portal.model.LayoutTypePortlet;
021    import com.liferay.portal.model.MembershipRequest;
022    import com.liferay.portal.model.PortletPreferencesIds;
023    import com.liferay.portal.model.Team;
024    import com.liferay.portal.service.GroupLocalServiceUtil;
025    import com.liferay.portal.service.LayoutServiceUtil;
026    import com.liferay.portal.service.MembershipRequestLocalServiceUtil;
027    import com.liferay.portal.service.PortletPreferencesLocalServiceUtil;
028    import com.liferay.portal.service.TeamLocalServiceUtil;
029    import com.liferay.portal.util.PortalUtil;
030    import com.liferay.portal.util.PortletKeys;
031    import com.liferay.portal.util.WebKeys;
032    import com.liferay.portlet.PortletPreferencesFactoryUtil;
033    
034    import java.util.List;
035    
036    import javax.portlet.PortletPreferences;
037    import javax.portlet.PortletRequest;
038    
039    import javax.servlet.http.HttpServletRequest;
040    
041    /**
042     * @author Brian Wing Shun Chan
043     */
044    public class ActionUtil
045            extends com.liferay.portlet.enterpriseadmin.action.ActionUtil {
046    
047            public static void copyLookAndFeel(
048                            Layout targetLayout, Layout sourceLayout)
049                    throws Exception {
050    
051                    LayoutServiceUtil.updateLookAndFeel(
052                            targetLayout.getGroupId(), targetLayout.isPrivateLayout(),
053                            targetLayout.getLayoutId(),     sourceLayout.getThemeId(),
054                            sourceLayout.getColorSchemeId(), sourceLayout.getCss(), false);
055    
056                    LayoutServiceUtil.updateLookAndFeel(
057                            targetLayout.getGroupId(), targetLayout.isPrivateLayout(),
058                            targetLayout.getLayoutId(),     sourceLayout.getWapThemeId(),
059                            sourceLayout.getWapColorSchemeId(),     sourceLayout.getCss(), true);
060            }
061    
062            public static void copyPreferences(
063                            HttpServletRequest request, Layout targetLayout,
064                            Layout sourceLayout)
065                    throws Exception {
066    
067                    long companyId = targetLayout.getCompanyId();
068    
069                    LayoutTypePortlet sourceLayoutTypePortlet =
070                            (LayoutTypePortlet)sourceLayout.getLayoutType();
071    
072                    List<String> sourcePortletIds = sourceLayoutTypePortlet.getPortletIds();
073    
074                    for (String sourcePortletId : sourcePortletIds) {
075    
076                            // Copy preference
077    
078                            PortletPreferencesIds portletPreferencesIds =
079                                    PortletPreferencesFactoryUtil.getPortletPreferencesIds(
080                                            request, targetLayout, sourcePortletId);
081    
082                            PortletPreferencesLocalServiceUtil.getPreferences(
083                                    portletPreferencesIds);
084    
085                            PortletPreferencesIds sourcePortletPreferencesIds =
086                                    PortletPreferencesFactoryUtil.getPortletPreferencesIds(
087                                            request, sourceLayout, sourcePortletId);
088    
089                            PortletPreferences sourcePreferences =
090                                    PortletPreferencesLocalServiceUtil.getPreferences(
091                                            sourcePortletPreferencesIds);
092    
093                            PortletPreferencesLocalServiceUtil.updatePreferences(
094                                    portletPreferencesIds.getOwnerId(),
095                                    portletPreferencesIds.getOwnerType(),
096                                    portletPreferencesIds.getPlid(),
097                                    portletPreferencesIds.getPortletId(), sourcePreferences);
098    
099                            // Copy portlet setup
100    
101                            PortletPreferencesLocalServiceUtil.getPreferences(
102                                    companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
103                                    PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
104                                    sourcePortletId);
105    
106                            sourcePreferences =
107                                    PortletPreferencesLocalServiceUtil.getPreferences(
108                                            companyId, PortletKeys.PREFS_OWNER_ID_DEFAULT,
109                                            PortletKeys.PREFS_OWNER_TYPE_LAYOUT, sourceLayout.getPlid(),
110                                            sourcePortletId);
111    
112                            PortletPreferencesLocalServiceUtil.updatePreferences(
113                                    PortletKeys.PREFS_OWNER_ID_DEFAULT,
114                                    PortletKeys.PREFS_OWNER_TYPE_LAYOUT, targetLayout.getPlid(),
115                                    sourcePortletId, sourcePreferences);
116                    }
117            }
118    
119            public static void copyPreferences(
120                            PortletRequest portletRequest, Layout targetLayout,
121                            Layout sourceLayout)
122                    throws Exception {
123    
124                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
125                            portletRequest);
126    
127                    copyPreferences(request, targetLayout, sourceLayout);
128            }
129    
130            public static Group getGroup(HttpServletRequest request) throws Exception {
131                    long groupId = ParamUtil.getLong(request, "groupId");
132    
133                    Group group = null;
134    
135                    if (groupId > 0) {
136                            group = GroupLocalServiceUtil.getGroup(groupId);
137                    }
138    
139                    request.setAttribute(WebKeys.GROUP, group);
140    
141                    return group;
142            }
143    
144            public static Group getGroup(PortletRequest portletRequest)
145                    throws Exception {
146    
147                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
148                            portletRequest);
149    
150                    return getGroup(request);
151            }
152    
153            public static void getMembershipRequest(HttpServletRequest request)
154                    throws Exception {
155    
156                    long membershipRequestId = ParamUtil.getLong(
157                            request, "membershipRequestId");
158    
159                    MembershipRequest membershipRequest = null;
160    
161                    if (membershipRequestId > 0) {
162                            membershipRequest =
163                                    MembershipRequestLocalServiceUtil.getMembershipRequest(
164                                            membershipRequestId);
165                    }
166    
167                    request.setAttribute(WebKeys.MEMBERSHIP_REQUEST, membershipRequest);
168            }
169    
170            public static void getMembershipRequest(PortletRequest portletRequest)
171                    throws Exception {
172    
173                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
174                            portletRequest);
175    
176                    getMembershipRequest(request);
177            }
178    
179            public static void getTeam(HttpServletRequest request)
180                    throws Exception {
181    
182                    long teamId = ParamUtil.getLong(request, "teamId");
183    
184                    Team team = null;
185    
186                    if (teamId > 0) {
187                            team = TeamLocalServiceUtil.getTeam(teamId);
188                    }
189    
190                    request.setAttribute(WebKeys.TEAM, team);
191            }
192    
193            public static void getTeam(PortletRequest portletRequest)
194                    throws Exception {
195    
196                    HttpServletRequest request = PortalUtil.getHttpServletRequest(
197                            portletRequest);
198    
199                    getTeam(request);
200            }
201    
202    }