Bug 544503: Added font to ControlFactory

Change-Id: Ib9b591ac2df3701512f8ee93c3c48a863b3e9ad0
Signed-off-by: Marcus Hoepfner <marcus.hoepfner@sap.com>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/widgets/ControlFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/widgets/ControlFactory.java
index 1d41f72..78df81017 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/widgets/ControlFactory.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/widgets/ControlFactory.java
@@ -19,6 +19,7 @@
 import java.util.function.Function;
 import java.util.function.Supplier;
 
+import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -97,6 +98,18 @@
 	}
 
 	/**
+	 * Sets the font.
+	 * 
+	 * @param font
+	 *
+	 * @return this
+	 */
+	public F font(Font font) {
+		addProperty(c -> c.setFont(font));
+		return cast(this);
+	}
+
+	/**
 	 * Casts to the concrete instance of factory class. Needs to be called by
 	 * abstract factory classes.
 	 *
diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/widgets/TestUnitControlFactory.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/widgets/TestUnitControlFactory.java
index 500f2be..3133387 100644
--- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/widgets/TestUnitControlFactory.java
+++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/widgets/TestUnitControlFactory.java
@@ -23,6 +23,8 @@
 
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Label;
 import org.junit.Test;
@@ -54,12 +56,19 @@
 
 	@Test
 	public void createsControlWithProperties() {
-		Label label = TestFactory.newTest().tooltip("toolTip").enabled(false).layoutData(() -> new GridData())
+		Font font = new Font(null, new FontData());
+
+		Label label = TestFactory.newTest() //
+				.tooltip("toolTip") //
+				.enabled(false) //
+				.layoutData(GridData::new) //
+				.font(font) //
 				.create(shell);
 
 		assertFalse(label.getEnabled());
 		assertEquals("toolTip", label.getToolTipText());
 		assertTrue(label.getLayoutData() instanceof GridData);
+		assertEquals(font, label.getFont());
 	}
 
 	@Test