From 0fb93be7a4a930986815e57af052cb1252c5e244 Mon Sep 17 00:00:00 2001 From: Marcus Fihlon Date: Sun, 31 Mar 2024 15:32:59 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor=20UI=20creation?= =?UTF-8?q?=20for=20better=20maintainability?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fihlon/apus/ui/view/MessageView.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java b/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java index 813d3e8..3ab58a8 100644 --- a/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java +++ b/src/main/java/swiss/fihlon/apus/ui/view/MessageView.java @@ -37,14 +37,17 @@ public final class MessageView extends Div { public MessageView(@NotNull final Message message) { addClassName("message-view"); + add(createTextComponent(message)); + add(createImageComponents(message)); + add(createDateTimeComponent(message)); + } + + @NotNull + private Component createTextComponent(@NotNull final Message message) { final String messageText = Jsoup.parse(message.html()).text(); - add(new Html(String.format("
%s
", + return new Html(String.format("
%s
", messageText.length() > MAX_LENGTH ? truncateMessageText(messageText) : message.html() - ))); - for (final String image : message.images()) { - add(new Image(image, image)); - } - add(createDateTimeComponent(message)); + )); } @NotNull @@ -52,6 +55,13 @@ private String truncateMessageText(@NotNull final String messageText) { return "

" + messageText.substring(0, MAX_LENGTH) + TRUNC_INDICATOR + "

"; } + @NotNull + private Component[] createImageComponents(@NotNull final Message message) { + return message.images().stream() + .map(image -> new Image(image, image)) + .toArray(Image[]::new); + } + @NotNull private Component createDateTimeComponent(@NotNull final Message message) { final var dateTimeComponent = new Div();