Bug 37155 [Preferences] StringButtonFieldEditor should disable button when disabled.
setEnabled() should not only enable/disable the text string, it should also enable/disable the button, or should provide the capability for enabling/disabling the button separately. This problem is most evident when using a DirectoryFieldEditor. After disabling it, the user can still press on the "Browse..." button.
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringButtonFieldEditor.java
gd.widthHint = Math.max(widthHint, changeButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
	changeButton.setLayoutData(gd);
}
/* (non-Javadoc)
 * Method declared on FieldEditor.
 */
protected Button getChangeControl(Composite parent) {
	if (changeButton == null) {
		changeButton = new Button(parent, SWT.PUSH);
		if (changeButtonText == null)
			changeButtonText = JFaceResources.getString("openChange");
		changeButton.setText(changeButtonText);
		changeButton.setFont(parent.getFont());
		changeButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent evt) {
				String newValue = changePressed();
				if (newValue != null) {
					setStringValue(newValue);
				}
			}
		});
		changeButton.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent event) {
				changeButton = null;
			}
		});
	} else {
		checkParent(changeButton, parent);
	}
	return changeButton;