001
014
015 package com.liferay.portal.comment.context;
016
017 import com.liferay.portal.comment.context.util.DiscussionRequestHelper;
018 import com.liferay.portal.comment.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.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 _rootDiscussionComment = discussion.getRootDiscussionComment();
041 }
042
043 @Override
044 public boolean isControlsVisible() throws PortalException {
045 if (_discussionTaglibHelper.isHideControls()) {
046 return false;
047 }
048
049 return _discussionPermission.hasAddPermission(
050 _discussionRequestHelper.getCompanyId(),
051 _discussionRequestHelper.getScopeGroupId(),
052 _discussionTaglibHelper.getClassName(),
053 _discussionTaglibHelper.getClassPK());
054 }
055
056 @Override
057 public boolean isDiscussionVisible() throws PortalException {
058 if (_rootDiscussionComment == null) {
059 return false;
060 }
061
062 if ((_rootDiscussionComment.getThreadCommentsCount() > 1) ||
063 hasViewPermission()) {
064
065 return true;
066 }
067
068 return false;
069 }
070
071 @Override
072 public boolean isMessageThreadVisible() {
073 if ((_rootDiscussionComment != null) &&
074 (_rootDiscussionComment.getThreadCommentsCount() > 1)) {
075
076 return true;
077 }
078
079 return false;
080 }
081
082 @Override
083 protected ThemeDisplay getThemeDisplay() {
084 return _discussionRequestHelper.getThemeDisplay();
085 }
086
087 protected boolean hasViewPermission() throws PortalException {
088 return _discussionPermission.hasViewPermission(
089 _discussionRequestHelper.getCompanyId(),
090 _discussionRequestHelper.getScopeGroupId(),
091 _discussionTaglibHelper.getClassName(),
092 _discussionTaglibHelper.getClassPK());
093 }
094
095 private final DiscussionPermission _discussionPermission;
096 private final DiscussionRequestHelper _discussionRequestHelper;
097 private final DiscussionTaglibHelper _discussionTaglibHelper;
098 private final DiscussionComment _rootDiscussionComment;
099
100 }