View | Details | Raw Unified | Return to bug 166595 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditorPage.java (-3 / +77 lines)
Lines 11-26 Link Here
11
11
12
package org.eclipse.mylyn.internal.bugzilla.ui.editor;
12
package org.eclipse.mylyn.internal.bugzilla.ui.editor;
13
13
14
import java.util.Collections;
15
import java.util.List;
14
import java.util.Set;
16
import java.util.Set;
15
17
16
import org.eclipse.core.runtime.CoreException;
18
import org.eclipse.core.runtime.CoreException;
19
import org.eclipse.core.runtime.NullProgressMonitor;
17
import org.eclipse.jface.dialogs.IMessageProvider;
20
import org.eclipse.jface.dialogs.IMessageProvider;
18
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
21
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
19
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
22
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
20
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCustomField;
23
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCustomField;
21
import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
24
import org.eclipse.mylyn.internal.bugzilla.core.IBugzillaConstants;
25
import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
22
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
26
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
23
import org.eclipse.mylyn.tasks.core.data.TaskData;
27
import org.eclipse.mylyn.tasks.core.data.TaskData;
28
import org.eclipse.mylyn.tasks.core.data.TaskDataModelEvent;
29
import org.eclipse.mylyn.tasks.core.data.TaskDataModelListener;
24
import org.eclipse.mylyn.tasks.ui.TasksUi;
30
import org.eclipse.mylyn.tasks.ui.TasksUi;
25
import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
31
import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
26
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
32
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage;
Lines 94-105 Link Here
94
		return descriptors;
100
		return descriptors;
95
	}
101
	}
96
102
103
	private TaskDataModelListener productListener = null;
104
97
	@Override
105
	@Override
98
	protected AttributeEditorFactory createAttributeEditorFactory() {
106
	protected AttributeEditorFactory createAttributeEditorFactory() {
99
		AttributeEditorFactory factory = new AttributeEditorFactory(getModel(), getTaskRepository(), getEditorSite()) {
107
		AttributeEditorFactory factory = new AttributeEditorFactory(getModel(), getTaskRepository(), getEditorSite()) {
100
			@Override
108
			@Override
101
			public AbstractAttributeEditor createEditor(String type, final TaskAttribute taskAttribute) {
109
			public AbstractAttributeEditor createEditor(String type, final TaskAttribute taskAttribute) {
102
				AbstractAttributeEditor editor;
110
				AbstractAttributeEditor editor;
111
				if (taskAttribute.getId().equals(BugzillaAttribute.PRODUCT.getKey())) {
112
					if (productListener == null) {
113
						productListener = new TaskDataModelListener() {
114
							@Override
115
							public void attributeChanged(TaskDataModelEvent event) {
116
								TaskAttribute taskAttribute = event.getTaskAttribute();
117
								if (taskAttribute != null) {
118
									if (taskAttribute.getId().equals(BugzillaAttribute.PRODUCT.getKey())) {
119
										RepositoryConfiguration repositoryConfiguration = null;
120
										try {
121
											repositoryConfiguration = BugzillaCorePlugin.getRepositoryConfiguration(
122
													getModel().getTaskRepository(), false, new NullProgressMonitor());
123
											TaskAttribute attributeComponent = taskAttribute.getTaskData()
124
													.getRoot()
125
													.getMappedAttribute(BugzillaAttribute.COMPONENT.getKey());
126
											TaskAttribute attributeTargetMilestone = taskAttribute.getTaskData()
127
													.getRoot()
128
													.getMappedAttribute(BugzillaAttribute.TARGET_MILESTONE.getKey());
129
130
											if (attributeComponent != null) {
131
												List<String> optionValues = repositoryConfiguration.getComponents(taskAttribute.getValue());
132
												Collections.sort(optionValues);
133
												attributeComponent.clearOptions();
134
												for (String option : optionValues) {
135
													attributeComponent.putOption(option, option);
136
												}
137
												if (optionValues.size() == 1) {
138
													attributeComponent.setValue(optionValues.get(0));
139
												} else {
140
													attributeComponent.setValue(""); //$NON-NLS-1$
141
												}
142
143
											}
144
											if (attributeTargetMilestone != null) {
145
												List<String> optionValues = repositoryConfiguration.getTargetMilestones(taskAttribute.getValue());
146
												Collections.sort(optionValues);
147
												attributeTargetMilestone.clearOptions();
148
												for (String option : optionValues) {
149
													attributeTargetMilestone.putOption(option, option);
150
												}
151
												if (optionValues.size() == 1) {
152
													attributeTargetMilestone.setValue(optionValues.get(0));
153
												} else {
154
													attributeTargetMilestone.setValue("---"); //$NON-NLS-1$
155
												}
156
157
											}
158
											BugzillaTaskEditorPage.this.getEditorForAttribute(attributeComponent)
159
													.refresh();
160
											BugzillaTaskEditorPage.this.getEditorForAttribute(attributeTargetMilestone)
161
													.refresh();
162
										} catch (CoreException e) {
163
											// TODO Auto-generated catch block
164
											e.printStackTrace();
165
										}
166
									}
167
								}
168
							}
169
						};
170
						getModel().addModelListener(productListener);
171
					}
172
				}
103
				if (IBugzillaConstants.EDITOR_TYPE_KEYWORDS.equals(type)) {
173
				if (IBugzillaConstants.EDITOR_TYPE_KEYWORDS.equals(type)) {
104
					editor = new BugzillaKeywordAttributeEditor(getModel(), taskAttribute);
174
					editor = new BugzillaKeywordAttributeEditor(getModel(), taskAttribute);
105
				} else if (IBugzillaConstants.EDITOR_TYPE_REMOVECC.equals(type)) {
175
				} else if (IBugzillaConstants.EDITOR_TYPE_REMOVECC.equals(type)) {
Lines 125-130 Link Here
125
					});
195
					});
126
				}
196
				}
127
197
198
				BugzillaTaskEditorPage.this.addToAttributeEditorMap(taskAttribute, editor);
128
				return editor;
199
				return editor;
129
			}
200
			}
