1
22
23 package com.liferay.portlet.journalcontent;
24
25 import com.liferay.portal.kernel.log.Log;
26 import com.liferay.portal.kernel.log.LogFactoryUtil;
27 import com.liferay.portal.kernel.portlet.PortletLayoutListener;
28 import com.liferay.portal.kernel.portlet.PortletLayoutListenerException;
29 import com.liferay.portal.kernel.util.StringPool;
30 import com.liferay.portal.kernel.util.Validator;
31 import com.liferay.portal.model.Layout;
32 import com.liferay.portal.service.LayoutLocalServiceUtil;
33 import com.liferay.portal.util.WebKeys;
34 import com.liferay.portlet.PortletPreferencesFactoryUtil;
35 import com.liferay.portlet.journal.NoSuchContentSearchException;
36 import com.liferay.portlet.journal.service.JournalContentSearchLocalServiceUtil;
37
38 import javax.portlet.PortletPreferences;
39
40 import org.springframework.mock.web.MockHttpServletRequest;
41
42
49 public class JournalContentPortletLayoutListener
50 implements PortletLayoutListener {
51
52 public void onAddToLayout(String portletId, long plid)
53 throws PortletLayoutListenerException {
54
55 if (_log.isDebugEnabled()) {
56 _log.debug("Add " + portletId + " to layout " + plid);
57 }
58 }
59
60 public void onMoveInLayout(String portletId, long plid)
61 throws PortletLayoutListenerException {
62
63 if (_log.isDebugEnabled()) {
64 _log.debug("Move " + portletId + " from in " + plid);
65 }
66 }
67
68 public void onRemoveFromLayout(String portletId, long plid)
69 throws PortletLayoutListenerException {
70
71 if (_log.isDebugEnabled()) {
72 _log.debug("Remove " + portletId + " from layout " + plid);
73 }
74
75 try {
76 deleteContentSearch(portletId, plid);
77 }
78 catch (Exception e) {
79 throw new PortletLayoutListenerException(e);
80 }
81 }
82
83 protected void deleteContentSearch(String portletId, long plid)
84 throws Exception {
85
86 MockHttpServletRequest request = new MockHttpServletRequest();
87
88 Layout layout = LayoutLocalServiceUtil.getLayout(plid);
89
90 request.setAttribute(WebKeys.LAYOUT, layout);
91
92 PortletPreferences preferences =
93 PortletPreferencesFactoryUtil.getPortletSetup(
94 request, portletId, StringPool.BLANK);
95
96 String articleId = preferences.getValue("article-id", null);
97
98 if (Validator.isNull(articleId)) {
99 return;
100 }
101
102 try {
103 JournalContentSearchLocalServiceUtil.deleteArticleContentSearch(
104 layout.getGroupId(), layout.isPrivateLayout(),
105 layout.getLayoutId(), portletId, articleId);
106 }
107 catch (NoSuchContentSearchException nscse) {
108 }
109 }
110
111 private static Log _log =
112 LogFactoryUtil.getLog(JournalContentPortletLayoutListener.class);
113
114 }