1 package com.germinus.merlin.util;
2
3 import java.util.Iterator;
4 import java.util.Set;
5
6 import javax.portlet.RenderRequest;
7 import javax.portlet.RenderResponse;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11
12 import com.germinus.liferay.util.ILiferayUtil;
13 import com.germinus.merlin.manager.layout.ILayoutManager;
14 import com.germinus.merlin.manager.layout.ILayoutManagerFactory;
15 import com.germinus.merlin.model.Course;
16 import com.germinus.merlin.model.Page;
17 import com.germinus.merlin.page.PagePortletConfiguration;
18 import com.liferay.portal.security.auth.PrincipalException;
19
20 public class PagesUtil implements IPagesUtil {
21
22 private ILiferayUtil liferayUtil;
23
24 private ILayoutManagerFactory layoutManagerFactory;
25
26 private static final Log log = LogFactory.getLog(PagesUtil.class);
27
28 public PagesUtil() {
29
30 }
31
32
33
34
35 public String getBlogPage(Page page, RenderRequest request,
36 RenderResponse response) {
37 String pageUrl = page.getBlogPageUrl();
38
39 ILayoutManager layoutManager = layoutManagerFactory.
40 getLayoutManager(ILayoutManagerFactory.BLOG);
41
42 pageUrl = getURLPage(pageUrl, request, response, layoutManager,
43 layoutManager.getPageProperties());
44
45 return pageUrl;
46 }
47
48
49
50
51 public String getDocumentPage(Page page, RenderRequest request,
52 RenderResponse response) {
53 String pageUrl = page.getDocumentPageUrl();
54
55 ILayoutManager layoutManager =layoutManagerFactory
56 .getLayoutManager(ILayoutManagerFactory.DOCUMENT);
57
58 pageUrl = getURLPage(pageUrl, request, response,layoutManager,
59 layoutManager.getPageProperties());
60
61 return pageUrl;
62 }
63
64
65
66
67 public String getForumPage(Page page, RenderRequest request,
68 RenderResponse response) {
69 String pageUrl = page.getForumPageUrl();
70
71 ILayoutManager layoutManager =layoutManagerFactory
72 .getLayoutManager(ILayoutManagerFactory.FORUM);
73
74 pageUrl = getURLPage(pageUrl, request, response, layoutManager,
75 layoutManager.getPageProperties());
76
77 return pageUrl;
78 }
79
80 public Page getPage(Course course, long plidAntecesor) {
81 Set<Page> pages = course.getPages();
82
83
84
85
86 for (Iterator<Page> i = pages.iterator(); i.hasNext();) {
87
88 Page page = i.next();
89
90 if (page.getAncestorLayoutPlid() == plidAntecesor) {
91
92 return page;
93 }
94 }
95
96
97 return new Page(0, course, plidAntecesor, "", "");
98 }
99
100
101
102
103 public String getURLPage(String url, RenderRequest request,
104 RenderResponse response, ILayoutManager layoutManager,
105 PagePortletConfiguration pageProperties) {
106
107 String pageUrl = url;
108
109 if (url == null || url.equals("")) {
110
111 long pageId = 0;
112
113 try {
114 pageId = layoutManager.addSubPage(request, response,
115 pageProperties);
116
117
118 pageUrl = "/web/"
119 + liferayUtil.getComunityGroupId(request,
120 response) + "/" + Long.toString(pageId);
121
122 } catch (PrincipalException e){
123
124 log.error("Error adding new page: user not authentication");
125 pageUrl = "";
126 } catch (Exception e){
127 log.error(e.getStackTrace());
128 }
129 }
130 return pageUrl;
131 }
132
133
134
135
136 public boolean pageAdded(Course course, long plidAntecesor) {
137 Set<Page> pages = course.getPages();
138
139
140
141 for (Iterator<Page> i = pages.iterator(); i.hasNext();) {
142
143 Page page = i.next();
144
145 if (page.getAncestorLayoutPlid() == plidAntecesor) {
146
147 return true;
148 }
149 }
150
151 return false;
152 }
153
154
155
156
157 public ILiferayUtil getLiferayUtil() {
158 return liferayUtil;
159 }
160
161
162
163
164 public void setLiferayUtil(ILiferayUtil liferayUtil) {
165 this.liferayUtil = liferayUtil;
166 }
167
168
169
170
171 public ILayoutManagerFactory getLayoutManagerFactory() {
172 return layoutManagerFactory;
173 }
174
175
176
177
178 public void setLayoutManagerFactory(ILayoutManagerFactory layoutManagerFactory) {
179 this.layoutManagerFactory = layoutManagerFactory;
180 }
181
182 public boolean urlPageEmpty(Page page)
183 {
184 if(page.getBlogPageUrl() != "" || page.getForumPageUrl() != "" || page.getDocumentPageUrl() != "")
185 {
186 return false;
187 }else
188 {
189 return true;
190 }
191 }
192 }