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
}
		colorSelector.setColorValue(PreferenceConverter.getDefaultColor(
				getPreferenceStore(), getPreferenceName()));
	}
	/*
	 * (non-Javadoc) Method declared on FieldEditor.
	 */
	protected void doStore() {
		PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(),
				colorSelector.getColorValue());
	}
	/**
	 * Get the color selector used by the receiver.
	 * 
	 * @return ColorSelector/
	 */
	public ColorSelector getColorSelector() {
		return colorSelector;
	}
	/**
	 * Returns the change button for this field editor.
	 * 
	 * @param parent
	 *            The control to create the button in if required.
	 * @return the change button
	 */
	protected Button getChangeControl(Composite parent) {
		if (colorSelector == null) {
			colorSelector = new ColorSelector(parent);
			colorSelector.addListener(new IPropertyChangeListener() {