Bug 77636 Code Formatter Profile Editor should be more fault-tolerant [formatter]
200411022000 The Code Formatter Profile Editor should be more fault-tolerant. Especially on 'White Space' and 'Line Wrapping' tabs, it is very easy to mess things up by changing many settings at once with a single click at the wrong spot. Two possible solutions came to my mind: (1) The dialog could support an undo/redo-stack (via keybindings and/or via additional buttons on the bottom row) (2) The dialog could offer an 'Apply' button, with which the user could save the changes done so far. The current workaround for this is to leave the dialog via OK and then re-enter it, but that's cumbersome when you want to do a pass over all options.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ModifyDialogTabPage.java
* Create the right side of the modify dialog. By default, the preview is displayed there.
	 * Subclasses can override this method in order to customize the right-hand side of the 
	 * dialog.
	 * @param composite Composite to create in
	 * @param numColumns Number of columns to use
	 * @return Created composite
	 */
	protected Composite doCreatePreviewPane(Composite composite, int numColumns) {
		
		createLabel(numColumns, composite, FormatterMessages.getString("ModifyDialogTabPage.preview.label.text"));  
		
		final JavaPreview preview= doCreateJavaPreview(composite);
		fDefaultFocusManager.add(preview.getControl());
		
		final GridData gd= createGridData(numColumns, GridData.FILL_BOTH, 0);
		gd.widthHint= 0;
		gd.heightHint=0;
		preview.getControl().setLayoutData(gd);
		
		return composite;
	}
	/**
	 * To be implemented by subclasses. This method should return an instance of JavaPreview.
	 * Currently, the choice is between CompilationUnitPreview which contains a valid compilation
	 * unit, or a SnippetPreview which formats several independent code snippets and displays them 
	 * in the same window.
	 * @param parent Parent composite
	 * @return Created preview
	 */
	protected abstract JavaPreview doCreateJavaPreview(Composite parent);