Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2009-05-18 06:33:28 +0000
committerspingel2009-05-18 06:33:28 +0000
commit621dae5c47866d1cc58997e97ba043f982e8fb3a (patch)
tree25deabaced5ca1804bc9ca738346a0d0c95a284f /org.eclipse.mylyn.tasks.bugs
parentde70b414765cf55dd8bdf77612a766c4fe8cd213 (diff)
downloadorg.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.java4
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultTaskContributor.java58
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java8
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java84
-rw-r--r--org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java6
-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.java2
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));
}
});

Back to the top