Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrelves2008-06-18 02:14:08 +0000
committerrelves2008-06-18 02:14:08 +0000
commit89758c7cefcd69281ea0fdcd66b78bc1e8cdc0dd (patch)
tree77ae772d23634ce7bf627534d5e4ba7fed1c0d7b /org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java
parent15c4d031ac1a5da49e7d4a1ca80505a422015a8a (diff)
downloadorg.eclipse.mylyn.tasks-89758c7cefcd69281ea0fdcd66b78bc1e8cdc0dd.tar.gz
org.eclipse.mylyn.tasks-89758c7cefcd69281ea0fdcd66b78bc1e8cdc0dd.tar.xz
org.eclipse.mylyn.tasks-89758c7cefcd69281ea0fdcd66b78bc1e8cdc0dd.zip
NEW - bug 237566: port custom attribute support
https://bugs.eclipse.org/bugs/show_bug.cgi?id=237566
Diffstat (limited to 'org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java')
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java46
1 files changed, 42 insertions, 4 deletions
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java
index a2c3ae0c9..2ef30ffbd 100644
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java
+++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/SaxMultiBugReportContentHandler.java
@@ -173,14 +173,22 @@ public class SaxMultiBugReportContentHandler extends DefaultHandler {
TaskAttribute endAttribute = repositoryTaskData.getRoot().getAttribute(localName);
if (endAttribute == null) {
String desc = "???";
+ BugzillaCustomField customField = null;
for (BugzillaCustomField bugzillaCustomField : customFields) {
if (localName.equals(bugzillaCustomField.getName())) {
- desc = bugzillaCustomField.getDescription();
+ customField = bugzillaCustomField;
+ break;
}
}
- TaskAttribute atr = repositoryTaskData.getRoot().createAttribute(localName);
- atr.getMetaData().defaults().setLabel(desc).setReadOnly(true);
- atr.setValue(parsedText);
+ if (customField != null) {
+ TaskAttribute atr = repositoryTaskData.getRoot().createAttribute(localName);
+ desc = customField.getDescription();
+ atr.getMetaData().defaults().setLabel(desc).setReadOnly(false);
+ atr.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
+ atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
+ atr.getMetaData().setReadOnly(true);
+ atr.setValue(parsedText);
+ }
} else {
endAttribute.addValue(parsedText);
}
@@ -311,6 +319,9 @@ public class SaxMultiBugReportContentHandler extends DefaultHandler {
updateAttachmentMetaData();
TaskAttribute attrCreation = repositoryTaskData.getRoot().getAttribute(
BugzillaAttribute.CREATION_TS.getKey());
+
+ updateCustomFields(repositoryTaskData);
+
// Guard against empty data sets
if (attrCreation != null && !attrCreation.equals("")) {
collector.accept(repositoryTaskData);
@@ -346,6 +357,33 @@ public class SaxMultiBugReportContentHandler extends DefaultHandler {
}
+ private void updateCustomFields(TaskData taskData) {
+ RepositoryConfiguration config = BugzillaCorePlugin.getRepositoryConfiguration(repositoryTaskData.getRepositoryUrl());
+ if (config != null) {
+ for (BugzillaCustomField bugzillaCustomField : config.getCustomFields()) {
+
+ TaskAttribute atr = taskData.getRoot().getAttribute(bugzillaCustomField.getName());
+ if (atr == null) {
+ atr = taskData.getRoot().createAttribute(bugzillaCustomField.getName());
+ }
+
+ if (atr != null) {
+ atr.getMetaData().defaults().setLabel(bugzillaCustomField.getDescription());
+ atr.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
+
+ List<String> options = bugzillaCustomField.getOptions();
+ if (options.size() > 0) {
+ atr.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT);
+ } else {
+ atr.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT);
+ }
+ atr.getMetaData().setReadOnly(false);
+ }
+ }
+ }
+
+ }
+
private void updateAttachmentMetaData() {
List<TaskAttribute> taskAttachments = repositoryTaskData.getAttributeMapper().getAttributesByType(
repositoryTaskData, TaskAttribute.TYPE_ATTACHMENT);

Back to the top