add support for color to Square

Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestInlineContainer.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestInlineContainer.java
index 28e8035..8c16167 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestInlineContainer.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestInlineContainer.java
@@ -16,6 +16,7 @@
 
 import java.util.Iterator;
 
+import org.eclipse.vex.core.internal.core.Color;
 import org.eclipse.vex.core.internal.core.FontSpec;
 import org.eclipse.vex.core.internal.layout.FakeGraphics;
 import org.junit.Before;
@@ -192,6 +193,7 @@
 	private static Square square(final int size) {
 		final Square square = new Square();
 		square.setSize(size);
+		square.setColor(Color.BLACK);
 		return square;
 	}
 
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestLineArrangement.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestLineArrangement.java
index d180a3d..1b774f0 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestLineArrangement.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/boxes/TestLineArrangement.java
@@ -17,6 +17,7 @@
 import java.util.Arrays;
 import java.util.List;
 
+import org.eclipse.vex.core.internal.core.Color;
 import org.eclipse.vex.core.internal.core.FontSpec;
 import org.eclipse.vex.core.internal.core.TextAlign;
 import org.eclipse.vex.core.internal.layout.FakeGraphics;
@@ -158,6 +159,7 @@
 	private static Square square(final int size) {
 		final Square square = new Square();
 		square.setSize(size);
+		square.setColor(Color.BLACK);
 		return square;
 	}
 }
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/BoxFactory.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/BoxFactory.java
index f26ce0b..fd2d8e4 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/BoxFactory.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/BoxFactory.java
@@ -163,9 +163,10 @@
 		return staticText;
 	}
 
-	public static Square square(final int size) {
+	public static Square square(final int size, final Color color) {
 		final Square square = new Square();
 		square.setSize(size);
+		square.setColor(color);
 		return square;
 	}
 
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/Square.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/Square.java
index 812e093..61de003 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/Square.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/boxes/Square.java
@@ -11,7 +11,6 @@
 package org.eclipse.vex.core.internal.boxes;
 
 import org.eclipse.vex.core.internal.core.Color;
-import org.eclipse.vex.core.internal.core.ColorResource;
 import org.eclipse.vex.core.internal.core.Graphics;
 
 /**
@@ -20,6 +19,7 @@
 public class Square extends SimpleInlineBox {
 
 	private int size;
+	private Color color;
 
 	@Override
 	public int getWidth() {
@@ -40,6 +40,10 @@
 		this.size = size;
 	}
 
+	public void setColor(final Color color) {
+		this.color = color;
+	}
+
 	@Override
 	public void accept(final IBoxVisitor visitor) {
 		visitor.visit(this);
@@ -63,9 +67,7 @@
 
 	@Override
 	public void paint(final Graphics graphics) {
-		final ColorResource colorResource = graphics.getColor(Color.BLACK); // TODO store square color
-		graphics.setColor(colorResource);
-
+		graphics.setColor(graphics.getColor(color));
 		graphics.fillRect(0, 0, size, size);
 	}
 }
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBoxFactory.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBoxFactory.java
index 38079ba..c74924e 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBoxFactory.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBoxFactory.java
@@ -21,6 +21,7 @@
 import org.eclipse.vex.core.internal.boxes.NodeTag;
 import org.eclipse.vex.core.internal.boxes.Padding;
 import org.eclipse.vex.core.internal.boxes.Paragraph;
+import org.eclipse.vex.core.internal.boxes.Square;
 import org.eclipse.vex.core.internal.boxes.StaticText;
 import org.eclipse.vex.core.internal.boxes.StructuralFrame;
 import org.eclipse.vex.core.internal.boxes.TextContent;
@@ -99,6 +100,13 @@
 		return staticText;
 	}
 
+	public static Square square(final int size, final Styles styles) {
+		final Square square = new Square();
+		square.setSize(size);
+		square.setColor(styles.getColor());
+		return square;
+	}
+
 	public static NodeTag nodeTag(final INode node, final Styles styles) {
 		final NodeTag nodeTag = new NodeTag();
 		nodeTag.setNode(node);