Bug 45033 Usability: Code Formatter Preferences Page Resizes Poorly
Eclipse 3.0 M4 This is just a single example of a common UI problem that exists in a wide variety of places in Eclipse, not just JDT. If you're going to allow a dialog/window to be resized (which I think you should), then some careful thought needs to go into how the widgets resize. Look at the preferences page for the JDT's Code Formatter and you'll see that when the dialog is resized the (really useful) preview text widget does not stretch and consume the remaining whitespace. Take a look at the screen shot of the dialog in various sizes to see what I mean.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/LineWrappingTabPage.java
DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
	    "class Example {int [] fArray= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};}", 
	    FormatterMessages.getString("LineWrappingTabPage.array_init") 
	);
	
	private final Category fExplicitConstructorArgumentsCategory= new Category(
	    DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_EXPLICIT_CONSTRUCTOR_CALL,
	    "class Example extends AnotherClass {Example() {super(100, 200, 300, 400, 500, 600, 700);}}", 
	    FormatterMessages.getString("LineWrappingTabPage.explicit_constructor_invocations") 
	);
	private final Category fConditionalExpressionCategory= new Category(
	    DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION,
	    "class Example extends AnotherClass {int Example(boolean Argument) {return argument ? 100000 : 200000;}}", 
	    FormatterMessages.getString("LineWrappingTabPage.conditionals") 
	);
	private final Category fBinaryExpressionCategory= new Category(
	    DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
	    "class Example extends AnotherClass {" + 
	    "int foo() {" + 
	    "  int sum= 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800;" + 
	    "  int product= 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10;" + 
	    "  boolean val= true && false && true && false && true;" +  
	    "  return product / sum;}}", 
	    FormatterMessages.getString("LineWrappingTabPage.binary_exprs") 
	);
	
	private final Category fEnumConstArgumentsCategory= new Category(
	    DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ENUM_CONSTANT,
	    "enum Example {" + 
	    "CANCELLED, RUNNING, WAITING, FINISHED }",