Lines 86-92
Link Here
|
86 |
private static final String LABEL_TIME_TRACKING = "Bugzilla Time Tracking"; |
86 |
private static final String LABEL_TIME_TRACKING = "Bugzilla Time Tracking"; |
87 |
|
87 |
|
88 |
private static final String LABEL_CUSTOM_FIELD = "Custom Fields"; |
88 |
private static final String LABEL_CUSTOM_FIELD = "Custom Fields"; |
89 |
|
89 |
|
90 |
protected Text keywordsText; |
90 |
protected Text keywordsText; |
91 |
|
91 |
|
92 |
protected Text estimateText; |
92 |
protected Text estimateText; |
Lines 120-126
Link Here
|
120 |
// config.setRightImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT)); |
120 |
// config.setRightImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT)); |
121 |
// compareInput = new BugzillaCompareInput(config); |
121 |
// compareInput = new BugzillaCompareInput(config); |
122 |
} |
122 |
} |
123 |
|
123 |
|
124 |
@Override |
124 |
@Override |
125 |
protected boolean supportsCommentSort() { |
125 |
protected boolean supportsCommentSort() { |
126 |
return false; |
126 |
return false; |
Lines 129-143
Link Here
|
129 |
@Override |
129 |
@Override |
130 |
protected void createCustomAttributeLayout(Composite composite) { |
130 |
protected void createCustomAttributeLayout(Composite composite) { |
131 |
RepositoryTaskAttribute attribute = null; |
131 |
RepositoryTaskAttribute attribute = null; |
|
|
132 |
int customFieldsAnz = 0; |
132 |
try { |
133 |
try { |
133 |
RepositoryConfiguration configuration = BugzillaCorePlugin.getRepositoryConfiguration(this.repository, |
134 |
RepositoryConfiguration configuration = BugzillaCorePlugin.getRepositoryConfiguration(this.repository, |
134 |
false, new NullProgressMonitor()); |
135 |
false, new NullProgressMonitor()); |
135 |
|
136 |
|
136 |
if (configuration != null) { |
137 |
if (configuration != null) { |
137 |
List<BugzillaCustomField> customFields = configuration.getCustomFields(); |
138 |
List<BugzillaCustomField> customFields = configuration.getCustomFields(); |
138 |
if (!customFields.isEmpty()) { |
139 |
if (!customFields.isEmpty()) { |
139 |
for (BugzillaCustomField bugzillaCustomField : customFields) { |
140 |
for (BugzillaCustomField bugzillaCustomField : customFields) { |
140 |
List<String> optionList = bugzillaCustomField.getOptions(); |
141 |
if (!bugzillaCustomField.isEnterBug()) { |
|
|
142 |
continue; |
143 |
} |
144 |
customFieldsAnz++; |
141 |
attribute = this.taskData.getAttribute(bugzillaCustomField.getName()); |
145 |
attribute = this.taskData.getAttribute(bugzillaCustomField.getName()); |
142 |
if (attribute == null) { |
146 |
if (attribute == null) { |
143 |
RepositoryTaskAttribute newattribute = new RepositoryTaskAttribute( |
147 |
RepositoryTaskAttribute newattribute = new RepositoryTaskAttribute( |
Lines 148-195
Link Here
|
148 |
final RepositoryTaskAttribute cfattribute = this.taskData.getAttribute(bugzillaCustomField.getName()); |
152 |
final RepositoryTaskAttribute cfattribute = this.taskData.getAttribute(bugzillaCustomField.getName()); |
149 |
Label label = createLabel(composite, cfattribute); |
153 |
Label label = createLabel(composite, cfattribute); |
150 |
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(label); |
154 |
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(label); |
151 |
if (optionList != null && !optionList.isEmpty()) { |
155 |
|
152 |
GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
156 |
switch (bugzillaCustomField.getType()) { |
153 |
data.horizontalSpan = 1; |
157 |
case 1: // Free Text |
154 |
final CCombo attributeCombo = new CCombo(composite, SWT.FLAT | SWT.READ_ONLY); |
158 |
Text freeText = createTextField(composite, cfattribute, SWT.FLAT); |
155 |
getManagedForm().getToolkit().adapt(attributeCombo, true, true); |
159 |
GridData freeTextData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
156 |
attributeCombo.setFont(TEXT_FONT); |
160 |
freeTextData.horizontalSpan = 1; |
157 |
attributeCombo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); |
161 |
freeTextData.verticalSpan = 1; |
|
|
162 |
if (hasChanged(cfattribute)) { |
163 |
freeText.setBackground(getColorIncoming()); |
164 |
} |
165 |
freeText.setLayoutData(freeTextData); |
166 |
break; |
167 |
case 2: // Drop Down |
168 |
List<String> optionList = bugzillaCustomField.getOptions(); |
169 |
GridData dropDownData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
170 |
dropDownData.horizontalSpan = 1; |
171 |
final CCombo dropDown = new CCombo(composite, SWT.FLAT | SWT.READ_ONLY); |
172 |
getManagedForm().getToolkit().adapt(dropDown, true, true); |
173 |
dropDown.setFont(TEXT_FONT); |
174 |
dropDown.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); |
158 |
if (hasChanged(cfattribute)) { |
175 |
if (hasChanged(cfattribute)) { |
159 |
attributeCombo.setBackground(getColorIncoming()); |
176 |
dropDown.setBackground(getColorIncoming()); |
160 |
} |
177 |
} |
161 |
attributeCombo.setLayoutData(data); |
178 |
dropDown.setLayoutData(dropDownData); |
162 |
|
179 |
|
163 |
for (String val : optionList) { |
180 |
for (String val : optionList) { |
164 |
if (val != null) { |
181 |
if (val != null) { |
165 |
attributeCombo.add(val); |
182 |
dropDown.add(val); |
166 |
} |
183 |
} |
167 |
} |
184 |
} |
168 |
String value = cfattribute.getValue(); |
185 |
String value = cfattribute.getValue(); |
169 |
if (value == null) { |
186 |
if (value == null) { |
170 |
value = ""; |
187 |
value = ""; |
171 |
} |
188 |
} |
172 |
if (attributeCombo.indexOf(value) != -1) { |
189 |
if (dropDown.indexOf(value) != -1) { |
173 |
attributeCombo.select(attributeCombo.indexOf(value)); |
190 |
dropDown.select(dropDown.indexOf(value)); |
174 |
} |
191 |
} |
175 |
attributeCombo.clearSelection(); |
192 |
dropDown.clearSelection(); |
176 |
attributeCombo.addSelectionListener(new SelectionAdapter() { |
193 |
dropDown.addSelectionListener(new SelectionAdapter() { |
177 |
@Override |
194 |
@Override |
178 |
public void widgetSelected(SelectionEvent event) { |
195 |
public void widgetSelected(SelectionEvent event) { |
179 |
if (attributeCombo.getSelectionIndex() > -1) { |
196 |
if (dropDown.getSelectionIndex() > -1) { |
180 |
String sel = attributeCombo.getItem(attributeCombo.getSelectionIndex()); |
197 |
String sel = dropDown.getItem(dropDown.getSelectionIndex()); |
181 |
cfattribute.setValue(sel); |
198 |
cfattribute.setValue(sel); |
182 |
attributeChanged(cfattribute); |
199 |
attributeChanged(cfattribute); |
183 |
attributeCombo.clearSelection(); |
200 |
dropDown.clearSelection(); |
184 |
} |
201 |
} |
185 |
} |
202 |
} |
186 |
}); |
203 |
}); |
187 |
} else { |
204 |
break; |
188 |
Text cfField = createTextField(composite, cfattribute, SWT.FLAT); |
205 |
case 3: // Multiple-Selection Box |
189 |
GridDataFactory.fillDefaults().hint(135, SWT.DEFAULT).applyTo(cfField); |
206 |
final org.eclipse.swt.widgets.List multiSelect; |
|
|
207 |
List<String> multiSelectOptionList = bugzillaCustomField.getOptions(); |
208 |
multiSelect = new org.eclipse.swt.widgets.List(composite, SWT.MULTI | SWT.V_SCROLL);// SWT.BORDER |
209 |
multiSelect.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); |
210 |
multiSelect.setFont(TEXT_FONT); |
211 |
GridData multiSelectData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
212 |
multiSelectData.horizontalSpan = 1; |
213 |
multiSelectData.heightHint = 95; |
214 |
multiSelect.setLayoutData(multiSelectData); |
215 |
if (hasChanged(cfattribute)) { |
216 |
multiSelect.setBackground(getColorIncoming()); |
217 |
} |
218 |
if (multiSelectOptionList != null) { |
219 |
for (String cc : multiSelectOptionList) { |
220 |
multiSelect.add(cc); |
221 |
} |
222 |
} |
223 |
java.util.List<String> multiSelectValues = cfattribute.getValues(); |
224 |
if (multiSelectValues != null) { |
225 |
for (String item : multiSelectValues) { |
226 |
int i = multiSelect.indexOf(item); |
227 |
if (i != -1) { |
228 |
multiSelect.select(i); |
229 |
} |
230 |
} |
231 |
} |
232 |
|
233 |
multiSelect.addSelectionListener(new SelectionListener() { |
234 |
|
235 |
public void widgetSelected(SelectionEvent e) { |
236 |
for (String selected : multiSelect.getItems()) { |
237 |
int index = multiSelect.indexOf(selected); |
238 |
if (multiSelect.isSelected(index)) { |
239 |
List<String> remove = cfattribute.getValues(); |
240 |
if (!remove.contains(selected)) { |
241 |
cfattribute.addValue(selected); |
242 |
} |
243 |
} else { |
244 |
cfattribute.removeValue(selected); |
245 |
} |
246 |
} |
247 |
attributeChanged(cfattribute); |
248 |
} |
249 |
|
250 |
public void widgetDefaultSelected(SelectionEvent e) { |
251 |
} |
252 |
}); |
253 |
GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(label); |
254 |
break; |
255 |
case 4: // Large Text Box |
256 |
Text largeText = createTextField(composite, cfattribute, SWT.FLAT); |
257 |
GridData largeTextData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
258 |
largeTextData.horizontalSpan = 1; |
259 |
largeTextData.heightHint = 95; |
260 |
largeText.setLayoutData(largeTextData); |
261 |
break; |
262 |
case 5: // Date/Time |
263 |
Composite dateWithClear = toolkit.createComposite(composite); |
264 |
GridLayout layout = new GridLayout(2, false); |
265 |
layout.marginWidth = 1; |
266 |
dateWithClear.setLayout(layout); |
267 |
|
268 |
final DatePicker dateTimePicker = new DatePicker(dateWithClear, /* SWT.NONE */SWT.BORDER, |
269 |
cfattribute.getValue(), true); |
270 |
dateTimePicker.setFont(TEXT_FONT); |
271 |
dateTimePicker.setDatePattern("yyyy-MM-dd hh:mm:ss"); |
272 |
if (hasChanged(attribute)) { |
273 |
dateTimePicker.setBackground(getColorIncoming()); |
274 |
} |
275 |
dateTimePicker.addPickerSelectionListener(new SelectionListener() { |
276 |
|
277 |
public void widgetDefaultSelected(SelectionEvent e) { |
278 |
// ignore |
279 |
} |
280 |
|
281 |
public void widgetSelected(SelectionEvent e) { |
282 |
Calendar cal = dateTimePicker.getDate(); |
283 |
if (cal != null) { |
284 |
Date d = cal.getTime(); |
285 |
SimpleDateFormat f = (SimpleDateFormat) SimpleDateFormat.getDateInstance(); |
286 |
f.applyPattern("yyyy-MM-dd hh:mm:ss"); |
287 |
|
288 |
cfattribute.setValue(f.format(d)); |
289 |
attributeChanged(cfattribute); |
290 |
// TODO goes dirty even if user presses cancel |
291 |
// markDirty(true); |
292 |
} else { |
293 |
cfattribute.setValue(""); |
294 |
attributeChanged(cfattribute); |
295 |
dateTimePicker.setDate(null); |
296 |
} |
297 |
} |
298 |
}); |
299 |
|
300 |
ImageHyperlink clearDeadlineDate = toolkit.createImageHyperlink(dateWithClear, SWT.NONE); |
301 |
clearDeadlineDate.setImage(TasksUiImages.getImage(TasksUiImages.REMOVE)); |
302 |
clearDeadlineDate.setToolTipText("Clear"); |
303 |
clearDeadlineDate.addHyperlinkListener(new HyperlinkAdapter() { |
304 |
|
305 |
@Override |
306 |
public void linkActivated(HyperlinkEvent e) { |
307 |
cfattribute.setValue(""); |
308 |
attributeChanged(cfattribute); |
309 |
dateTimePicker.setDate(null); |
310 |
} |
311 |
}); |
312 |
|
313 |
break; |
314 |
default: |
315 |
List<String> optionListDefault = bugzillaCustomField.getOptions(); |
316 |
if (optionListDefault != null && !optionListDefault.isEmpty()) { |
317 |
GridData dropDownDefaultData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
318 |
dropDownDefaultData.horizontalSpan = 1; |
319 |
final CCombo dropDownDefault = new CCombo(composite, SWT.FLAT | SWT.READ_ONLY); |
320 |
getManagedForm().getToolkit().adapt(dropDownDefault, true, true); |
321 |
dropDownDefault.setFont(TEXT_FONT); |
322 |
dropDownDefault.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); |
323 |
if (hasChanged(cfattribute)) { |
324 |
dropDownDefault.setBackground(getColorIncoming()); |
325 |
} |
326 |
dropDownDefault.setLayoutData(dropDownDefaultData); |
327 |
|
328 |
for (String valDefault : optionListDefault) { |
329 |
if (valDefault != null) { |
330 |
dropDownDefault.add(valDefault); |
331 |
} |
332 |
} |
333 |
String dropDownValue = cfattribute.getValue(); |
334 |
if (dropDownValue == null) { |
335 |
dropDownValue = ""; |
336 |
} |
337 |
if (dropDownDefault.indexOf(dropDownValue) != -1) { |
338 |
dropDownDefault.select(dropDownDefault.indexOf(dropDownValue)); |
339 |
} |
340 |
dropDownDefault.clearSelection(); |
341 |
dropDownDefault.addSelectionListener(new SelectionAdapter() { |
342 |
@Override |
343 |
public void widgetSelected(SelectionEvent event) { |
344 |
if (dropDownDefault.getSelectionIndex() > -1) { |
345 |
String sel = dropDownDefault.getItem(dropDownDefault.getSelectionIndex()); |
346 |
cfattribute.setValue(sel); |
347 |
attributeChanged(cfattribute); |
348 |
dropDownDefault.clearSelection(); |
349 |
} |
350 |
} |
351 |
}); |
352 |
} else { |
353 |
Text freeTextDefault = createTextField(composite, cfattribute, SWT.FLAT); |
354 |
GridData freeTextDefaultData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); |
355 |
freeTextDefaultData.horizontalSpan = 1; |
356 |
freeTextDefaultData.verticalSpan = 1; |
357 |
if (hasChanged(cfattribute)) { |
358 |
freeTextDefault.setBackground(getColorIncoming()); |
359 |
} |
360 |
freeTextDefault.setLayoutData(freeTextDefaultData); |
361 |
} |
362 |
break; |
190 |
} |
363 |
} |
191 |
} |
364 |
} |
192 |
|
|
|
193 |
getManagedForm().getToolkit().paintBordersFor(composite); |
365 |
getManagedForm().getToolkit().paintBordersFor(composite); |
194 |
} |
366 |
} |
195 |
} |
367 |
} |
Lines 197-211
Link Here
|
197 |
// ignore |
369 |
// ignore |
198 |
} |
370 |
} |
199 |
|
371 |
|
|
|
372 |
if (customFieldsAnz % 2 == 1) { |
373 |
@SuppressWarnings("unused") |
374 |
Label label = new Label(composite, SWT.None); |
375 |
label = new Label(composite, SWT.None); |
376 |
} |
377 |
|
200 |
attribute = this.taskData.getAttribute(BugzillaReportElement.DEPENDSON.getKeyString()); |
378 |
attribute = this.taskData.getAttribute(BugzillaReportElement.DEPENDSON.getKeyString()); |
201 |
if (attribute != null && !attribute.isReadOnly()) { |
379 |
if (attribute != null && !attribute.isReadOnly()) { |
202 |
Label label = createLabel(composite, attribute); |
380 |
Label label = createLabel(composite, attribute); |
203 |
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(label); |
381 |
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(label); |
204 |
|
382 |
|
205 |
Composite textFieldComposite = getManagedForm().getToolkit().createComposite(composite); |
383 |
Composite textFieldComposite = getManagedForm().getToolkit().createComposite(composite); |
206 |
GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).applyTo(textFieldComposite); |
384 |
GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).applyTo(textFieldComposite); |
207 |
GridLayoutFactory.swtDefaults().margins(1, 3).spacing(0, 3).applyTo(textFieldComposite); |
385 |
GridLayoutFactory.swtDefaults().margins(1, 3).spacing(0, 3).applyTo(textFieldComposite); |
208 |
|
386 |
|
209 |
GridData textData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); |
387 |
GridData textData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); |
210 |
textData.horizontalSpan = 1; |
388 |
textData.horizontalSpan = 1; |
211 |
textData.widthHint = 135; |
389 |
textData.widthHint = 135; |
Lines 351-358
Link Here
|
351 |
for (String bugNumber : values.split(",")) { |
529 |
for (String bugNumber : values.split(",")) { |
352 |
final String bugId = bugNumber.trim(); |
530 |
final String bugId = bugNumber.trim(); |
353 |
final String bugUrl = repository.getRepositoryUrl() + IBugzillaConstants.URL_GET_SHOW_BUG + bugId; |
531 |
final String bugUrl = repository.getRepositoryUrl() + IBugzillaConstants.URL_GET_SHOW_BUG + bugId; |
354 |
final AbstractTask task = TasksUi.getTaskListManager().getTaskList().getTask(repository.getRepositoryUrl(), |
532 |
final AbstractTask task = TasksUi.getTaskListManager().getTaskList().getTask( |
355 |
bugId); |
533 |
repository.getRepositoryUrl(), bugId); |
356 |
createTaskListHyperlink(hyperlinksComposite, bugId, bugUrl, task); |
534 |
createTaskListHyperlink(hyperlinksComposite, bugId, bugUrl, task); |
357 |
} |
535 |
} |
358 |
} |
536 |
} |
Lines 414-420
Link Here
|
414 |
operation = BUGZILLA_OPERATION.valueOf(repositoryOperation.getKnobName()); |
592 |
operation = BUGZILLA_OPERATION.valueOf(repositoryOperation.getKnobName()); |
415 |
} catch (RuntimeException e) { |
593 |
} catch (RuntimeException e) { |
416 |
// FIXME: ? |
594 |
// FIXME: ? |
417 |
StatusHandler.log(new Status(IStatus.INFO, BugzillaUiPlugin.PLUGIN_ID, "Unrecognized operation: " + repositoryOperation.getKnobName(), e)); |
595 |
StatusHandler.log(new Status(IStatus.INFO, BugzillaUiPlugin.PLUGIN_ID, "Unrecognized operation: " |
|
|
596 |
+ repositoryOperation.getKnobName(), e)); |
418 |
operation = null; |
597 |
operation = null; |
419 |
} |
598 |
} |
420 |
|
599 |
|
Lines 623-629
Link Here
|
623 |
|
802 |
|
624 |
List<String> validKeywords = new ArrayList<String>(); |
803 |
List<String> validKeywords = new ArrayList<String>(); |
625 |
try { |
804 |
try { |
626 |
validKeywords = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, new NullProgressMonitor()).getKeywords(); |
805 |
validKeywords = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, |
|
|
806 |
new NullProgressMonitor()).getKeywords(); |
627 |
} catch (Exception ex) { |
807 |
} catch (Exception ex) { |
628 |
// ignore |
808 |
// ignore |
629 |
} |
809 |
} |
Lines 672-678
Link Here
|
672 |
@Override |
852 |
@Override |
673 |
public void linkActivated(HyperlinkEvent e) { |
853 |
public void linkActivated(HyperlinkEvent e) { |
674 |
if (BugzillaTaskEditor.this.getEditor() instanceof TaskEditor) { |
854 |
if (BugzillaTaskEditor.this.getEditor() instanceof TaskEditor) { |
675 |
TasksUiUtil.openUrl(repository.getRepositoryUrl() + IBugzillaConstants.URL_SHOW_VOTES + taskData.getTaskId()); |
855 |
TasksUiUtil.openUrl(repository.getRepositoryUrl() + IBugzillaConstants.URL_SHOW_VOTES |
|
|
856 |
+ taskData.getTaskId()); |
676 |
} |
857 |
} |
677 |
} |
858 |
} |
678 |
}); |
859 |
}); |
Lines 682-688
Link Here
|
682 |
@Override |
863 |
@Override |
683 |
public void linkActivated(HyperlinkEvent e) { |
864 |
public void linkActivated(HyperlinkEvent e) { |
684 |
if (BugzillaTaskEditor.this.getEditor() instanceof TaskEditor) { |
865 |
if (BugzillaTaskEditor.this.getEditor() instanceof TaskEditor) { |
685 |
TasksUiUtil.openUrl(repository.getRepositoryUrl() + IBugzillaConstants.URL_VOTE + taskData.getTaskId()); |
866 |
TasksUiUtil.openUrl(repository.getRepositoryUrl() + IBugzillaConstants.URL_VOTE |
|
|
867 |
+ taskData.getTaskId()); |
686 |
} |
868 |
} |
687 |
} |
869 |
} |
688 |
}); |
870 |
}); |
Lines 711-717
Link Here
|
711 |
if (assignedAttribute != null) { |
893 |
if (assignedAttribute != null) { |
712 |
String bugzillaVersion; |
894 |
String bugzillaVersion; |
713 |
try { |
895 |
try { |
714 |
bugzillaVersion = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, new NullProgressMonitor()).getInstallVersion(); |
896 |
bugzillaVersion = BugzillaCorePlugin.getRepositoryConfiguration(repository, false, |
|
|
897 |
new NullProgressMonitor()).getInstallVersion(); |
715 |
} catch (CoreException e1) { |
898 |
} catch (CoreException e1) { |
716 |
// ignore |
899 |
// ignore |
717 |
bugzillaVersion = "2.18"; |
900 |
bugzillaVersion = "2.18"; |
Lines 800-808
Link Here
|
800 |
if (haveRealName) { |
983 |
if (haveRealName) { |
801 |
textField.setText(textField.getText() + " <" |
984 |
textField.setText(textField.getText() + " <" |
802 |
+ taskData.getAttributeValue(BugzillaReportElement.QA_CONTACT.getKeyString()) + ">"); |
985 |
+ taskData.getAttributeValue(BugzillaReportElement.QA_CONTACT.getKeyString()) + ">"); |
803 |
} |
986 |
} |
804 |
} |
987 |
} |
805 |
|
988 |
|
806 |
super.addSelfToCC(composite); |
989 |
super.addSelfToCC(composite); |
807 |
|
990 |
|
808 |
} |
991 |
} |