1 | package edu.iu.uis.sit.portal.portlet.personalize.web; |
2 | |
3 | import java.util.ArrayList; |
4 | import java.util.Collections; |
5 | import java.util.Iterator; |
6 | import java.util.List; |
7 | |
8 | import javax.portlet.ActionRequest; |
9 | import javax.portlet.ActionResponse; |
10 | import javax.portlet.PortletSession; |
11 | import javax.portlet.RenderRequest; |
12 | import javax.portlet.RenderResponse; |
13 | |
14 | import org.springframework.web.portlet.ModelAndView; |
15 | |
16 | import edu.iu.uis.sit.portal.cache.service.CacheService; |
17 | import edu.iu.uis.sit.portal.portlet.personalize.domain.GroupLink; |
18 | import edu.iu.uis.sit.portal.portlet.personalize.services.PersonalizeService; |
19 | import edu.iu.uis.sit.portal.portlet.publishing.domain.Tab; |
20 | import edu.iu.uis.sit.portal.portlet.web.MultiActionController; |
21 | import edu.iu.uis.sit.portal.user.User; |
22 | |
23 | public class GroupLinksController extends MultiActionController { |
24 | private PersonalizeService personalizeService; |
25 | |
26 | private CacheService cacheService; |
27 | |
28 | public void removeGroupLink(ActionRequest request, ActionResponse response) throws Exception { |
29 | User user = (User) request.getPortletSession().getAttribute(User.USER_KEY, PortletSession.APPLICATION_SCOPE); |
30 | GroupLink groupLink = getPersonalizeService().findGroupLinkById(Long.parseLong(request.getParameter("groupLinkId"))); |
31 | if (user.getOnestartUser().getPersonId().equals(groupLink.getPersonId())) { |
32 | getPersonalizeService().deleteGroupLink(groupLink); |
33 | } |
34 | user.setGroupQuickLinks(getGroupQuickLinks(user)); |
35 | } |
36 | |
37 | public ModelAndView removeGroupLink(RenderRequest request, RenderResponse response) throws Exception { |
38 | return viewGroupLinks(request, response); |
39 | } |
40 | |
41 | public void addGroupLink(ActionRequest request, ActionResponse response) throws Exception { |
42 | User user = (User) request.getPortletSession().getAttribute(User.USER_KEY, PortletSession.APPLICATION_SCOPE); |
43 | GroupLink groupLink = new GroupLink(); |
44 | groupLink.setTabId(Long.parseLong(request.getParameter("tabId"))); |
45 | groupLink.setPersonId(user.getOnestartUser().getPersonId()); |
46 | getPersonalizeService().saveGroupLink(groupLink); |
47 | user.setGroupQuickLinks(getGroupQuickLinks(user)); |
48 | } |
49 | |
50 | public ModelAndView addGroupLink(RenderRequest request, RenderResponse response) throws Exception { |
51 | return viewGroupLinks(request, response); |
52 | } |
53 | |
54 | public ModelAndView start(RenderRequest request, RenderResponse response) throws Exception { |
55 | return viewGroupLinks(request, response); |
56 | } |
57 | |
58 | public ModelAndView viewGroupLinks(RenderRequest request, RenderResponse response) throws Exception { |
59 | User user = (User) request.getPortletSession().getAttribute(User.USER_KEY, PortletSession.APPLICATION_SCOPE); |
60 | |
61 | List groupLinks = getGroupQuickLinks(user); |
62 | List tabs = new ArrayList(); |
63 | |
64 | for (Iterator iter = getCacheService().findUsersTabs(user).iterator(); iter.hasNext();) { |
65 | Tab tab = (Tab) iter.next(); |
66 | boolean found = false; |
67 | for (Iterator iterator = groupLinks.iterator(); iterator.hasNext();) { |
68 | WebGroup webGroup = (WebGroup) iterator.next(); |
69 | if (tab.getTabId().equals(webGroup.getGroupLink().getTabId())) { |
70 | found = true; |
71 | break; |
72 | } |
73 | } |
74 | if (!found) { |
75 | tabs.add(tab); |
76 | } |
77 | } |
78 | ModelAndView modelAndView = new ModelAndView("displayGroupLinks"); |
79 | modelAndView.addObject("groupLinks", groupLinks); |
80 | modelAndView.addObject("usersTabs", tabs); |
81 | |
82 | return modelAndView; |
83 | } |
84 | |
85 | private List getGroupQuickLinks(User user) { |
86 | List groupLinks = new ArrayList(); |
87 | for (Iterator iter = getPersonalizeService().findUsersGroupLinks(user.getOnestartUser().getPersonId()).iterator(); iter.hasNext();) { |
88 | GroupLink groupLink = (GroupLink) iter.next(); |
89 | WebGroup webGroup = new WebGroup(groupLink); |
90 | Tab tab = getCacheService().findTab(user, groupLink.getTabId()); |
91 | if (tab != null) { |
92 | webGroup.setGroupLinkName(tab.getName()); |
93 | groupLinks.add(webGroup); |
94 | } |
95 | } |
96 | Collections.sort(groupLinks); |
97 | return groupLinks; |
98 | } |
99 | |
100 | public PersonalizeService getPersonalizeService() { |
101 | return personalizeService; |
102 | } |
103 | |
104 | public void setPersonalizeService(PersonalizeService personalizeService) { |
105 | this.personalizeService = personalizeService; |
106 | } |
107 | |
108 | public CacheService getCacheService() { |
109 | return cacheService; |
110 | } |
111 | |
112 | public void setCacheService(CacheService cacheService) { |
113 | this.cacheService = cacheService; |
114 | } |
115 | } |