From 2f7da9704cc37e93c2af1f4b7eae62cdaa3e98aa Mon Sep 17 00:00:00 2001 From: fbecker Date: Mon, 6 Jul 2009 19:53:59 +0000 Subject: ASSIGNED - bug 279357: [patch] add custom fields in New Task Editor https://bugs.eclipse.org/bugs/show_bug.cgi?id=279357 --- .../bugzilla/core/BugzillaTaskDataHandler.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'org.eclipse.mylyn.bugzilla.core') diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java index ccc99c28d..969424a2c 100644 --- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java +++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTaskDataHandler.java @@ -565,6 +565,47 @@ public class BugzillaTaskDataHandler extends AbstractTaskDataHandler { attrAddSelfToCc.getMetaData().setKind(null); } + List customFields = new ArrayList(); + if (repositoryConfiguration != null) { + customFields = repositoryConfiguration.getCustomFields(); + } + for (BugzillaCustomField bugzillaCustomField : customFields) { + if (bugzillaCustomField.isEnterBug()) { + TaskAttribute attribute = taskData.getRoot().createAttribute(bugzillaCustomField.getName()); + if (attribute != null) { + attribute.getMetaData().defaults().setLabel(bugzillaCustomField.getDescription()); + attribute.getMetaData().setKind(TaskAttribute.KIND_DEFAULT); + + switch (bugzillaCustomField.getType()) { + case 1: // Free Text + attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT); + break; + case 2: // Drop Down + attribute.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT); + break; + case 3: // Multiple-Selection Box + attribute.getMetaData().setType(TaskAttribute.TYPE_MULTI_SELECT); + break; + case 4: // Large Text Box + attribute.getMetaData().setType(TaskAttribute.TYPE_LONG_TEXT); + break; + case 5: // Date/Time + attribute.getMetaData().setType(TaskAttribute.TYPE_DATETIME); + break; + + default: + List options = bugzillaCustomField.getOptions(); + if (options.size() > 0) { + attribute.getMetaData().setType(TaskAttribute.TYPE_SINGLE_SELECT); + } else { + attribute.getMetaData().setType(TaskAttribute.TYPE_SHORT_TEXT); + } + } + attribute.getMetaData().setReadOnly(false); + } + } + } + return true; } -- cgit v1.2.3