recognize the root of a list

Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBasedBoxModelBuilder.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBasedBoxModelBuilder.java
index 9585b6c..662c71e 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBasedBoxModelBuilder.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/visualization/CssBasedBoxModelBuilder.java
@@ -135,7 +135,9 @@
 			public VisualizeResult visit(final IElement element) {
 				final Styles styles = styleSheet.getStyles(element);
 				final Collection<VisualizeResult> childrenResults = traverseChildren(element);
-				if (isDisplayedAsBlock(styles)) {
+				if (isListRoot(styles)) {
+					return new VisualizeResult(element, styles, childrenResults, visualizeAsList(element, styles, childrenResults));
+				} else if (isDisplayedAsBlock(styles)) {
 					return new VisualizeResult(element, styles, childrenResults, visualizeAsBlock(element, styles, childrenResults));
 				} else {
 					return new VisualizeResult(element, styles, childrenResults, visualizeInline(element, styles, childrenResults));
@@ -173,6 +175,11 @@
 		});
 	}
 
+	private static boolean isListRoot(final Styles styles) {
+		final String listStyleType = styles.getListStyleType();
+		return listStyleType != null && !CSS.NONE.equals(listStyleType);
+	}
+
 	private static boolean isDisplayedAsBlock(final Styles styles) {
 		// currently we can only render blocks or inline, hence everything that is not inline must be a block
 		return !isDisplayedInline(styles);
@@ -191,6 +198,14 @@
 	}
 
 	/*
+	 * Render as List
+	 */
+
+	private IStructuralBox visualizeAsList(final INode node, final Styles styles, final Collection<VisualizeResult> childrenResults) {
+		return visualizeAsBlock(node, styles, childrenResults);
+	}
+
+	/*
 	 * Render as Block
 	 */