diff options
author | spingel | 2010-07-06 06:55:05 +0000 |
---|---|---|
committer | spingel | 2010-07-06 06:55:05 +0000 |
commit | ee395092b1bc9444cb92d43e25cef116ef651939 (patch) | |
tree | 6f86963766419f33f0451533c326bb457468fd79 /org.eclipse.mylyn.trac.core | |
parent | 2c42e20aa5cc8133af6d9c18ea512ddb59980031 (diff) | |
download | org.eclipse.mylyn.tasks-ee395092b1bc9444cb92d43e25cef116ef651939.tar.gz org.eclipse.mylyn.tasks-ee395092b1bc9444cb92d43e25cef116ef651939.tar.xz org.eclipse.mylyn.tasks-ee395092b1bc9444cb92d43e25cef116ef651939.zip |
NEW - bug 318954: support stories and improve sub task creation
https://bugs.eclipse.org/bugs/show_bug.cgi?id=318954
Diffstat (limited to 'org.eclipse.mylyn.trac.core')
2 files changed, 33 insertions, 8 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java index 179793777..743f835ad 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java @@ -59,7 +59,7 @@ import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession; public class TracRepositoryConnector extends AbstractRepositoryConnector { public enum TaskKind { - DEFECT, ENHANCEMENT, TASK; + DEFECT, ENHANCEMENT, TASK, STORY; public static TaskKind fromString(String type) { if (type == null) { @@ -74,6 +74,9 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { if (type.equals("Task")) { //$NON-NLS-1$ return TASK; } + if (type.equals("Story")) { //$NON-NLS-1$ + return STORY; + } return null; } @@ -90,6 +93,9 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { if (type.equals("task")) { //$NON-NLS-1$ return TASK; } + if (type.equals("story")) { //$NON-NLS-1$ + return STORY; + } return null; } @@ -102,6 +108,8 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { return "Enhancement"; //$NON-NLS-1$ case TASK: return "Task"; //$NON-NLS-1$ + case STORY: + return "Story"; //$NON-NLS-1$ default: return ""; //$NON-NLS-1$ } diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java index 0412194e1..eee7fa9fd 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTaskDataHandler.java @@ -17,9 +17,9 @@ import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.StringTokenizer; -import java.util.Map.Entry; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; @@ -32,15 +32,15 @@ import org.eclipse.mylyn.internal.trac.core.model.TracAction; import org.eclipse.mylyn.internal.trac.core.model.TracAttachment; import org.eclipse.mylyn.internal.trac.core.model.TracComment; import org.eclipse.mylyn.internal.trac.core.model.TracTicket; -import org.eclipse.mylyn.internal.trac.core.model.TracTicketField; import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key; +import org.eclipse.mylyn.internal.trac.core.model.TracTicketField; import org.eclipse.mylyn.internal.trac.core.util.TracUtil; import org.eclipse.mylyn.tasks.core.ITask; import org.eclipse.mylyn.tasks.core.ITaskMapping; import org.eclipse.mylyn.tasks.core.RepositoryResponse; +import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind; import org.eclipse.mylyn.tasks.core.RepositoryStatus; import org.eclipse.mylyn.tasks.core.TaskRepository; -import org.eclipse.mylyn.tasks.core.RepositoryResponse.ResponseKind; import org.eclipse.mylyn.tasks.core.data.AbstractTaskDataHandler; import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper; import org.eclipse.mylyn.tasks.core.data.TaskAttribute; @@ -57,6 +57,10 @@ import org.eclipse.osgi.util.NLS; */ public class TracTaskDataHandler extends AbstractTaskDataHandler { + private static final String TASK_TYPE_TASK = "task"; //$NON-NLS-1$ + + public static final String TASK_TYPE_STORY = "story"; //$NON-NLS-1$ + private static final String TASK_DATA_VERSION = "2"; //$NON-NLS-1$ public static final String ATTRIBUTE_BLOCKED_BY = "blockedby"; //$NON-NLS-1$ @@ -318,11 +322,17 @@ public class TracTaskDataHandler extends AbstractTaskDataHandler { } createAttribute(data, client, TracAttribute.CC); if (existingTask) { - data.getRoot().createAttribute(TracAttributeMapper.NEW_CC).getMetaData().setType( - TaskAttribute.TYPE_SHORT_TEXT).setReadOnly(false); + data.getRoot() + .createAttribute(TracAttributeMapper.NEW_CC) + .getMetaData() + .setType(TaskAttribute.TYPE_SHORT_TEXT) + .setReadOnly(false); data.getRoot().createAttribute(TracAttributeMapper.REMOVE_CC); - data.getRoot().createAttribute(TaskAttribute.COMMENT_NEW).getMetaData().setType( - TaskAttribute.TYPE_LONG_RICH_TEXT).setReadOnly(false); + data.getRoot() + .createAttribute(TaskAttribute.COMMENT_NEW) + .getMetaData() + .setType(TaskAttribute.TYPE_LONG_RICH_TEXT) + .setReadOnly(false); } // operations data.getRoot().createAttribute(TaskAttribute.OPERATION).getMetaData().setType(TaskAttribute.TYPE_OPERATION); @@ -488,6 +498,13 @@ public class TracTaskDataHandler extends AbstractTaskDataHandler { if (blockedByAttribute != null) { blockedByAttribute.clearValues(); } + // special handling for stories which should have tasks as subtasks + TaskAttribute typeAttribute = taskData.getRoot().getAttribute(TracAttribute.TYPE.getTracKey()); + if (typeAttribute != null && TASK_TYPE_STORY.equals(typeAttribute.getValue())) { + if (typeAttribute.getOptions().containsKey(TASK_TYPE_TASK)) { + typeAttribute.setValue(TASK_TYPE_TASK); + } + } return true; } |