001
014
015 package com.liferay.portlet.messageboards.trash;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.trash.BaseTrashRenderer;
019 import com.liferay.portal.kernel.util.HtmlUtil;
020 import com.liferay.portal.kernel.workflow.WorkflowConstants;
021 import com.liferay.portal.theme.ThemeDisplay;
022 import com.liferay.portal.util.PortletKeys;
023 import com.liferay.portal.util.WebKeys;
024 import com.liferay.portlet.messageboards.model.MBMessage;
025 import com.liferay.portlet.messageboards.model.MBMessageDisplay;
026 import com.liferay.portlet.messageboards.model.MBThread;
027 import com.liferay.portlet.messageboards.model.MBThreadConstants;
028 import com.liferay.portlet.messageboards.model.MBTreeWalker;
029 import com.liferay.portlet.messageboards.service.MBMessageLocalServiceUtil;
030 import com.liferay.portlet.messageboards.service.MBMessageServiceUtil;
031
032 import java.util.Locale;
033
034 import javax.portlet.PortletRequest;
035 import javax.portlet.PortletResponse;
036
037
040 public class MBThreadTrashRenderer extends BaseTrashRenderer {
041
042 public static final String TYPE = "message_thread";
043
044 public MBThreadTrashRenderer(MBThread thread) throws PortalException {
045 _thread = thread;
046
047 _rootMessage = MBMessageLocalServiceUtil.getMBMessage(
048 thread.getRootMessageId());
049 }
050
051 @Override
052 public String getClassName() {
053 return MBThread.class.getName();
054 }
055
056 @Override
057 public long getClassPK() {
058 return _thread.getPrimaryKey();
059 }
060
061 @Override
062 public String getIconCssClass() {
063 return "icon-comments";
064 }
065
066 @Override
067 public String getIconPath(ThemeDisplay themeDisplay) {
068 return themeDisplay.getPathThemeImages() + "/common/conversation.png";
069 }
070
071 @Override
072 public String getPortletId() {
073 return PortletKeys.MESSAGE_BOARDS;
074 }
075
076 @Override
077 public String getSummary(
078 PortletRequest portletRequest, PortletResponse portletResponse) {
079
080 return null;
081 }
082
083 @Override
084 public String getTitle(Locale locale) {
085 return HtmlUtil.stripHtml(_rootMessage.getSubject());
086 }
087
088 @Override
089 public String getType() {
090 return TYPE;
091 }
092
093 @Override
094 public String render(
095 PortletRequest portletRequest, PortletResponse portletResponse,
096 String template)
097 throws Exception {
098
099 MBMessageDisplay messageDisplay =
100 MBMessageServiceUtil.getMessageDisplay(
101 _rootMessage.getMessageId(), WorkflowConstants.STATUS_ANY,
102 MBThreadConstants.THREAD_VIEW_TREE, false);
103
104 portletRequest.setAttribute(
105 WebKeys.MESSAGE_BOARDS_MESSAGE, messageDisplay);
106
107 MBTreeWalker treeWalker = messageDisplay.getTreeWalker();
108
109 portletRequest.setAttribute(
110 WebKeys.MESSAGE_BOARDS_TREE_WALKER, treeWalker);
111 portletRequest.setAttribute(
112 WebKeys.MESSAGE_BOARDS_TREE_WALKER_CATEGORY,
113 messageDisplay.getCategory());
114 portletRequest.setAttribute(
115 WebKeys.MESSAGE_BOARDS_TREE_WALKER_CUR_MESSAGE,
116 treeWalker.getRoot());
117 portletRequest.setAttribute(
118 WebKeys.MESSAGE_BOARDS_TREE_WALKER_DEPTH, new Integer(0));
119 portletRequest.setAttribute(
120 WebKeys.MESSAGE_BOARDS_TREE_WALKER_LAST_NODE, Boolean.FALSE);
121 portletRequest.setAttribute(
122 WebKeys.MESSAGE_BOARDS_TREE_WALKER_SEL_MESSAGE, _rootMessage);
123 portletRequest.setAttribute(
124 WebKeys.MESSAGE_BOARDS_TREE_WALKER_THREAD,
125 messageDisplay.getThread());
126
127 return "/html/portlet/message_boards/view_thread_tree.jsp";
128 }
129
130 private final MBMessage _rootMessage;
131 private final MBThread _thread;
132
133 }