1
14
15 package com.liferay.portlet.socialequityadmin.action;
16
17 import com.liferay.portal.kernel.util.ParamUtil;
18 import com.liferay.portal.struts.PortletAction;
19 import com.liferay.portal.theme.ThemeDisplay;
20 import com.liferay.portal.util.PortalUtil;
21 import com.liferay.portal.util.WebKeys;
22 import com.liferay.portlet.social.model.SocialEquityActionMapping;
23 import com.liferay.portlet.social.model.SocialEquitySetting;
24 import com.liferay.portlet.social.model.SocialEquitySettingConstants;
25 import com.liferay.portlet.social.service.SocialEquitySettingLocalServiceUtil;
26
27 import java.util.ArrayList;
28 import java.util.HashMap;
29 import java.util.List;
30 import java.util.Map;
31
32 import javax.portlet.ActionRequest;
33 import javax.portlet.ActionResponse;
34 import javax.portlet.PortletConfig;
35 import javax.portlet.RenderRequest;
36 import javax.portlet.RenderResponse;
37
38 import org.apache.struts.action.ActionForm;
39 import org.apache.struts.action.ActionForward;
40 import org.apache.struts.action.ActionMapping;
41
42
49 public class ViewAction extends PortletAction {
50
51 public void processAction(
52 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
53 ActionRequest actionRequest, ActionResponse actionResponse)
54 throws Exception {
55
56 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
57 WebKeys.THEME_DISPLAY);
58
59 String[] classNames = PortalUtil.getSocialEquityClassNames();
60
61 for (String className : classNames) {
62 List<SocialEquityActionMapping> mergedEquityActionMappings =
63 getMergedEquityActionMappings(actionRequest, className);
64
65 SocialEquitySettingLocalServiceUtil.updateSocialEquitySettings(
66 themeDisplay.getScopeGroupId(), className,
67 mergedEquityActionMappings);
68 }
69
70 sendRedirect(actionRequest, actionResponse);
71 }
72
73 public ActionForward render(
74 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
75 RenderRequest renderRequest, RenderResponse renderResponse)
76 throws Exception {
77
78 ThemeDisplay themeDisplay = (ThemeDisplay)renderRequest.getAttribute(
79 WebKeys.THEME_DISPLAY);
80
81 Map<String, List<SocialEquityActionMapping>> equityActionMappingsMap =
82 new HashMap<String, List<SocialEquityActionMapping>>();
83
84 String[] classNames = PortalUtil.getSocialEquityClassNames();
85
86 for (String className : classNames) {
87 List<SocialEquityActionMapping> mergedEquityActionMappings =
88 getMergedEquityActionMappings(
89 themeDisplay.getScopeGroupId(), className);
90
91 equityActionMappingsMap.put(className, mergedEquityActionMappings);
92 }
93
94 renderRequest.setAttribute(
95 WebKeys.SOCIAL_EQUITY_ACTION_MAPPINGS_MAP, equityActionMappingsMap);
96
97 return mapping.findForward("portlet.social_equity_admin.view");
98 }
99
100 protected SocialEquityActionMapping getMergedEquityActionMapping(
101 ActionRequest actionRequest,
102 SocialEquityActionMapping equityActionMapping)
103 throws Exception {
104
105 SocialEquityActionMapping mergedEquityActionMapping =
106 equityActionMapping.clone();
107
108 String className = equityActionMapping.getClassName();
109
110 int informationLifespan = ParamUtil.getInteger(
111 actionRequest,
112 className + "." + mergedEquityActionMapping.getActionId() +
113 ".informationLifespan",
114 -1);
115
116 if (informationLifespan >= 0) {
117 mergedEquityActionMapping.setInformationLifespan(
118 informationLifespan);
119 }
120
121 int informationValue = ParamUtil.getInteger(
122 actionRequest,
123 className + "." + mergedEquityActionMapping.getActionId() +
124 ".informationValue",
125 -1);
126
127 if (informationValue >= 0) {
128 mergedEquityActionMapping.setInformationValue(informationValue);
129 }
130
131 int participationLifespan = ParamUtil.getInteger(
132 actionRequest,
133 className + "." + mergedEquityActionMapping.getActionId() +
134 ".participationLifespan",
135 -1);
136
137 if (participationLifespan >= 0) {
138 mergedEquityActionMapping.setParticipationLifespan(
139 participationLifespan);
140 }
141
142 int participationValue = ParamUtil.getInteger(
143 actionRequest,
144 className + "." + mergedEquityActionMapping.getActionId() +
145 ".participationValue",
146 -1);
147
148 if (participationValue >= 0) {
149 mergedEquityActionMapping.setParticipationValue(participationValue);
150 }
151
152 return mergedEquityActionMapping;
153 }
154
155 protected SocialEquityActionMapping getMergedEquityActionMapping(
156 long groupId, SocialEquityActionMapping equityActionMapping)
157 throws Exception {
158
159 SocialEquityActionMapping mergedEquityActionMapping =
160 equityActionMapping.clone();
161
162 List<SocialEquitySetting> equitySettings =
163 SocialEquitySettingLocalServiceUtil.getEquitySettings(
164 groupId, equityActionMapping.getClassName(),
165 equityActionMapping.getActionId());
166
167 for (SocialEquitySetting equitySetting : equitySettings) {
168 if (equitySetting.getType() ==
169 SocialEquitySettingConstants.TYPE_INFORMATION) {
170
171 mergedEquityActionMapping.setInformationLifespan(
172 equitySetting.getValidity());
173 mergedEquityActionMapping.setInformationValue(
174 equitySetting.getValue());
175 }
176 else {
177 mergedEquityActionMapping.setParticipationLifespan(
178 equitySetting.getValidity());
179 mergedEquityActionMapping.setParticipationValue(
180 equitySetting.getValue());
181 }
182 }
183
184 return mergedEquityActionMapping;
185 }
186
187 protected List<SocialEquityActionMapping> getMergedEquityActionMappings(
188 ActionRequest actionRequest, String className)
189 throws Exception {
190
191 List<SocialEquityActionMapping> mergedEquityActionMappings =
192 new ArrayList<SocialEquityActionMapping>();
193
194 List<SocialEquityActionMapping> equityActionMappings =
195 PortalUtil.getSocialEquityActionMappings(className);
196
197 for (SocialEquityActionMapping equityActionMapping :
198 equityActionMappings) {
199
200 SocialEquityActionMapping mergedEquityActionMapping =
201 getMergedEquityActionMapping(
202 actionRequest, equityActionMapping);
203
204 mergedEquityActionMappings.add(mergedEquityActionMapping);
205 }
206
207 return mergedEquityActionMappings;
208 }
209
210 protected List<SocialEquityActionMapping> getMergedEquityActionMappings(
211 long groupId, String className)
212 throws Exception {
213
214 List<SocialEquityActionMapping> mergedEquityActionMappings =
215 new ArrayList<SocialEquityActionMapping>();
216
217 List<SocialEquityActionMapping> equityActionMappings =
218 PortalUtil.getSocialEquityActionMappings(className);
219
220 for (SocialEquityActionMapping equityActionMapping :
221 equityActionMappings) {
222
223 SocialEquityActionMapping mergedEquityActionMapping =
224 getMergedEquityActionMapping(groupId, equityActionMapping);
225
226 mergedEquityActionMappings.add(mergedEquityActionMapping);
227 }
228
229 return mergedEquityActionMappings;
230 }
231
232 }