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
/**
	 * The color selector, or <code>null</code> if none.
	 */
	private ColorSelector colorSelector;
	/**
	 * Creates a new color field editor
	 */
	protected ColorFieldEditor() {
		
	}
	/**
	 * Creates a color field editor.
	 * 
	 * @param name
	 *            the name of the preference this field editor works on
	 * @param labelText
	 *            the label text of the field editor
	 * @param parent
	 *            the parent of the field editor's control
	 */
	public ColorFieldEditor(String name, String labelText, Composite parent) {
		super(name, labelText, parent);
	}
	/*
	 * (non-Javadoc) Method declared on FieldEditor.