From e4e972ea7b6e60fc383c31540c4629525b88f1b5 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Sun, 12 May 2024 11:02:11 +0200 Subject: [PATCH] Better renderChildren() api. --- .../groowt/view/web/AbstractWebViewComponent.java | 12 +++++++++++- .../main/java/groowt/view/web/WebViewComponent.java | 3 +++ .../view/web/compiler/AnonymousWebViewComponent.java | 11 +++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/web-views/src/main/java/groowt/view/web/AbstractWebViewComponent.java b/web-views/src/main/java/groowt/view/web/AbstractWebViewComponent.java index b098525..6be19bf 100644 --- a/web-views/src/main/java/groowt/view/web/AbstractWebViewComponent.java +++ b/web-views/src/main/java/groowt/view/web/AbstractWebViewComponent.java @@ -60,14 +60,24 @@ public abstract class AbstractWebViewComponent extends AbstractViewComponent imp this.children.addAll(children); } + @Override + public void renderChildren() { + this.renderChildren(this.getContext().getRenderContext().getWriter()); + } + @Override public void renderChildren(Writer to) { final ComponentWriter componentWriter = new DefaultComponentWriter(to); componentWriter.setComponentContext(this.getContext()); componentWriter.setRenderContext(this.getContext().getRenderContext()); + this.renderChildren(componentWriter); + } + + @Override + public void renderChildren(ComponentWriter to) { for (final var child : this.getChildren()) { try { - componentWriter.append(child); + to.append(child); } catch (Exception e) { throw new ChildRenderException(e); } diff --git a/web-views/src/main/java/groowt/view/web/WebViewComponent.java b/web-views/src/main/java/groowt/view/web/WebViewComponent.java index 6006240..8a4d82e 100644 --- a/web-views/src/main/java/groowt/view/web/WebViewComponent.java +++ b/web-views/src/main/java/groowt/view/web/WebViewComponent.java @@ -1,6 +1,7 @@ package groowt.view.web; import groowt.view.component.ViewComponent; +import groowt.view.component.runtime.ComponentWriter; import java.io.Writer; import java.util.List; @@ -10,6 +11,8 @@ public interface WebViewComponent extends ViewComponent { List getChildren(); boolean hasChildren(); void setChildren(List children); + void renderChildren(); void renderChildren(Writer to); + void renderChildren(ComponentWriter to); } diff --git a/web-views/src/main/java/groowt/view/web/compiler/AnonymousWebViewComponent.java b/web-views/src/main/java/groowt/view/web/compiler/AnonymousWebViewComponent.java index df8ad14..43198d1 100644 --- a/web-views/src/main/java/groowt/view/web/compiler/AnonymousWebViewComponent.java +++ b/web-views/src/main/java/groowt/view/web/compiler/AnonymousWebViewComponent.java @@ -1,6 +1,7 @@ package groowt.view.web.compiler; import groowt.view.component.context.ComponentContext; +import groowt.view.component.runtime.ComponentWriter; import groowt.view.web.WebViewComponent; import org.jetbrains.annotations.ApiStatus; @@ -40,9 +41,19 @@ public final class AnonymousWebViewComponent implements WebViewComponent { throw new UnsupportedOperationException(); } + @Override + public void renderChildren() { + throw new UnsupportedOperationException(); + } + @Override public void renderChildren(Writer to) { throw new UnsupportedOperationException(); } + @Override + public void renderChildren(ComponentWriter to) { + throw new UnsupportedOperationException(); + } + }