Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Becker2014-07-05 10:47:40 -0400
committerFrank Becker2014-08-09 08:18:17 -0400
commitbb8b0f8a7ac49fb6f11f73a5fc6656262b5c2859 (patch)
treec5e606ff8e652d6c8365fdd80e1121a4d560b666
parent9f6aaa91293b27eb793a2947f9aaa498c1c4b89d (diff)
downloadorg.eclipse.mylyn.tasks-bb8b0f8a7ac49fb6f11f73a5fc6656262b5c2859.tar.gz
org.eclipse.mylyn.tasks-bb8b0f8a7ac49fb6f11f73a5fc6656262b5c2859.tar.xz
org.eclipse.mylyn.tasks-bb8b0f8a7ac49fb6f11f73a5fc6656262b5c2859.zip
294413: [editor][framework] people part should display all attributes of
kind people Change-Id: I8c2cc96bb8e260924b4f221248923da467804fd3 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=294413
-rw-r--r--org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties2
-rw-r--r--org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java189
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java56
3 files changed, 85 insertions, 162 deletions
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
index c54633ffc..20fe5a1cc 100644
--- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
+++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/messages.properties
@@ -22,7 +22,7 @@ BugzillaAttribute_bug=bug
BugzillaAttribute_Bug_ID=Bug:
BugzillaAttribute_bug_when=bug_when
BugzillaAttribute_bugzilla=bugzilla
-BugzillaAttribute_CC=CC:
+BugzillaAttribute_CC=CC:\n(Select to remove)
BugzillaAttribute_CC_List=CC List
BugzillaAttribute_Classification=Classification:
BugzillaAttribute_Classification_ID=Classification ID:
diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java
index 7a1cbe0ca..434e4a838 100644
--- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java
+++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaPeoplePart.java
@@ -11,100 +11,69 @@
package org.eclipse.mylyn.internal.bugzilla.ui.editor;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaTaskDataHandler;
import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
+import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorPeoplePart;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
-import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
/**
* @author Rob Elves
*/
-public class BugzillaPeoplePart extends AbstractTaskEditorPart {
+public class BugzillaPeoplePart extends TaskEditorPeoplePart {
private static final int COLUMN_MARGIN = 5;
public BugzillaPeoplePart() {
- setPartName(Messages.BugzillaPeoplePart_People);
- }
-
- private void addAttribute(Composite composite, FormToolkit toolkit, TaskAttribute attribute) {
- AbstractAttributeEditor editor = createAttributeEditor(attribute);
- if (editor != null) {
- editor.createLabelControl(composite, toolkit);
- GridDataFactory.defaultsFor(editor.getLabelControl())
- .indent(COLUMN_MARGIN, 0)
- .applyTo(editor.getLabelControl());
- editor.createControl(composite, toolkit);
- getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- if (attribute.getId().equals(BugzillaAttribute.CC.getKey())) {
- GridDataFactory.fillDefaults()
- .grab(true, true)
- .align(SWT.FILL, SWT.FILL)
- .hint(130, 95)
- .applyTo(editor.getControl());
- } else {
- GridDataFactory.fillDefaults()
- .grab(true, false)
- .align(SWT.FILL, SWT.TOP)
- .hint(130, SWT.DEFAULT)
- .applyTo(editor.getControl());
- }
- }
}
@Override
- public void createControl(Composite parent, FormToolkit toolkit) {
- Section section = createSection(parent, toolkit, true);
- Composite peopleComposite = toolkit.createComposite(section);
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 5;
- layout.horizontalSpacing = 10;
- peopleComposite.setLayout(layout);
-
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
+ protected Collection<TaskAttribute> getAttributes() {
+ Map<String, TaskAttribute> allAttributes = getTaskData().getRoot().getAttributes();
+ List<TaskAttribute> attributes = new ArrayList<TaskAttribute>(allAttributes.size());
+ attributes.add(getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
TaskAttribute assignee = getTaskData().getRoot().getAttribute(BugzillaAttribute.SET_DEFAULT_ASSIGNEE.getKey());
if (assignee != null) {
- addAttribute(peopleComposite, toolkit, assignee);
+ attributes.add(assignee);
}
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
- String useParam = getTaskData().getAttributeMapper()
+ attributes.add(getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
+ String useQaContact = getTaskData().getAttributeMapper()
.getTaskRepository()
.getProperty(IBugzillaConstants.BUGZILLA_PARAM_USEQACONTACT);
- if (useParam == null || (useParam != null && useParam.equals("true"))) { //$NON-NLS-1$
- addAttribute(peopleComposite, toolkit,
- getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.QA_CONTACT.getKey()));
+ if (useQaContact == null || Boolean.parseBoolean(useQaContact)) {
+ attributes.add(getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.QA_CONTACT.getKey()));
}
- addAttribute(peopleComposite, toolkit,
- getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.NEWCC.getKey()));
- addSelfToCC(peopleComposite);
- TaskAttribute cc = getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.CC.getKey());
- if (cc != null) {
- addAttribute(peopleComposite, toolkit, cc);
- toolkit.createLabel(peopleComposite, ""); //$NON-NLS-1$
- Label label = toolkit.createLabel(peopleComposite, Messages.BugzillaPeoplePart__Select_to_remove_);
- GridDataFactory.fillDefaults().indent(0, 5).align(SWT.CENTER, SWT.CENTER).applyTo(label);
+ attributes.add(getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.NEWCC.getKey()));
+ addSelfToCC(attributes);
+ attributes.add(getTaskData().getRoot().getMappedAttribute(BugzillaAttribute.CC.getKey()));
+
+ for (TaskAttribute attribute : allAttributes.values()) {
+ if (TaskAttribute.TYPE_PERSON.equals(attribute.getMetaData().getType())) {
+ if (!attribute.getId().endsWith("_name") //$NON-NLS-1$
+ && !attribute.getId().equals(BugzillaAttribute.EXPORTER_NAME.getKey())) {
+ if (!attributes.contains(attribute)) {
+ attributes.add(attribute);
+ }
+ }
+ }
}
-
- toolkit.paintBordersFor(peopleComposite);
- section.setClient(peopleComposite);
- setSection(toolkit, section);
+ return attributes;
}
/**
- * Creates a check box for adding the repository user to the cc list. Does nothing if the repository does not have a
- * valid username, the repository user is the assignee, reporter or already on the the cc list.
+ * Adds ADD_SELF_CC attribute. Does nothing if the repository does not have a valid username, the repository user is
+ * the assignee, reporter or already on the the cc list.
*/
- protected void addSelfToCC(Composite composite) {
+ protected void addSelfToCC(Collection<TaskAttribute> attributes) {
TaskRepository repository = this.getTaskEditorPage().getTaskRepository();
@@ -128,93 +97,19 @@ public class BugzillaPeoplePart extends AbstractTaskEditorPart {
return;
}
- FormToolkit toolkit = getManagedForm().getToolkit();
TaskAttribute attrAddToCC = getTaskData().getRoot().getMappedAttribute(TaskAttribute.ADD_SELF_CC);
if (attrAddToCC == null) {
attrAddToCC = BugzillaTaskDataHandler.createAttribute(getTaskData(), BugzillaAttribute.ADDSELFCC);
}
- addAttribute(composite, toolkit, attrAddToCC);
+ attributes.add(attrAddToCC);
}
-// protected void addCCList(Composite attributesComposite) {
-//
-// RepositoryTaskAttribute addCCattribute = taskData.getAttribute(RepositoryTaskAttribute.NEW_CC);
-// if (addCCattribute == null) {
-// // TODO: remove once TRAC is priming taskData with NEW_CC attribute
-// taskData.setAttributeValue(RepositoryTaskAttribute.NEW_CC, "");
-// addCCattribute = taskData.getAttribute(RepositoryTaskAttribute.NEW_CC);
-// }
-// if (addCCattribute != null) {
-// Label label = createLabel(attributesComposite, addCCattribute);
-// GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(label);
-// Text text = createTextField(attributesComposite, addCCattribute, SWT.FLAT);
-// GridDataFactory.fillDefaults().hint(150, SWT.DEFAULT).applyTo(text);
-//
-// if (hasContentAssist(addCCattribute)) {
-// ContentAssistCommandAdapter adapter = applyContentAssist(text,
-// createContentProposalProvider(addCCattribute));
-// ILabelProvider propsalLabelProvider = createProposalLabelProvider(addCCattribute);
-// if (propsalLabelProvider != null) {
-// adapter.setLabelProvider(propsalLabelProvider);
-// }
-// adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-// }
-// }
-//
-// TaskAttribute CCattribute = getTaskData().getAttribute(TaskAttribute.USER_CC);
-// if (CCattribute != null) {
-// Label label = createLabel(attributesComposite, CCattribute);
-// GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.TOP).applyTo(label);
-// ccList = new org.eclipse.swt.widgets.List(attributesComposite, SWT.MULTI | SWT.V_SCROLL);// SWT.BORDER
-// ccList.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-// ccList.setFont(TEXT_FONT);
-// GridData ccListData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-// ccListData.horizontalSpan = 1;
-// ccListData.widthHint = 150;
-// ccListData.heightHint = 95;
-// ccList.setLayoutData(ccListData);
-// if (hasChanged(taskData.getAttribute(RepositoryTaskAttribute.USER_CC))) {
-// ccList.setBackground(colorIncoming);
-// }
-// java.util.List<String> ccs = taskData.getCc();
-// if (ccs != null) {
-// for (String cc : ccs) {
-// ccList.add(cc);
-// }
-// }
-// java.util.List<String> removedCCs = taskData.getAttributeValues(RepositoryTaskAttribute.REMOVE_CC);
-// if (removedCCs != null) {
-// for (String item : removedCCs) {
-// int i = ccList.indexOf(item);
-// if (i != -1) {
-// ccList.select(i);
-// }
-// }
-// }
-// ccList.addSelectionListener(new SelectionListener() {
-//
-// public void widgetSelected(SelectionEvent e) {
-// for (String cc : ccList.getItems()) {
-// int index = ccList.indexOf(cc);
-// if (ccList.isSelected(index)) {
-// List<String> remove = taskData.getAttributeValues(RepositoryTaskAttribute.REMOVE_CC);
-// if (!remove.contains(cc)) {
-// taskData.addAttributeValue(RepositoryTaskAttribute.REMOVE_CC, cc);
-// }
-// } else {
-// taskData.removeAttributeValue(RepositoryTaskAttribute.REMOVE_CC, cc);
-// }
-// }
-// attributeChanged(taskData.getAttribute(RepositoryTaskAttribute.REMOVE_CC));
-// }
-//
-// public void widgetDefaultSelected(SelectionEvent e) {
-// }
-// });
-// toolkit.createLabel(attributesComposite, "");
-// label = toolkit.createLabel(attributesComposite, "(Select to remove)");
-// GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(label);
-// }
-
-// }
+ @Override
+ protected GridDataFactory createLayoutData(AbstractAttributeEditor editor) {
+ GridDataFactory dataFactory = super.createLayoutData(editor);
+ if (editor.getTaskAttribute().getId().equals(BugzillaAttribute.CC.getKey())) {
+ dataFactory.grab(true, true).align(SWT.FILL, SWT.FILL).hint(130, 95);
+ }
+ return dataFactory;
+ }
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java
index 495e5be59..d99f6b0fd 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPeoplePart.java
@@ -12,8 +12,14 @@
package org.eclipse.mylyn.internal.tasks.ui.editors;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskAttributeMetaData;
import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
import org.eclipse.swt.SWT;
@@ -38,22 +44,26 @@ public class TaskEditorPeoplePart extends AbstractTaskEditorPart {
if (editor != null) {
editor.createLabelControl(composite, toolkit);
GridDataFactory.defaultsFor(editor.getLabelControl())
- .indent(COLUMN_MARGIN, 0)
- .applyTo(editor.getLabelControl());
+ .indent(COLUMN_MARGIN, 0)
+ .applyTo(editor.getLabelControl());
editor.createControl(composite, toolkit);
getTaskEditorPage().getAttributeEditorToolkit().adapt(editor);
- GridDataFactory gridDataFactory = GridDataFactory.fillDefaults()
- .grab(true, false)
- .align(SWT.FILL, SWT.TOP)
- .indent(3, 0);// prevent clipping of decorators on Mac
+ GridDataFactory dataFactory = createLayoutData(editor);
+ dataFactory.applyTo(editor.getControl());
+ }
+ }
- if (editor instanceof MultiSelectionAttributeEditor) {
- gridDataFactory.hint(SWT.DEFAULT, 95);
- }
+ protected GridDataFactory createLayoutData(AbstractAttributeEditor editor) {
+ GridDataFactory gridDataFactory = GridDataFactory.fillDefaults()
+ .grab(true, false)
+ .align(SWT.FILL, SWT.TOP)
+ .indent(3, 0);// prevent clipping of decorators on Mac
- gridDataFactory.applyTo(editor.getControl());
+ if (editor instanceof MultiSelectionAttributeEditor) {
+ gridDataFactory.hint(SWT.DEFAULT, 95);
}
+ return gridDataFactory;
}
@Override
@@ -73,10 +83,28 @@ public class TaskEditorPeoplePart extends AbstractTaskEditorPart {
}
protected void createAttributeEditors(FormToolkit toolkit, Composite peopleComposite) {
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.ADD_SELF_CC));
- addAttribute(peopleComposite, toolkit, getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_CC));
+ Collection<TaskAttribute> attributes = getAttributes();
+ for (TaskAttribute attribute : attributes) {
+ addAttribute(peopleComposite, toolkit, attribute);
+ }
+ }
+
+ protected Collection<TaskAttribute> getAttributes() {
+ Map<String, TaskAttribute> allAttributes = getTaskData().getRoot().getAttributes();
+ List<TaskAttribute> attributes = new ArrayList<TaskAttribute>(allAttributes.size());
+ attributes.add(getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_ASSIGNED));
+ attributes.add(getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_REPORTER));
+ attributes.add(getTaskData().getRoot().getMappedAttribute(TaskAttribute.ADD_SELF_CC));
+ attributes.add(getTaskData().getRoot().getMappedAttribute(TaskAttribute.USER_CC));
+ for (TaskAttribute attribute : allAttributes.values()) {
+ TaskAttributeMetaData properties = attribute.getMetaData();
+ if (TaskAttribute.KIND_PEOPLE.equals(properties.getKind())) {
+ if (!attributes.contains(attribute)) {
+ attributes.add(attribute);
+ }
+ }
+ }
+ return attributes;
}
}

Back to the top