diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-13 23:37:36 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-13 23:37:36 +0000 |
| commit | 45ced503abb4ad1916c4c655578a7b06a5636cd8 (patch) | |
| tree | 879ca3bccd6584abac0f862ea8eea86b93ca85dc /src | |
| parent | 5b3064e418078b8e49b76a1d77f5add60c44a4ee (diff) | |
Add vertical alignment property to Run
Diffstat (limited to 'src')
5 files changed, 29 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/Run.java b/src/main/java/org/zwobble/mammoth/documents/Run.java index d903546..c747d2e 100644 --- a/src/main/java/org/zwobble/mammoth/documents/Run.java +++ b/src/main/java/org/zwobble/mammoth/documents/Run.java @@ -8,6 +8,7 @@ public class Run implements DocumentElement, HasChildren { private final boolean isItalic; private final boolean isUnderline; private final boolean isStrikethrough; + private final VerticalAlignment verticalAlignment; private final Optional<Style> style; private final List<DocumentElement> children; @@ -16,6 +17,7 @@ public class Run implements DocumentElement, HasChildren { boolean isItalic, boolean isUnderline, boolean isStrikethrough, + VerticalAlignment verticalAlignment, Optional<Style> style, List<DocumentElement> children) { @@ -23,6 +25,7 @@ public class Run implements DocumentElement, HasChildren { this.isItalic = isItalic; this.isUnderline = isUnderline; this.isStrikethrough = isStrikethrough; + this.verticalAlignment = verticalAlignment; this.style = style; this.children = children; } @@ -43,6 +46,10 @@ public class Run implements DocumentElement, HasChildren { return isStrikethrough; } + public VerticalAlignment getVerticalAlignment() { + return verticalAlignment; + } + public Optional<Style> getStyle() { return style; } diff --git a/src/main/java/org/zwobble/mammoth/documents/VerticalAlignment.java b/src/main/java/org/zwobble/mammoth/documents/VerticalAlignment.java new file mode 100644 index 0000000..cb6cf93 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/documents/VerticalAlignment.java @@ -0,0 +1,7 @@ +package org.zwobble.mammoth.documents; + +public enum VerticalAlignment { + SUPERSCRIPT, + SUBSCRIPT, + BASELINE +} diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index 0d49809..2a1f693 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -135,6 +135,7 @@ public class BodyXmlReader { isItalic(properties), isUnderline(properties), isStrikethrough(properties), + readVerticalAlignment(properties), style, children)); } @@ -155,6 +156,10 @@ public class BodyXmlReader { return properties.hasChild("w:strike"); } + private VerticalAlignment readVerticalAlignment(XmlElementLike properties) { + return VerticalAlignment.BASELINE; + } + private Result<Optional<Style>> readRunStyle(XmlElementLike properties) { return readStyle(properties, "w:rStyle", "Run", styles::findCharacterStyleById); } diff --git a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java index 93d7f6a..890a68e 100644 --- a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java +++ b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java @@ -2,10 +2,7 @@ package org.zwobble.mammoth.tests.documents; import com.natpryce.makeiteasy.Instantiator; import com.natpryce.makeiteasy.Property; -import org.zwobble.mammoth.documents.DocumentElement; -import org.zwobble.mammoth.documents.HasChildren; -import org.zwobble.mammoth.documents.Paragraph; -import org.zwobble.mammoth.documents.Run; +import org.zwobble.mammoth.documents.*; import java.util.List; import java.util.Optional; @@ -28,6 +25,7 @@ public class DocumentElementMakers { false, false, false, + VerticalAlignment.BASELINE, Optional.empty(), propertyLookup.valueOf(CHILDREN, list())); } diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java index 5c4c40d..d06a6a4 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -257,7 +257,14 @@ public class BodyXmlTests { hasProperty("strikethrough", equalTo(true))); } - // TODO: vertical alignment + @Test + public void runHasBaselineVerticalAlignmentIfVerticalAlignmentElementIsNotPresent() { + XmlElement element = runXmlWithProperties(); + + assertThat( + readSuccess(a(bodyReader), element), + hasProperty("verticalAlignment", equalTo(VerticalAlignment.BASELINE))); + } @Test public void canReadTabElement() { |
