Bug 207188 [Dialogs] org.eclipse.jface.dialogs.Dialog.shortenText calls GC.textExtent too often
bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java
public static void applyDialogFont(Control control) {
		if (control == null || dialogFontIsDefault()) {
			return;
		}
		Font dialogFont = JFaceResources.getDialogFont();
		applyDialogFont(control, dialogFont);
	}
	/**
	 * Sets the dialog font on the control and any of its children if thier font
	 * is not otherwise set.
	 * 
	 * @param control
	 *            the control to apply the font to. Font will also be applied to
	 *            its children.
	 * @param dialogFont
	 *            the dialog font to set
	 */
	private static void applyDialogFont(Control control, Font dialogFont) {
		if (hasDefaultFont(control)) {
			control.setFont(dialogFont);
		}
		if (control instanceof Composite) {
			Control[] children = ((Composite) control).getChildren();
			for (int i = 0; i < children.length; i++) {
				applyDialogFont(children[i], dialogFont);
			}
		}
	}
	/**
	 * Return whether or not this control has the same font as it's default.