diff options
author | spingel | 2009-05-18 06:33:28 +0000 |
---|---|---|
committer | spingel | 2009-05-18 06:33:28 +0000 |
commit | 621dae5c47866d1cc58997e97ba043f982e8fb3a (patch) | |
tree | 25deabaced5ca1804bc9ca738346a0d0c95a284f /org.eclipse.mylyn.tasks.bugs | |
parent | de70b414765cf55dd8bdf77612a766c4fe8cd213 (diff) | |
download | org.eclipse.mylyn.tasks-621dae5c47866d1cc58997e97ba043f982e8fb3a.tar.gz org.eclipse.mylyn.tasks-621dae5c47866d1cc58997e97ba043f982e8fb3a.tar.xz org.eclipse.mylyn.tasks-621dae5c47866d1cc58997e97ba043f982e8fb3a.zip |
NEW - bug 199706: support automatically determining the plug-in version for the new bug editor
https://bugs.eclipse.org/bugs/show_bug.cgi?id=199706
Diffstat (limited to 'org.eclipse.mylyn.tasks.bugs')
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java | 4 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java | 58 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java | 8 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java | 84 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java | 6 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java (renamed from org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java) | 4 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java | 2 |
7 files changed, 85 insertions, 81 deletions
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java index 618d0e83a..de85c10a1 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java @@ -22,8 +22,10 @@ import org.eclipse.mylyn.tasks.core.data.TaskData; */ public interface ISupportResponse { - public TaskData getTaskData(); + public IProduct getProduct(); public IStatus getStatus(); + public TaskData getTaskData(); + } diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java index 3109b639f..afa7116c3 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java @@ -22,9 +22,16 @@ import org.eclipse.core.runtime.IProduct; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.mylyn.internal.provisional.tasks.bugs.AbstractTaskContributor; +import org.eclipse.mylyn.internal.provisional.tasks.bugs.ISupportResponse; import org.eclipse.mylyn.internal.provisional.tasks.bugs.ITaskContribution; import org.eclipse.mylyn.internal.tasks.bugs.wizards.ErrorLogStatus; -import org.eclipse.mylyn.internal.tasks.bugs.wizards.FeatureStatus; +import org.eclipse.mylyn.internal.tasks.bugs.wizards.ProductStatus; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; +import org.eclipse.mylyn.tasks.core.ITaskMapping; +import org.eclipse.mylyn.tasks.core.TaskMapping; +import org.eclipse.mylyn.tasks.core.data.TaskAttribute; +import org.eclipse.mylyn.tasks.core.data.TaskData; +import org.eclipse.mylyn.tasks.ui.TasksUi; import org.eclipse.osgi.util.NLS; import org.osgi.framework.Bundle; @@ -42,6 +49,51 @@ public class DefaultTaskContributor extends AbstractTaskContributor { } } + @Override + public void postProcess(ISupportResponse response) { + IStatus contribution = response.getStatus(); + TaskData taskData = response.getTaskData(); + if (contribution instanceof ProductStatus) { + AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(taskData.getConnectorKind()); + ITaskMapping mapping = connector.getTaskMapping(taskData); + mapping.merge(new TaskMapping() { + @Override + public String getSeverity() { + return "enhancement"; //$NON-NLS-1$ + } + }); + } + if (response.getProduct() != null) { + IBundleGroup bundleGroup = ((SupportProduct) response.getProduct()).getBundleGroup(); + if (bundleGroup != null) { + TaskAttribute attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.VERSION); + if (attribute != null) { + final String version = getBestMatch(bundleGroup.getVersion(), attribute.getOptions()); + if (version.length() > 0) { + AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(taskData.getConnectorKind()); + ITaskMapping mapping = connector.getTaskMapping(taskData); + mapping.merge(new TaskMapping() { + @Override + public String getVersion() { + return version; + } + }); + } + } + } + } + } + + private String getBestMatch(String version, Map<String, String> options) { + String match = ""; //$NON-NLS-1$ + for (String option : options.values()) { + if (version.startsWith(option) && option.length() > match.length()) { + match = option; + } + } + return match; + } + public void appendErrorDetails(StringBuilder sb, IStatus status, Date date) { sb.append("\n\n"); sb.append(Messages.DefaultTaskContributor_Error_Details); @@ -74,8 +126,8 @@ public class DefaultTaskContributor extends AbstractTaskContributor { } public String getDescription(IStatus status) { - if (status instanceof FeatureStatus) { - SupportProduct product = (SupportProduct) ((FeatureStatus) status).getProduct(); + if (status instanceof ProductStatus) { + SupportProduct product = (SupportProduct) ((ProductStatus) status).getProduct(); if (product.getBundleGroup() != null) { StringBuilder sb = new StringBuilder(); sb.append("\n\n\n"); //$NON-NLS-1$ diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java index 415cb759d..c4073408c 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java @@ -44,4 +44,12 @@ public class IRepositoryConstants { public static final String REPOSITORY_URL = "repositoryUrl"; //$NON-NLS-1$ + public static final String SEVERITY = "severity"; //$NON-NLS-1$ + + public static final String VERSION = "version"; //$NON-NLS-1$ + + public static final String SUMMARY = "summary"; //$NON-NLS-1$ + + public static final String PRIORITY = "priority"; + } diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java index 0c7bf7f97..2e3c2d581 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java @@ -11,16 +11,16 @@ package org.eclipse.mylyn.internal.tasks.bugs; -import java.util.Date; import java.util.List; import java.util.Map; import org.eclipse.core.runtime.Assert; import org.eclipse.mylyn.tasks.core.ITaskMapping; import org.eclipse.mylyn.tasks.core.TaskMapping; -import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel; -import org.eclipse.mylyn.tasks.core.data.TaskData; +/** + * @author Steffen Pingel + */ public class KeyValueMapping extends TaskMapping { private final Map<String, String> attributes; @@ -31,61 +31,30 @@ public class KeyValueMapping extends TaskMapping { } @Override - public List<String> getCc() { - // ignore - return null; - } - - @Override - public Date getCompletionDate() { - // ignore - return null; - } - - @Override public String getComponent() { return attributes.get(IRepositoryConstants.COMPONENT); } @Override - public Date getCreationDate() { - // ignore - return null; - } - - @Override public String getDescription() { return attributes.get(IRepositoryConstants.DESCRIPTION); } @Override - public Date getDueDate() { - // ignore - return null; - } - - @Override public List<String> getKeywords() { - // ignore - return null; - } - - @Override - public Date getModificationDate() { - // ignore + // TODO implement return null; } @Override public String getOwner() { - // ignore + // TODO implement return null; } @Override - public PriorityLevel getPriorityLevel() { - // ignore - return null; + public String getPriority() { + return attributes.get(IRepositoryConstants.PRIORITY); } @Override @@ -94,51 +63,24 @@ public class KeyValueMapping extends TaskMapping { } @Override - public String getReporter() { - // ignore - return null; - } - - @Override - public String getResolution() { - // ignore - return null; + public String getSeverity() { + return attributes.get(IRepositoryConstants.SEVERITY); } @Override public String getSummary() { - // ignore - return null; - } - - @Override - public TaskData getTaskData() { - // ignore - return null; - } - - @Override - public String getTaskKey() { - // ignore - return null; + return attributes.get(IRepositoryConstants.SUMMARY); } @Override public String getTaskKind() { - // ignore + // TODO implement return null; } @Override - public String getTaskStatus() { - // ignore - return null; - } - - @Override - public String getTaskUrl() { - // ignore - return null; + public String getVersion() { + return attributes.get(IRepositoryConstants.VERSION); } @Override diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java index ca22de5f3..7f52fbd46 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java @@ -20,7 +20,7 @@ import org.eclipse.mylyn.commons.core.AbstractErrorReporter; import org.eclipse.mylyn.commons.core.StatusHandler; import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil; import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct; -import org.eclipse.mylyn.internal.tasks.bugs.wizards.FeatureStatus; +import org.eclipse.mylyn.internal.tasks.bugs.wizards.ProductStatus; import org.eclipse.mylyn.internal.tasks.bugs.wizards.ReportErrorWizard; import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; import org.eclipse.mylyn.tasks.core.data.TaskData; @@ -90,8 +90,8 @@ public class TaskErrorReporter { } public void handle(final IStatus status) { - if (status instanceof FeatureStatus) { - SupportRequest request = preProcess(status, ((FeatureStatus) status).getProduct()); + if (status instanceof ProductStatus) { + SupportRequest request = preProcess(status, ((ProductStatus) status).getProduct()); postProcess((AttributeTaskMapper) request.getDefaultContribution()); } else { ReportErrorWizard wizard = new ReportErrorWizard(TaskErrorReporter.this, status); diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java index 401461783..375be230e 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/FeatureStatus.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java @@ -18,11 +18,11 @@ import org.eclipse.mylyn.internal.provisional.tasks.bugs.IProduct; /** * @author Steffen Pingel */ -public class FeatureStatus extends Status { +public class ProductStatus extends Status { private final IProduct product; - public FeatureStatus(IProduct product) { + public ProductStatus(IProduct product) { super(IStatus.INFO, product.getId(), ""); //$NON-NLS-1$ this.product = product; } diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java index 40dfefe34..533199c69 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java @@ -112,7 +112,7 @@ public class ReportBugOrEnhancementWizard extends Wizard { // delay run this until after the dialog has been closed getShell().getDisplay().asyncExec(new Runnable() { public void run() { - TasksBugsPlugin.getTaskErrorReporter().handle(new FeatureStatus((IProduct) product)); + TasksBugsPlugin.getTaskErrorReporter().handle(new ProductStatus((IProduct) product)); } }); |