Bug 136244 [Dialogs] PopupDialog - API - overriding default colors should be simpler
PopupDialog has protected methods that allow you to dictate which controls in the dialog should have their foreground/background color set. However, it is not simple to override the colors themselves. The method applyColors is private, and in order to use applyForegroundColor(...), etc., you must override createContents to ensure that the subclasses' colors get set after the default colors. Instead, the method applyColors should either be made protected, or it should call protected methods that specify the foreground and background color, rather than assuming it is always the system info colors.
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
this.infoText = infoText;
		setBlockOnOpen(false);
		this.persistSize = persistSize;
		this.persistLocation = persistLocation;
		initializeWidgetState();
	}
	/**
	 * Constructs a new instance of <code>PopupDialog</code>.
	 * 
	 * @param parent
	 *            The parent shell.
	 * @param shellStyle
	 *            The shell style.
	 * @param takeFocusOnOpen
	 *            A boolean indicating whether focus should be taken by this
	 *            popup when it opens.
	 * @param persistBounds
	 *            A boolean indicating whether the bounds (size and location) of
	 *            the dialog should be persisted upon close of the dialog. The
	 *            bounds can only be persisted if the dialog settings for
	 *            persisting the bounds are also specified. If a menu action
	 *            will be provided that allows the user to control this feature,
	 *            then the last known value of the user's setting will be used
	 *            instead of this flag.
	 * @param showDialogMenu
	 *            A boolean indicating whether a menu for moving and resizing
	 *            the popup should be provided.
	 * @param showPersistActions
	 *            A boolean indicating whether actions allowing the user to
	 *            control the persisting of the dialog size and location should