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
*/