130
		};
201
		};
Lines 136-142 Link Here
136
207
137
		TaskAttribute summaryAttribute = getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.SUMMARY);
208
		TaskAttribute summaryAttribute = getModel().getTaskData().getRoot().getMappedAttribute(TaskAttribute.SUMMARY);
138
		if (summaryAttribute != null && summaryAttribute.getValue().length() == 0) {
209
		if (summaryAttribute != null && summaryAttribute.getValue().length() == 0) {
139
			getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_enter_a_short_summary_before_submitting, IMessageProvider.ERROR);
210
			getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_enter_a_short_summary_before_submitting,
211
					IMessageProvider.ERROR);
140
			AbstractTaskEditorPart part = getPart(ID_PART_SUMMARY);
212
			AbstractTaskEditorPart part = getPart(ID_PART_SUMMARY);
141
			if (part != null) {
213
			if (part != null) {
142
				part.setFocus();
214
				part.setFocus();
Lines 147-153 Link Here
147
		TaskAttribute componentAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
219
		TaskAttribute componentAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
148
				BugzillaAttribute.COMPONENT.getKey());
220
				BugzillaAttribute.COMPONENT.getKey());
149
		if (componentAttribute != null && componentAttribute.getValue().length() == 0) {
221
		if (componentAttribute != null && componentAttribute.getValue().length() == 0) {
150
			getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_select_a_component_before_submitting, IMessageProvider.ERROR);
222
			getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_select_a_component_before_submitting,
223
					IMessageProvider.ERROR);
151
			AbstractTaskEditorPart part = getPart(ID_PART_ATTRIBUTES);
224
			AbstractTaskEditorPart part = getPart(ID_PART_ATTRIBUTES);
