Bug 176873 [Preferences] ColorFieldEditor should not set button size to IDialogConstants.BUTTON_WIDTH
The ColorFieldEditor shouldn't adjust the size of the button that is created by ColorSelector. ColorFieldEditor#doFillIntoGrid(...) creates a ColorSelector and then increases the size of the button using IDialogConstants.BUTTON_WIDTH. This creates buttons that are oversized and unattractive. Worse, this means that Eclipse preference pages don't present a color selector with a consistent size. Pages which use the JFace API to create a ColorSelector directly get a button that's one size, while pages which use the ColorFieldEditor get something else. The current workaround allows us to use ColorFieldEditor without the undesirable missizing: new ColorFieldEditor(preference, label, parent) { protected void doFillIntoGrid(Composite parent, int numColumns) { super.doFillInfoGrid(parent, numColumns); getChangeControl(parent).setLayoutData(new GridData()); } }
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorFieldEditor.java
*/
	protected void doFillIntoGrid(Composite parent, int numColumns) {
		Control control = getLabelControl(parent);
		GridData gd = new GridData();
		gd.horizontalSpan = numColumns - 1;
		control.setLayoutData(gd);
		Button colorButton = getChangeControl(parent);
		gd = new GridData();
		int widthHint = convertHorizontalDLUsToPixels(colorButton,
				IDialogConstants.BUTTON_WIDTH);
		gd.widthHint = Math.max(widthHint, colorButton.computeSize(SWT.DEFAULT,
				SWT.DEFAULT, true).x);
		colorButton.setLayoutData(gd);
	}
	/*
	 * (non-Javadoc) Method declared on FieldEditor.
	 */
	protected void doLoad() {
		if (colorSelector == null) {
			return;
		}
		colorSelector.setColorValue(PreferenceConverter.getColor(
				getPreferenceStore(), getPreferenceName()));
	}
	/*
	 * (non-Javadoc) Method declared on FieldEditor.
	 */
	protected void doLoadDefault() {
		if (colorSelector == null) {
			return;