diff options
Diffstat (limited to 'src/main/model/layout/TextLayout.java')
-rw-r--r-- | src/main/model/layout/TextLayout.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/model/layout/TextLayout.java b/src/main/model/layout/TextLayout.java new file mode 100644 index 0000000..67a07a4 --- /dev/null +++ b/src/main/model/layout/TextLayout.java @@ -0,0 +1,21 @@ +package model.layout; + +import model.html.TextNode; + +public class TextLayout extends Layout { + + public TextLayout(TextNode node, Layout parent) { + super(node, parent); + } + + // recursively construct the layout tree + public void layout() { + this.location.x = this.previousSibling + .map(sibling -> sibling.location.x + sibling.dimension.width) + .orElseGet(() -> this.parent.location.x); + this.location.y = this.parent.location.y; + + this.dimension.height = TEXT_HEIGHT_CONSTANT; + this.dimension.width = this.associatedNode.data().length() * TEXT_WIDTH_CONSTANT; + } +} |