button.setEnabled(false);
			public Control createControl(Composite parent) {						Display display= parent.getDisplay();				fBackgroundColor= display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);				fForegroundColor= display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);				fSeparatorColor= new Color(display, 152, 170, 203);						JFaceResources.getFontRegistry().addListener(this);						fScrolledComposite= new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);				fScrolledComposite.setAlwaysShowScrollBars(false);				fScrolledComposite.setExpandHorizontal(true);				fScrolledComposite.setExpandVertical(true);				fScrolledComposite.addDisposeListener(new DisposeListener() {					public void widgetDisposed(DisposeEvent e) {						JFaceResources.getFontRegistry().removeListener(SourceAttachmentForm.this);						fScrolledComposite= null;						fSeparatorColor.dispose();						fSeparatorColor= null;										fBannerLabels.clear();						fHeaderLabels.clear();					}				});						Composite composite= createComposite(fScrolledComposite);				composite.setLayout(new GridLayout());						Label titleLabel= createTitleLabel(composite, JavaEditorMessages.getString("SourceAttachmentForm.title")); //$NON-NLS-1$				createLabel(composite, null);				createLabel(composite, null);						createHeadingLabel(composite, JavaEditorMessages.getString("SourceAttachmentForm.heading")); //$NON-NLS-1$						Composite separator= createCompositeSeparator(composite);				GridData data= new GridData(GridData.FILL_HORIZONTAL);				data.heightHint= 2;				separator.setLayoutData(data);						final IPackageFragmentRoot root= getPackageFragmentRoot(fFile);						if (root != null) {										if (!root.isArchive()) {						createLabel(composite, JavaEditorMessages.getFormattedString("SourceAttachmentForm.message.noSource", fFile.getElementName())); //$NON-NLS-1$							} else {						try {							Button button;									IPath path= root.getSourceAttachmentPath();										if (path == null) {											createLabel(composite, JavaEditorMessages.getFormattedString("SourceAttachmentForm.message.noSourceAttachment", root.getElementName())); //$NON-NLS-1$								createLabel(composite, JavaEditorMessages.getString("SourceAttachmentForm.message.pressButtonToAttach")); //$NON-NLS-1$								createLabel(composite, null);										button= createButton(composite, JavaEditorMessages.getString("SourceAttachmentForm.button.attachSource"));		 //$NON-NLS-1$									} else {								createLabel(composite, JavaEditorMessages.getFormattedString("SourceAttachmentForm.message.noSourceInAttachment", fFile.getElementName())); //$NON-NLS-1$								createLabel(composite, JavaEditorMessages.getString("SourceAttachmentForm.message.pressButtonToChange")); //$NON-NLS-1$								createLabel(composite, null);										button= createButton(composite, JavaEditorMessages.getString("SourceAttachmentForm.button.changeAttachedSource")); //$NON-NLS-1$							}									button.setEnabled(false); // XXX depending on 15423							button.addSelectionListener(new SelectionListener() {								public void widgetSelected(SelectionEvent event) {													try {										SourceAttachmentDialog dialog= new SourceAttachmentDialog(fScrolledComposite.getShell(), root);										if (dialog.open() == SourceAttachmentDialog.OK)											verifyInput(getEditorInput());											} catch (CoreException e) {										String title= JavaEditorMessages.getString("SourceAttachmentForm.error.title"); //$NON-NLS-1$										String message= JavaEditorMessages.getString("SourceAttachmentForm.error.message"); //$NON-NLS-1$										ExceptionHandler.handle(e, fScrolledComposite.getShell(), title, message);													}								}										public void widgetDefaultSelected(SelectionEvent e) {}							});								} catch (JavaModelException e) {							String title= JavaEditorMessages.getString("SourceAttachmentForm.error.title"); //$NON-NLS-1$							String message= JavaEditorMessages.getString("SourceAttachmentForm.error.message"); //$NON-NLS-1$							ExceptionHandler.handle(e, fScrolledComposite.getShell(), title, message);										}					}				}						fScrolledComposite.setContent(composite);				fScrolledComposite.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));								return fScrolledComposite;			}