From f2ac22841026f18a3daee3f60498bcd46a2a6699 Mon Sep 17 00:00:00 2001 From: Osiris Team Date: Wed, 7 Aug 2024 12:33:37 +0200 Subject: [PATCH] fix textarea default value not set --- src/main/java/com/osiris/desku/ui/display/Text.java | 8 ++++---- src/main/java/com/osiris/desku/ui/input/TextArea.java | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/osiris/desku/ui/display/Text.java b/src/main/java/com/osiris/desku/ui/display/Text.java index 6cd7ae8..1f9aced 100644 --- a/src/main/java/com/osiris/desku/ui/display/Text.java +++ b/src/main/java/com/osiris/desku/ui/display/Text.java @@ -20,21 +20,21 @@ public Text(String s) { super(s, String.class, "txt"); setValue(s); // Attach Java event listeners - UI win = UI.get(); + UI ui = UI.get(); Runnable registration = () -> { _onValueAppended.addAction((childString) -> { - win.executeJavaScriptSafely(win.jsGetComp("comp", id) + + ui.executeJavaScriptSafely(ui.jsGetComp("comp", id) + "var childString = document.createTextNode(`" + childString + "`);\n" + "comp.appendChild(childString);\n", "internal", 0); }); _onEmptyValue.addAction((_void) -> { - win.executeJavaScriptSafely(win.jsGetComp("comp", id) + + ui.executeJavaScriptSafely(ui.jsGetComp("comp", id) + "comp.textContent = '';\n", // remove all text nodes "internal", 0); }); }; - win.runIfReadyOrLater(registration); + ui.runIfReadyOrLater(registration); } public Text setValue(String v) { diff --git a/src/main/java/com/osiris/desku/ui/input/TextArea.java b/src/main/java/com/osiris/desku/ui/input/TextArea.java index ed60e35..13bb004 100644 --- a/src/main/java/com/osiris/desku/ui/input/TextArea.java +++ b/src/main/java/com/osiris/desku/ui/input/TextArea.java @@ -25,7 +25,7 @@ public TextArea(String label, String defaultValue) { this(new Text(label).sizeS(), defaultValue); } - public TextArea(Text label, String defaultValue) { // TODO defaultValue is not visible in UI + public TextArea(Text label, String defaultValue) { super(defaultValue, String.class); addClass("input-group"); this.label = label; @@ -33,10 +33,12 @@ public TextArea(Text label, String defaultValue) { // TODO defaultValue is not v this.input = new Input<>("textarea", defaultValue, String.class, "textarea"); add(this.label, this.input); childVertical(); + setValue(defaultValue); } public TextArea setValue(String v) { input.setValue(v); + input.executeJS("comp.textContent = `"+ValueChangeEvent.escapeString(v)+"`;\n"); return this; }