Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java171
1 files changed, 0 insertions, 171 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java
deleted file mode 100644
index cc5742169..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/CommentGroupStrategy.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Jingwen Ou and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Jingwen Ou - initial API and implementation
- * Tasktop Technologies - improvements
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.tasks.ui.editors;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
-import org.eclipse.mylyn.tasks.core.IRepositoryPerson;
-import org.eclipse.mylyn.tasks.core.ITaskComment;
-import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
-
-/**
- * @author Jingwen Ou
- * @author Steffen Pingel
- */
-public class CommentGroupStrategy {
-
- public static class CommentGroup {
-
- public static final String CURRENT = Messages.CommentGroupStrategy_Current;
-
- public static final String OLDER = Messages.CommentGroupStrategy_Older;
-
- public static final String RECENT = Messages.CommentGroupStrategy_Recent;
-
- private final List<ITaskComment> comments;
-
- private final String groupName;
-
- private final boolean incoming;
-
- public CommentGroup(String groupName, List<ITaskComment> comments, boolean incoming) {
- this.groupName = groupName;
- this.comments = comments;
- this.incoming = incoming;
- }
-
- public List<TaskAttribute> getCommentAttributes() {
- List<TaskAttribute> commentAttributes = new ArrayList<TaskAttribute>(comments.size());
- for (ITaskComment comment : comments) {
- commentAttributes.add(comment.getTaskAttribute());
- }
- return Collections.unmodifiableList(commentAttributes);
- }
-
- public List<ITaskComment> getComments() {
- return Collections.unmodifiableList(comments);
- }
-
- public String getGroupName() {
- return groupName;
- }
-
- public boolean hasIncoming() {
- return incoming;
- }
- }
-
- // public for testing
- public static final int MAX_CURRENT = 12;
-
- // public for testing
- public static final int MAX_RECENT = 20;
-
- /**
- * Groups comments according to "Older", "Recent" and "Current".
- *
- * @param comments
- * a list of comments to be grouped
- * @param currentPersonId
- * current login user id
- * @return a list of groups
- */
- public List<CommentGroup> groupComments(List<ITaskComment> comments, String currentPersonId) {
- if (comments.size() == 0) {
- return Collections.emptyList();
- }
-
- List<CommentGroup> commentGroups = new ArrayList<CommentGroup>(3);
-
- // current
- List<ITaskComment> current = new ArrayList<ITaskComment>(MAX_CURRENT);
- if (comments.size() > MAX_CURRENT) {
- for (int i = comments.size() - 1; i >= 0; i--) {
- ITaskComment comment = comments.get(i);
- if (isCurrent(current, comment, currentPersonId)) {
- current.add(comment);
- }
- }
- Collections.reverse(current);
- } else {
- current = comments;
- }
- commentGroups.add(new CommentGroup(CommentGroup.CURRENT, current, hasIncomingChanges(current)));
-
- // recent
- if (comments.size() > current.size()) {
- int recentToIndex = comments.size() - current.size();
- int recentFromIndex = Math.max(recentToIndex - MAX_RECENT, 0);
- List<ITaskComment> recent = new ArrayList<ITaskComment>(comments.subList(recentFromIndex, recentToIndex));
- if (recent.size() > 0) {
- commentGroups.add(new CommentGroup(CommentGroup.RECENT, recent, hasIncomingChanges(recent)));
-
- // the rest goes to older
- if (comments.size() > current.size() + recent.size()) {
- int olderToIndex = comments.size() - current.size() - recent.size();
- List<ITaskComment> older = new ArrayList<ITaskComment>(comments.subList(0, olderToIndex));
- commentGroups.add(new CommentGroup(CommentGroup.OLDER, older, hasIncomingChanges(older)));
- }
- }
- }
-
- Collections.reverse(commentGroups);
- return commentGroups;
- }
-
- protected boolean hasIncomingChanges(ITaskComment taskComment) {
- return false;
- }
-
- private boolean hasIncomingChanges(List<ITaskComment> comments) {
- for (ITaskComment comment : comments) {
- if (hasIncomingChanges(comment)) {
- return true;
- }
- }
- return false;
- }
-
- // public for testing
- public boolean isCurrent(List<ITaskComment> current, ITaskComment comment, String currentPersonId) {
- if (current.size() >= MAX_CURRENT) {
- return false;
- }
-
- // add all incoming changes
- if (hasIncomingChanges(comment)) {
- return true;
- }
-
- if (!current.isEmpty()) {
- // check if last comment was by current user
- ITaskComment lastComment = current.get(current.size() - 1);
- IRepositoryPerson lastPerson = lastComment.getAuthor();
- if (lastPerson != null && lastPerson.getPersonId().equals(currentPersonId)) {
- // bug 238038 comment #58, if the latest comment is generated automatically, look back one comment
- IRepositoryPerson person = comment.getAuthor();
- if (person != null && person.getPersonId().equals(currentPersonId) && lastComment.getText() != null
- && lastComment.getText().contains(AttachmentUtil.CONTEXT_DESCRIPTION)) {
- return true;
- }
-
- return false;
- }
- }
-
- return true;
- }
-}

Back to the top