Better renderChildren() api.

This commit is contained in:
JesseBrault0709 2024-05-12 11:02:11 +02:00
parent 8953c57681
commit e4e972ea7b
3 changed files with 25 additions and 1 deletions

View File

@ -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);
}

View File

@ -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<Object> getChildren();
boolean hasChildren();
void setChildren(List<?> children);
void renderChildren();
void renderChildren(Writer to);
void renderChildren(ComponentWriter to);
}

View File

@ -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();
}
}