152
			if (part != null) {
225
			if (part != null) {
153
				part.setFocus();
226
				part.setFocus();
Lines 158-164 Link Here
158
		TaskAttribute descriptionAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
231
		TaskAttribute descriptionAttribute = getModel().getTaskData().getRoot().getMappedAttribute(
159
				TaskAttribute.DESCRIPTION);
232
				TaskAttribute.DESCRIPTION);
160
		if (descriptionAttribute != null && descriptionAttribute.getValue().length() == 0) {
233
		if (descriptionAttribute != null && descriptionAttribute.getValue().length() == 0) {
161
			getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_enter_a_description_before_submitting, IMessageProvider.ERROR);
234
			getTaskEditor().setMessage(Messages.BugzillaTaskEditorPage_Please_enter_a_description_before_submitting,
235
					IMessageProvider.ERROR);
162
			AbstractTaskEditorPart descriptionPart = getPart(ID_PART_DESCRIPTION);
236
			AbstractTaskEditorPart descriptionPart = getPart(ID_PART_DESCRIPTION);
163
			if (descriptionPart != null) {
237
			if (descriptionPart != null) {
164
				descriptionPart.setFocus();
238
				descriptionPart.setFocus();
(-)src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttribute.java (-1 / +1 lines)
Lines 109-115 Link Here
109
109
110
	PRIORITY(Messages.BugzillaAttribute_Priority, "priority", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
110
	PRIORITY(Messages.BugzillaAttribute_Priority, "priority", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
111
111
112
	PRODUCT(Messages.BugzillaAttribute_Product, "product", TaskAttribute.TYPE_SHORT_TEXT, false, true), //$NON-NLS-1$
112
	PRODUCT(Messages.BugzillaAttribute_Product, "product", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
113
113
114
	REP_PLATFORM(Messages.BugzillaAttribute_Platform, "rep_platform", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
114
	REP_PLATFORM(Messages.BugzillaAttribute_Platform, "rep_platform", TaskAttribute.TYPE_SINGLE_SELECT, false, false), //$NON-NLS-1$
115
115
(-)src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java (-1 / +1 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
(-)src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPage.java (-21 / +56 lines)
Lines 17-26 Link Here
17
import java.util.Collection;
17
import java.util.Collection;
18
import java.util.Collections;
18
import java.util.Collections;
19
import java.util.Date;
19
import java.util.Date;
20
import java.util.HashMap;
20
import java.util.Iterator;
21
import java.util.Iterator;
21
import java.util.LinkedHashSet;
22
import java.util.LinkedHashSet;
22
import java.util.LinkedList;
23
import java.util.LinkedList;
23
import java.util.List;
24
import java.util.List;
25
import java.util.Map;
24
import java.util.Set;
26
import java.util.Set;
25
27
26
import org.eclipse.core.runtime.Assert;
28
import org.eclipse.core.runtime.Assert;
Lines 349-357 Link Here
349
						// automatically refresh if the user has not made any changes and there is no chance of missing incomings
351
						// automatically refresh if the user has not made any changes and there is no chance of missing incomings
350
						refreshFormContent();
352
						refreshFormContent();
351
					} else {
353
					} else {
352
						getTaskEditor().setMessage(
354
						getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Task_has_incoming_changes,
353
								Messages.AbstractTaskEditorPage_Task_has_incoming_changes, IMessageProvider.WARNING,
355
								IMessageProvider.WARNING, new HyperlinkAdapter() {
354
								new HyperlinkAdapter() {
355
									@Override
356
									@Override
356
									public void linkActivated(HyperlinkEvent e) {
357
									public void linkActivated(HyperlinkEvent e) {
357
										refreshFormContent();
358
										refreshFormContent();
Lines 450-455 Link Here
450
451
451
	private TaskAttachmentDropListener defaultDropListener;
452
	private TaskAttachmentDropListener defaultDropListener;
452
453
454
	private final Map<TaskAttribute, AbstractAttributeEditor> attributeEditorMap = new HashMap<TaskAttribute, AbstractAttributeEditor>();
455
453
	// TODO 3.1 define constructor for setting id and label
456
	// TODO 3.1 define constructor for setting id and label
454
	public AbstractTaskEditorPage(TaskEditor editor, String connectorKind) {
457
	public AbstractTaskEditorPage(TaskEditor editor, String connectorKind) {
455
		super(editor, "id", "label"); //$NON-NLS-1$ //$NON-NLS-2$
458
		super(editor, "id", "label"); //$NON-NLS-1$ //$NON-NLS-2$
Lines 559-567 Link Here
559
562
560
			AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(getConnectorKind());
563
			AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(getConnectorKind());
561
			if (connectorUi == null) {
564
			if (connectorUi == null) {
562
				getTaskEditor().setMessage(
565
				getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Synchronize_to_update_editor_contents,
563
						Messages.AbstractTaskEditorPage_Synchronize_to_update_editor_contents, IMessageProvider.INFORMATION,
566
						IMessageProvider.INFORMATION, new HyperlinkAdapter() {
564
						new HyperlinkAdapter() {
565
							@Override
567
							@Override
566
							public void linkActivated(HyperlinkEvent e) {
568
							public void linkActivated(HyperlinkEvent e) {
567
								refreshFormContent();
569
								refreshFormContent();
Lines 791-802 Link Here
791
			model.save(monitor);
793
			model.save(monitor);
792
		} catch (final CoreException e) {
794
		} catch (final CoreException e) {
793
			StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error saving task", e)); //$NON-NLS-1$
795
			StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error saving task", e)); //$NON-NLS-1$
794
			getTaskEditor().setMessage(
796
			getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Could_not_save_task, IMessageProvider.ERROR,
795
					Messages.AbstractTaskEditorPage_Could_not_save_task, IMessageProvider.ERROR, new HyperlinkAdapter() {
797
					new HyperlinkAdapter() {
796
						@Override
798
						@Override
797
						public void linkActivated(HyperlinkEvent event) {
799
						public void linkActivated(HyperlinkEvent event) {
798
							TasksUiInternal.displayStatus(
800
							TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Save_failed, e.getStatus());
799
									Messages.AbstractTaskEditorPage_Save_failed, e.getStatus());
800
						}
801
						}
801
					});
802
					});
802
		}
803
		}
Lines 844-851 Link Here
844
	public void fillToolBar(IToolBarManager toolBarManager) {
845
	public void fillToolBar(IToolBarManager toolBarManager) {
845
		final TaskRepository taskRepository = (model != null) ? getModel().getTaskRepository() : null;
846
		final TaskRepository taskRepository = (model != null) ? getModel().getTaskRepository() : null;
846
		if (taskRepository != null) {
847
		if (taskRepository != null) {
847
			ControlContribution repositoryLabelControl = new ControlContribution(
848
			ControlContribution repositoryLabelControl = new ControlContribution(Messages.AbstractTaskEditorPage_Title) {
848
					Messages.AbstractTaskEditorPage_Title) {
849
				@Override
849
				@Override
850
				protected Control createControl(Composite parent) {
850
				protected Control createControl(Composite parent) {
851
					FormToolkit toolkit = getTaskEditor().getHeaderForm().getToolkit();
851
					FormToolkit toolkit = getTaskEditor().getHeaderForm().getToolkit();
Lines 1100-1107 Link Here
1100
				getTaskEditor().setMessage(message, IMessageProvider.ERROR, new HyperlinkAdapter() {
1100
				getTaskEditor().setMessage(message, IMessageProvider.ERROR, new HyperlinkAdapter() {
1101
					@Override
1101
					@Override
1102
					public void linkActivated(HyperlinkEvent e) {
1102
					public void linkActivated(HyperlinkEvent e) {
1103
						TasksUiInternal.displayStatus(
1103
						TasksUiInternal.displayStatus(Messages.AbstractTaskEditorPage_Submit_failed, status);
1104
								Messages.AbstractTaskEditorPage_Submit_failed, status);
1105
					}
1104
					}
1106
				});
1105
				});
1107
			}
1106
			}
Lines 1139-1146 Link Here
1139
1138
1140
		} catch (final CoreException e) {
1139
		} catch (final CoreException e) {
1141
			StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error opening task", e)); //$NON-NLS-1$
1140
			StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, "Error opening task", e)); //$NON-NLS-1$
1142
			getTaskEditor().setStatus(
1141
			getTaskEditor().setStatus(Messages.AbstractTaskEditorPage_Error_opening_task,
1143
					Messages.AbstractTaskEditorPage_Error_opening_task, Messages.AbstractTaskEditorPage_Open_failed, e.getStatus());
1142
					Messages.AbstractTaskEditorPage_Open_failed, e.getStatus());
1144
		}
1143
		}
1145
	}
1144
	}
1146
1145
Lines 1272-1279 Link Here
1272
			refreshDisabled = true;
1271
			refreshDisabled = true;
1273
			model.refresh(null);
1272
			model.refresh(null);
1274
		} catch (CoreException e) {
1273
		} catch (CoreException e) {
1275
			getTaskEditor().setMessage(
1274
			getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Failed_to_read_task_data_ + e.getMessage(),
1276
					Messages.AbstractTaskEditorPage_Failed_to_read_task_data_ + e.getMessage(), IMessageProvider.ERROR);
1275
					IMessageProvider.ERROR);
1277
			taskData = null;
1276
			taskData = null;
1278
			return;
1277
			return;
1279
		} finally {
1278
		} finally {
Lines 1417-1425 Link Here
1417
1416
1418
	private void updateHeaderMessage() {
1417
	private void updateHeaderMessage() {
1419
		if (taskData == null) {
1418
		if (taskData == null) {
1420
			getTaskEditor().setMessage(
1419
			getTaskEditor().setMessage(Messages.AbstractTaskEditorPage_Synchronize_to_retrieve_task_data,
1421
					Messages.AbstractTaskEditorPage_Synchronize_to_retrieve_task_data, IMessageProvider.WARNING,
1420
					IMessageProvider.WARNING, new HyperlinkAdapter() {
1422
					new HyperlinkAdapter() {
1423
						@Override
1421
						@Override
1424
						public void linkActivated(HyperlinkEvent e) {
1422
						public void linkActivated(HyperlinkEvent e) {
1425
							if (synchronizeEditorAction != null) {
1423
							if (synchronizeEditorAction != null) {
Lines 1430-1433 Link Here
1430
		}
1428
		}
1431
	}
1429
	}
1432
1430
1431
	/**
1432
	 * @since 3.1
1433
	 */
1434
	public void addToAttributeEditorMap(TaskAttribute attribute, AbstractAttributeEditor editor) {
1435
		if (attributeEditorMap.containsKey(attribute)) {
1436
			attributeEditorMap.remove(attribute);
1437
		}
1438
		attributeEditorMap.put(attribute, editor);
1439
	}
1440
1441
	/**
1442
	 * @since 3.1
1443
	 */
1444
	public AbstractAttributeEditor getEditorForAttribute(TaskAttribute attribute) {
1445
		return attributeEditorMap.get(attribute);
1446
	}
1447
1448
	/**
1449
	 * @since 3.1
1450
	 */
1451
	public Map<TaskAttribute, AbstractAttributeEditor> getAttributeEditorMap() {
1452
		return attributeEditorMap;
1453
	}
1454
1455
	/**
1456
	 * @since 3.1
1457
	 */
1458
	public void refresh() {
1459
		try {
1460
			showEditorBusy(true);
1461
			for (AbstractAttributeEditor abstractAttributeEditor : attributeEditorMap.values()) {
1462
				abstractAttributeEditor.refresh();
1463
			}
1464
		} finally {
1465
			showEditorBusy(false);
1466
		}
1467
	}
1433
}
1468
}
(-)src/org/eclipse/mylyn/tasks/ui/editors/AbstractAttributeEditor.java (+6 lines)
Lines 213-216 Link Here
213
		this.readOnly = readOnly;
213
		this.readOnly = readOnly;
214
	}
214
	}
215
215
216
	/**
217
	 * @since 3.1
218
	 */
219
	public void refresh() {
220
		// subclasses should overwrite this method
221
	}
216
}
222
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/editors/SingleSelectionAttributeEditor.java (-3 / +21 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 109-116 Link Here
109
	}
109
	}
110
110
111
	public void setValue(String value) {
111
	public void setValue(String value) {
112
		getAttributeMapper().setValue(getTaskAttribute(), value);
112
		String oldValue = getAttributeMapper().getValue(getTaskAttribute());
113
		attributeChanged();
113
		if (!oldValue.equals(value)) {
114
			getAttributeMapper().setValue(getTaskAttribute(), value);
115
			attributeChanged();
116
		}
114
	}
117
	}
115
118
116
	void selectDefaultValue() {
119
	void selectDefaultValue() {
Lines 120-123 Link Here
120
		}
123
		}
121
	}
124
	}
122
125
126
	@Override
127
	public void refresh() {
128
		combo.removeAll();
129
		Map<String, String> labelByValue = getAttributeMapper().getOptions(getTaskAttribute());
130
		if (labelByValue != null) {
131
			values = labelByValue.keySet().toArray(new String[0]);
132
			for (String value : values) {
133
				combo.add(labelByValue.get(value));
134
			}
135
		}
136
137
		select(getValue(), getValueLabel());
138
		combo.redraw();
139
	}
140
123
}
141
}

Return to bug 166595