From 0e693fd4814572712a4192cb4f176e71f7a344f7 Mon Sep 17 00:00:00 2001 From: j-james Date: Wed, 21 Dec 2022 17:36:49 -0800 Subject: Implement the basics of a recursive layout renderer --- src/main/model/layout/InlineLayout.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/main/model/layout/InlineLayout.java') diff --git a/src/main/model/layout/InlineLayout.java b/src/main/model/layout/InlineLayout.java index 2de69d6..8e375d5 100644 --- a/src/main/model/layout/InlineLayout.java +++ b/src/main/model/layout/InlineLayout.java @@ -1,6 +1,8 @@ package model.layout; +import model.html.ElementNode; import model.html.Node; +import model.html.TextNode; import java.awt.*; @@ -25,12 +27,26 @@ public class InlineLayout extends Layout { this.setWidth(this.getParent().getWidth()); this.setCursor(this.getX(), this.getY()); + Node node = this.getAssociatedNode(); + if (node instanceof TextNode) { + if (node.getData().length() > 5) { + this.setHeight(20); +// this.setWidth(this.getWidth() + node.getData().length()); + } + } else if (node instanceof ElementNode) { + if (((ElementNode) node).getTag().equals("a")) { + this.setX(this.getX() + this.getParent().getWidth()); + } + } + for (Layout child : this.getChildren()) { child.layout(); + this.setHeight(this.getHeight() + child.getHeight()); // fixme } // todo: recurse to calculate cursor - this.setHeight(cursor.getY() - this.getY()); +// this.setHeight(cursor.getY() - this.getY()); +// System.out.println(this.getAssociatedNode().getData() + this.getLocation()); } public void setCursor(Point cursor) { -- cgit v1.2.3-70-g09d2