001
014
015 package com.liferay.portal.comment.display.context;
016
017 import com.liferay.portal.comment.display.context.util.DiscussionRequestHelper;
018 import com.liferay.portal.comment.display.context.util.DiscussionTaglibHelper;
019 import com.liferay.portal.kernel.comment.Discussion;
020 import com.liferay.portal.kernel.comment.DiscussionComment;
021 import com.liferay.portal.kernel.comment.DiscussionPermission;
022 import com.liferay.portal.kernel.comment.display.context.CommentSectionDisplayContext;
023 import com.liferay.portal.kernel.exception.PortalException;
024 import com.liferay.portal.theme.ThemeDisplay;
025
026
029 public class DefaultCommentSectionDisplayContext
030 extends BaseCommentDisplayContext implements CommentSectionDisplayContext {
031
032 public DefaultCommentSectionDisplayContext(
033 DiscussionRequestHelper discussionRequestHelper,
034 DiscussionTaglibHelper discussionTaglibHelper,
035 DiscussionPermission discussionPermission, Discussion discussion) {
036
037 _discussionRequestHelper = discussionRequestHelper;
038 _discussionTaglibHelper = discussionTaglibHelper;
039 _discussionPermission = discussionPermission;
040
041 if (discussion == null) {
042 _rootDiscussionComment = null;
043 }
044 else {
045 _rootDiscussionComment = discussion.getRootDiscussionComment();
046 }
047 }
048
049 @Override
050 public boolean isControlsVisible() throws PortalException {
051 if ((_discussionPermission == null) ||
052 _discussionTaglibHelper.isHideControls()) {
053
054 return false;
055 }
056
057 return _discussionPermission.hasAddPermission(
058 _discussionRequestHelper.getCompanyId(),
059 _discussionRequestHelper.getScopeGroupId(),
060 _discussionTaglibHelper.getClassName(),
061 _discussionTaglibHelper.getClassPK());
062 }
063
064 @Override
065 public boolean isDiscussionVisible() throws PortalException {
066 if (_rootDiscussionComment == null) {
067 return false;
068 }
069
070 if ((_rootDiscussionComment.getThreadCommentsCount() > 1) ||
071 hasViewPermission()) {
072
073 return true;
074 }
075
076 return false;
077 }
078
079 @Override
080 public boolean isMessageThreadVisible() {
081 if ((_rootDiscussionComment != null) &&
082 (_rootDiscussionComment.getThreadCommentsCount() > 1)) {
083
084 return true;
085 }
086
087 return false;
088 }
089
090 @Override
091 protected ThemeDisplay getThemeDisplay() {
092 return _discussionRequestHelper.getThemeDisplay();
093 }
094
095 protected boolean hasViewPermission() throws PortalException {
096 return _discussionPermission.hasViewPermission(
097 _discussionRequestHelper.getCompanyId(),
098 _discussionRequestHelper.getScopeGroupId(),
099 _discussionTaglibHelper.getClassName(),
100 _discussionTaglibHelper.getClassPK());
101 }
102
103 private final DiscussionPermission _discussionPermission;
104 private final DiscussionRequestHelper _discussionRequestHelper;
105 private final DiscussionTaglibHelper _discussionTaglibHelper;
106 private final DiscussionComment _rootDiscussionComment;
107
108 }