Bug 17885 Preference Pages don't resize well
Build: 20020521 The Java preference pages don't look very good when the user makes the preference page dialog narrower or shorter by manually resizing it. Here is a breakdown of problems by page: Builder: "Filtered resources" text field should shrink to fit the dialog width more. Classpath Variables: List box should shrink to fit and should scroll if necessary. Code Formatter: Text box should shrink to fit and should scroll if necessary (the scroll bars are there, why aren't they used?). Step Filtering: List box should shrink horizontally to fit and should scroll if necessary (compare vertical and horizontal behaviour when shrinking the preference page dialog). Editor: In the Syntax tab page, the "Preview" text box should shrink to fit and scroll if necessary. Installed JREs: The table viewer should shrink to fit and scroll if necessary. Javadoc: The "Javadoc command" text field should shrink to fit more. Organize Imports: The list box should shrink to fit and scroll if necessary. Templates: The table viewer should shrink to fit and scroll if necessary.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaEditorPreferencePage.java
private ColorEditor fAppearanceForegroundColorEditor;
	private ColorEditor fBackgroundColorEditor;
	private Button fBackgroundDefaultRadioButton;
	private Button fBackgroundCustomRadioButton;
	private Button fBackgroundColorButton;
	private Button fBoldCheckBox;
	private SourceViewer fPreviewViewer;
	private Color fBackgroundColor;
    private Control fAutoInsertDelayText;
    private Control fAutoInsertJavaTriggerText;
    private Control fAutoInsertJavaDocTriggerText;
	
	public JavaEditorPreferencePage() {
		setDescription(JavaUIMessages.getString("JavaEditorPreferencePage.description")); 
		setPreferenceStore(JavaPlugin.getDefault().getPreferenceStore());
		fOverlayStore= new OverlayPreferenceStore(getPreferenceStore(), fKeys);
	}
	
	public static void initDefaults(IPreferenceStore store) {
		
		/* 
		 * Ensure that the display is accessed only in the UI thread.
		 * Ensure that there are no side effects of switching the thread.
		 */
		final RGB[] rgbs= new RGB[3];
		final Display display= Display.getDefault();
		display.syncExec(new Runnable() {
			public void run() {
				Color c= display.getSystemColor(SWT.COLOR_GRAY);
				rgbs[0]= c.getRGB();