From a2d7d044d9add9f0c381fdd8821902e08b46e1ad Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 30 Nov 2024 12:13:49 +0000 Subject: Convert checkbox document elements to HTML checkboxes --- .../mammoth/internal/conversion/DocumentToHtml.java | 12 ++++++++++++ .../zwobble/mammoth/internal/documents/Checkbox.java | 18 ++++++++++++++++++ .../internal/documents/DocumentElementVisitor.java | 1 + 3 files changed, 31 insertions(+) create mode 100644 src/main/java/org/zwobble/mammoth/internal/documents/Checkbox.java (limited to 'src/main') diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java index 80f807e..7618db7 100644 --- a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java +++ b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java @@ -298,6 +298,18 @@ public class DocumentToHtml { } } + @Override + public List visit(Checkbox checkbox, Context context) { + Map attributes = new HashMap<>(); + attributes.put("type", "checkbox"); + + if (checkbox.checked()) { + attributes.put("checked", "checked"); + } + + return list(Html.element("input", attributes)); + } + @Override public List visit(Bookmark bookmark, Context context) { return list(Html.element("a", map("id", generateId(bookmark.getName())), list(Html.FORCE_WRITE))); diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Checkbox.java b/src/main/java/org/zwobble/mammoth/internal/documents/Checkbox.java new file mode 100644 index 0000000..62e2944 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Checkbox.java @@ -0,0 +1,18 @@ +package org.zwobble.mammoth.internal.documents; + +public class Checkbox implements DocumentElement { + private final boolean checked; + + public Checkbox(boolean checked) { + this.checked = checked; + } + + public boolean checked() { + return this.checked; + } + + @Override + public T accept(DocumentElementVisitor visitor, U context) { + return visitor.visit(this, context); + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java b/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java index 908a9b7..ea67113 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/DocumentElementVisitor.java @@ -13,6 +13,7 @@ public interface DocumentElementVisitor { T visit(TableCell tableCell, U context); T visit(Hyperlink hyperlink, U context); + T visit(Checkbox checkbox, U context); T visit(Bookmark bookmark, U context); T visit(NoteReference noteReference, U context); T visit(CommentReference commentReference, U context); -- cgit v1.2.3