From ed81f5e4d208816c30e1f326013ad936dba94f81 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 23 Jun 2026 18:31:29 +0300 Subject: [PATCH 1/6] Add RichTextArea + CodeEditor visual editor API; dogfood CodeEditor in Playground Introduces two cross-platform native visual editors and proves the code editor in the Codename One Playground. Core (com.codename1.ui): - RichTextArea: WYSIWYG rich text / HTML editor (bold/italic/lists/links/colors/ headings, get/set HTML, change events, placeholder). - CodeEditor: IDE-style editor with syntax highlighting, line-number gutter, light/dark themes, bracket/quote auto-close, async code completion (CodeCompletionProvider/CodeCompletion) and diagnostics (CodeDiagnostic: squiggly underlines + gutter markers + tooltips). - AbstractEditorComponent: a semantic command/query/event channel with two interchangeable backends - a 100% cross-platform BrowserComponent fallback (works on every platform, native VKB + physical keyboard for free) and an optional native backend a port can supply (CodenameOneImplementation createNativeEditorPeer / editorPeerCommand / editorPeerQuery). CodeEditor also exposes setEngineURL(...) so an app can back it with a richer editor engine. Builders: detect com.codename1.ui.CodeEditor usage and gate optional CodeMirror bundling only when the API is used (AndroidGradleBuilder/IPhoneBuilder + CN1_USE_CODEMIRROR placeholder in the iOS header). Mirror to BuildDaemon copies is tracked separately (out of this repo). Tests: 33 deterministic unit tests (RichTextAreaTest, CodeEditorTest) driven by a new editor SPI backing in TestCodenameOneImplementation; screenshot-test screens for both editors registered in the hellocodenameone suite (JS-port-skipped like BrowserComponent). Docs: new RichTextArea + CodeEditor developer-guide sections with authentic screenshots. Playground: PlaygroundBrowserEditor now uses CodeEditor on every non-web platform (replacing the bare TextArea), with completion fed from the same CN1 API metadata (PlaygroundCompletion), diagnostics, theme sync and Java/CSS modes. The web port keeps Monaco unchanged (no regression), and a TextArea fallback engages automatically where the platform web widget cannot initialise. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../impl/CodenameOneImplementation.java | 53 +++ .../codename1/ui/AbstractEditorComponent.java | 384 +++++++++++++++++ .../src/com/codename1/ui/CodeCompletion.java | 97 +++++ .../codename1/ui/CodeCompletionProvider.java | 67 +++ .../src/com/codename1/ui/CodeDiagnostic.java | 122 ++++++ .../src/com/codename1/ui/CodeEditor.java | 392 ++++++++++++++++++ .../src/com/codename1/ui/CodeEditorHtml.java | 174 ++++++++ .../src/com/codename1/ui/RichTextArea.java | 340 +++++++++++++++ .../CodenameOne_GLViewController.h | 1 + .../The-Components-Of-Codename-One.asciidoc | 91 ++++ .../img/components-codeeditor-dark.png | Bin 0 -> 66714 bytes .../img/components-codeeditor.png | Bin 0 -> 69582 bytes .../img/components-richtextarea.png | Bin 0 -> 57644 bytes .../builders/AndroidGradleBuilder.java | 17 + .../com/codename1/builders/IPhoneBuilder.java | 12 + .../TestCodenameOneImplementation.java | 72 ++++ .../java/com/codename1/ui/CodeEditorTest.java | 229 ++++++++++ .../com/codename1/ui/RichTextAreaTest.java | 283 +++++++++++++ .../playground/PlaygroundBrowserEditor.java | 229 +++++++--- .../playground/PlaygroundCompletion.java | 319 ++++++++++++++ .../tests/Cn1ssDeviceRunner.java | 10 +- .../tests/CodeEditorScreenshotTest.java | 63 +++ .../tests/RichTextAreaScreenshotTest.java | 59 +++ 23 files changed, 2956 insertions(+), 58 deletions(-) create mode 100644 CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java create mode 100644 CodenameOne/src/com/codename1/ui/CodeCompletion.java create mode 100644 CodenameOne/src/com/codename1/ui/CodeCompletionProvider.java create mode 100644 CodenameOne/src/com/codename1/ui/CodeDiagnostic.java create mode 100644 CodenameOne/src/com/codename1/ui/CodeEditor.java create mode 100644 CodenameOne/src/com/codename1/ui/CodeEditorHtml.java create mode 100644 CodenameOne/src/com/codename1/ui/RichTextArea.java create mode 100644 docs/developer-guide/img/components-codeeditor-dark.png create mode 100644 docs/developer-guide/img/components-codeeditor.png create mode 100644 docs/developer-guide/img/components-richtextarea.png create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java create mode 100644 scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundCompletion.java create mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/CodeEditorScreenshotTest.java create mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/RichTextAreaScreenshotTest.java diff --git a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java index e83ad8f3f6..aa627dacee 100644 --- a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java +++ b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java @@ -5114,6 +5114,59 @@ public PeerComponent createBrowserComponent(Object browserComponent) { return null; } + /// Creates a native peer for one of the visual editor components + /// (`com.codename1.ui.RichTextArea` / `com.codename1.ui.CodeEditor`). + /// + /// The default implementation returns null which makes the editor fall back to its 100% cross + /// platform `BrowserComponent` based backend. A platform port may override this to return a genuinely + /// native editing widget (e.g. a native rich text view or a native code editor) which is then driven + /// through `#editorPeerCommand(PeerComponent, String, String)` and + /// `#editorPeerQuery(PeerComponent, String, String)`. A native peer should deliver events back to the + /// owning editor by calling `editorComponent.fireEditorEvent(type, value)`. + /// + /// #### Parameters + /// + /// - `editorComponent`: the owning `AbstractEditorComponent` so native peers can fire events back + /// + /// - `editorType`: the editor flavor, currently `"richtext"` or `"code"` + /// + /// #### Returns + /// + /// a native editor peer, or null to use the cross platform fallback + public PeerComponent createNativeEditorPeer(Object editorComponent, String editorType) { + return null; + } + + /// Sends a one way semantic command to a native editor peer created by + /// `#createNativeEditorPeer(Object, String)`. No-op by default. + /// + /// #### Parameters + /// + /// - `peer`: the native editor peer + /// + /// - `name`: the semantic command name (e.g. `"setHtml"`, `"bold"`, `"setText"`) + /// + /// - `arg`: an optional string argument, may be null + public void editorPeerCommand(PeerComponent peer, String name, String arg) { + } + + /// Queries a native editor peer for a string value. Returns null by default. + /// + /// #### Parameters + /// + /// - `peer`: the native editor peer + /// + /// - `name`: the semantic query name (e.g. `"getHtml"`, `"getText"`) + /// + /// - `arg`: an optional string argument, may be null + /// + /// #### Returns + /// + /// the queried value or null + public String editorPeerQuery(PeerComponent peer, String name, String arg) { + return null; + } + /// Posts a message to the window in a BrowserComponent. This is intended to be an abstraction of the Javascript postMessage() API. /// /// This is only overridden by the Javascript port to provide proper CORS handling. Other ports use the implementation diff --git a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java new file mode 100644 index 0000000000..730a6f6b49 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java @@ -0,0 +1,384 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +import com.codename1.ui.events.ActionEvent; +import com.codename1.ui.events.ActionListener; +import com.codename1.ui.layouts.BorderLayout; +import com.codename1.ui.util.EventDispatcher; +import com.codename1.util.SuccessCallback; + +import java.util.ArrayList; +import java.util.List; + +/// Base class for the native visual editors (rich text and code) introduced by Codename One. +/// +/// The editor components are designed around a *semantic command channel* rather than a single +/// hard-coded implementation. Every concrete editor (`RichTextArea`, `CodeEditor`) speaks to its +/// backend exclusively through `#command(String, String)`, `#query(String, String, SuccessCallback)` +/// and the inbound `#onEditorEvent(String, String)` dispatch. Two interchangeable backends honor +/// that channel: +/// +/// 1. A 100% cross platform fallback backed by `BrowserComponent` (a `contenteditable` surface for +/// rich text, a syntax highlighting surface for code). This works on every platform that supports +/// the native web widget and gets virtual keyboard handling on phones/tablets and physical keyboard +/// handling on desktop for free. +/// 2. An optional native backend supplied by the platform port (see +/// `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`). +/// When a port returns a non-null native peer the editor drives it through +/// `editorPeerCommand` / `editorPeerQuery` instead of the browser, allowing a platform to provide a +/// genuinely native experience that can exceed an HTML based app. +/// +/// Both backends are addressed with the same vocabulary so concrete editors never need to know which +/// one is active. +/// +/// @author Shai Almog +public abstract class AbstractEditorComponent extends Container { + /// Prefix used for all messages that travel from the web editor back to Codename One over the + /// `BrowserComponent` message bridge. + static final String MESSAGE_PREFIX = "cn1ed:"; + + private BrowserComponent browser; + private PeerComponent nativePeer; + private boolean nativeMode; + private boolean ready; + private boolean editable = true; + private final List readyQueue = new ArrayList(); + private final EventDispatcher changeListeners = new EventDispatcher(); + private final EventDispatcher readyListeners = new EventDispatcher(); + private final Label placeholder = new Label(""); + + /// Creates the editor and begins asynchronous backend initialization. + /// + /// #### Parameters + /// + /// - `uiid`: the UIID applied to the editor container + protected AbstractEditorComponent(String uiid) { + setUIID(uiid); + setLayout(new BorderLayout()); + placeholder.setShowEvenIfBlank(true); + addComponent(BorderLayout.CENTER, placeholder); + CN.callSerially(new Runnable() { + public void run() { + initBackend(); + } + }); + } + + private void initBackend() { + nativePeer = Display.impl.createNativeEditorPeer(this, getEditorType()); + if (nativePeer != null) { + nativeMode = true; + removeComponent(placeholder); + addComponent(BorderLayout.CENTER, nativePeer); + // the native peer signals readiness through onEditorEvent("ready", null); if a platform + // creates the peer fully initialized it may call that immediately, otherwise we mark ready + // here to flush queued commands as soon as the peer is attached. + markReady(); + revalidateLater(); + return; + } + nativeMode = false; + browser = new BrowserComponent(); + // keep the editor chrome supplied by the surrounding form, the editing surface is transparent + browser.setProperty("BackgroundColor", 0xffffff); + browser.addWebEventListener(BrowserComponent.onMessage, new ActionListener() { + public void actionPerformed(ActionEvent evt) { + handleBrowserMessage((String) evt.getSource()); + } + }); + browser.addWebEventListener(BrowserComponent.onLoad, new ActionListener() { + public void actionPerformed(ActionEvent evt) { + // the page defines window.cn1editor synchronously so it is ready once the page loaded + markReady(); + } + }); + removeComponent(placeholder); + addComponent(BorderLayout.CENTER, browser); + String engineUrl = getEngineURL(); + if (engineUrl != null) { + try { + browser.setURLHierarchy(engineUrl); + } catch (java.io.IOException err) { + browser.setURL(engineUrl); + } + } else { + browser.setPage(createEditorHtml(), getEditorBaseURL()); + } + revalidateLater(); + } + + private void handleBrowserMessage(String msg) { + if (msg == null || !msg.startsWith(MESSAGE_PREFIX)) { + return; + } + String body = msg.substring(MESSAGE_PREFIX.length()); + int colon = body.indexOf(':'); + String type; + String value; + if (colon < 0) { + type = body; + value = null; + } else { + type = body.substring(0, colon); + value = body.substring(colon + 1); + } + onEditorEvent(type, value); + } + + private void markReady() { + if (ready) { + return; + } + ready = true; + applyEditableState(); + List copy = new ArrayList(readyQueue); + readyQueue.clear(); + for (int i = 0; i < copy.size(); i++) { + copy.get(i).run(); + } + readyListeners.fireActionEvent(new ActionEvent(this)); + } + + /// Returns the editor type identifier passed to the native peer factory, e.g. + /// `"richtext"` or `"code"`. + abstract String getEditorType(); + + /// Returns the bootstrap HTML page used by the `BrowserComponent` fallback backend. The page must + /// define a global `window.cn1editor` object exposing `cmd(name, arg)` and `query(name, arg)` + /// functions and post change/ready events back through `window.cn1PostMessage`. + abstract String createEditorHtml(); + + /// Base URL used when loading the editor page, allowing relative resources (such as a bundled code + /// editor library) to resolve. The default returns a synthetic origin. + String getEditorBaseURL() { + return "https://cn1editor.codenameone.com/"; + } + + /// When non-null the browser fallback loads this app-hierarchy URL (via + /// `BrowserComponent#setURLHierarchy(String)`) as a custom editor engine instead of the built-in + /// `#createEditorHtml()` page. Subclasses override to allow an application to supply a richer editor + /// backend that speaks the same `window.cn1editor` bridge. + String getEngineURL() { + return null; + } + + /// Inbound event dispatch from either backend. Subclasses override to react to editor side events + /// (content changes, selection changes, completion requests, ...). Always call + /// `super.onEditorEvent` for the shared `"change"` and `"ready"` handling. + /// + /// #### Parameters + /// + /// - `type`: the event type, e.g. `"change"`, `"ready"`, `"selection"` + /// + /// - `value`: an optional string payload, may be null + void onEditorEvent(String type, String value) { + if ("ready".equals(type)) { + markReady(); + return; + } + if ("change".equals(type)) { + changeListeners.fireActionEvent(new ActionEvent(this)); + } + } + + /// Entry point invoked by native editor peers to deliver events back to Codename One. This routes + /// to the same dispatch path used by the browser message bridge so subclasses handle events + /// uniformly regardless of backend. + /// + /// #### Parameters + /// + /// - `type`: the event type + /// + /// - `value`: optional payload, may be null + public void fireEditorEvent(final String type, final String value) { + if (CN.isEdt()) { + onEditorEvent(type, value); + } else { + CN.callSerially(new Runnable() { + public void run() { + onEditorEvent(type, value); + } + }); + } + } + + /// Sends a one way command to the active backend. If the backend is not ready yet the command is + /// queued and replayed once initialization completes. + /// + /// #### Parameters + /// + /// - `name`: the semantic command name understood by both backends + /// + /// - `arg`: an optional string argument, may be null + protected void command(final String name, final String arg) { + if (!ready) { + readyQueue.add(new Runnable() { + public void run() { + command(name, arg); + } + }); + return; + } + if (nativeMode) { + Display.impl.editorPeerCommand(nativePeer, name, arg); + } else { + browser.execute("window.cn1editor.cmd(${0}, ${1})", new Object[]{name, arg == null ? "" : arg}); + } + } + + /// Queries the active backend for a string value asynchronously. The callback is always invoked on + /// the EDT. If the backend is not ready the query is deferred until it is. + /// + /// #### Parameters + /// + /// - `name`: the semantic query name understood by both backends + /// + /// - `arg`: an optional string argument, may be null + /// + /// - `callback`: receives the query result + protected void query(final String name, final String arg, final SuccessCallback callback) { + if (!ready) { + readyQueue.add(new Runnable() { + public void run() { + query(name, arg, callback); + } + }); + return; + } + if (nativeMode) { + callback.onSucess(Display.impl.editorPeerQuery(nativePeer, name, arg)); + return; + } + browser.execute("callback.onSuccess(window.cn1editor.query(${0}, ${1}))", + new Object[]{name, arg == null ? "" : arg}, + new SuccessCallback() { + public void onSucess(BrowserComponent.JSRef value) { + callback.onSucess(value == null ? null : value.getValue()); + } + }); + } + + /// Runs the supplied task once the editor backend is ready, or immediately if it already is. + /// + /// #### Parameters + /// + /// - `r`: the task to run on the EDT when the editor is ready + public void onReady(final Runnable r) { + if (ready) { + r.run(); + } else { + readyQueue.add(r); + } + } + + /// Returns true once the underlying editor backend has finished initializing and is ready to accept + /// commands. + public boolean isEditorReady() { + return ready; + } + + /// True when a platform supplied native editor backend is in use, false when the cross platform + /// `BrowserComponent` fallback is active. + public boolean isNativeEditor() { + return nativeMode; + } + + /// Returns the underlying `BrowserComponent` used by the fallback backend, or null when a native + /// backend is active. Exposed for advanced customization; most apps never need this. + public BrowserComponent getInternalBrowser() { + return browser; + } + + /// Adds a listener notified whenever the editor content changes. + /// + /// #### Parameters + /// + /// - `l`: the change listener + public void addChangeListener(ActionListener l) { + changeListeners.addListener(l); + } + + /// Removes a previously registered change listener. + /// + /// #### Parameters + /// + /// - `l`: the change listener + public void removeChangeListener(ActionListener l) { + changeListeners.removeListener(l); + } + + /// Adds a listener notified once when the editor backend becomes ready. + /// + /// #### Parameters + /// + /// - `l`: the ready listener + public void addReadyListener(ActionListener l) { + if (ready) { + l.actionPerformed(new ActionEvent(this)); + } else { + readyListeners.addListener(l); + } + } + + /// Removes a previously registered ready listener. + /// + /// #### Parameters + /// + /// - `l`: the ready listener + public void removeReadyListener(ActionListener l) { + readyListeners.removeListener(l); + } + + /// Enables or disables editing. A disabled editor still displays content but rejects input. + /// + /// #### Parameters + /// + /// - `editable`: true to allow editing + public void setEditable(boolean editable) { + this.editable = editable; + if (ready) { + applyEditableState(); + } + } + + private void applyEditableState() { + command("setEditable", editable ? "1" : "0"); + } + + /// Returns true if the editor currently allows editing. + public boolean isEditable() { + return editable; + } + + /// Requests keyboard focus for the editing surface, showing the virtual keyboard on touch devices. + public void focusEditor() { + command("focus", null); + } + + /// Removes keyboard focus from the editing surface, hiding the virtual keyboard on touch devices. + public void blurEditor() { + command("blur", null); + } +} diff --git a/CodenameOne/src/com/codename1/ui/CodeCompletion.java b/CodenameOne/src/com/codename1/ui/CodeCompletion.java new file mode 100644 index 0000000000..823c45f1fa --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/CodeCompletion.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +/// A single code completion proposal returned by a `CodeCompletionProvider` and shown in the +/// `CodeEditor` completion popup. +/// +/// @author Shai Almog +public class CodeCompletion { + private final String displayText; + private final String insertText; + private String type; + private String detail; + + /// Creates a completion whose displayed and inserted text are identical. + /// + /// #### Parameters + /// + /// - `text`: the text shown in the popup and inserted when chosen + public CodeCompletion(String text) { + this(text, text); + } + + /// Creates a completion with distinct display and insertion text. + /// + /// #### Parameters + /// + /// - `displayText`: the text shown in the completion popup + /// + /// - `insertText`: the text inserted into the editor when this completion is chosen + public CodeCompletion(String displayText, String insertText) { + this.displayText = displayText; + this.insertText = insertText; + } + + /// The text shown to the user in the completion popup. + public String getDisplayText() { + return displayText; + } + + /// The text inserted into the editor when this completion is accepted. + public String getInsertText() { + return insertText; + } + + /// An optional category used to badge / icon the entry, e.g. `"method"`, `"keyword"`, + /// `"variable"`, `"class"`, `"snippet"`. + public String getType() { + return type; + } + + /// Sets the completion category. Returns this for chaining. + /// + /// #### Parameters + /// + /// - `type`: the completion category + public CodeCompletion setType(String type) { + this.type = type; + return this; + } + + /// Optional secondary detail (e.g. a method signature or return type) shown alongside the entry. + public String getDetail() { + return detail; + } + + /// Sets the optional secondary detail. Returns this for chaining. + /// + /// #### Parameters + /// + /// - `detail`: the detail string + public CodeCompletion setDetail(String detail) { + this.detail = detail; + return this; + } +} diff --git a/CodenameOne/src/com/codename1/ui/CodeCompletionProvider.java b/CodenameOne/src/com/codename1/ui/CodeCompletionProvider.java new file mode 100644 index 0000000000..036804c71f --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/CodeCompletionProvider.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +import com.codename1.util.SuccessCallback; + +import java.util.List; + +/// Supplies IDE style code completion proposals to a `CodeEditor`. +/// +/// The provider is invoked by the editor as the user types (or when completion is explicitly triggered) +/// and returns its proposals asynchronously, which makes it suitable both for fast in-memory completion +/// and for completion driven by a remote language server. +/// +/// #### Example +/// +/// ```java +/// editor.setCompletionProvider((ed, code, cursor, results) -> { +/// String prefix = currentWord(code, cursor); +/// List out = new ArrayList<>(); +/// for (String kw : KEYWORDS) { +/// if (kw.startsWith(prefix)) { +/// out.add(new CodeCompletion(kw).setType("keyword")); +/// } +/// } +/// results.onSucess(out); +/// }); +/// ``` +/// +/// @author Shai Almog +public interface CodeCompletionProvider { + /// Requests completion proposals for the given editor state. Implementations must eventually invoke + /// `results.onSucess(list)` (possibly asynchronously); passing an empty list or null hides the + /// completion popup. + /// + /// #### Parameters + /// + /// - `editor`: the editor requesting completions + /// + /// - `code`: the full editor text + /// + /// - `cursorPosition`: the character offset of the caret within `code` + /// + /// - `results`: callback to deliver the proposals + void getCompletions(CodeEditor editor, String code, int cursorPosition, SuccessCallback> results); +} diff --git a/CodenameOne/src/com/codename1/ui/CodeDiagnostic.java b/CodenameOne/src/com/codename1/ui/CodeDiagnostic.java new file mode 100644 index 0000000000..db6cc634e9 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/CodeDiagnostic.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +/// A diagnostic (error / warning / information) shown in a `CodeEditor` as a squiggly underline over a +/// source range, a marker in the line-number gutter and a tooltip carrying the message. +/// +/// Positions are 1-based: line `1` is the first line and column `1` is the first character of a line, +/// matching the convention used by most compilers and language servers. +/// +/// @author Shai Almog +public class CodeDiagnostic { + /// Severity for a problem that should block / is an error. + public static final String ERROR = "error"; + /// Severity for a non-blocking warning. + public static final String WARNING = "warning"; + /// Severity for purely informational hints. + public static final String INFO = "info"; + + private final int line; + private final int column; + private int endLine; + private int endColumn; + private String severity = ERROR; + private final String message; + + /// Creates a single-position diagnostic that underlines from the given column to the end of the + /// token / line. + /// + /// #### Parameters + /// + /// - `line`: the 1-based line + /// + /// - `column`: the 1-based start column + /// + /// - `message`: the human readable message + public CodeDiagnostic(int line, int column, String message) { + this(line, column, line, column, message); + } + + /// Creates a diagnostic spanning an explicit range. + /// + /// #### Parameters + /// + /// - `line`: the 1-based start line + /// + /// - `column`: the 1-based start column + /// + /// - `endLine`: the 1-based end line + /// + /// - `endColumn`: the 1-based end column (exclusive) + /// + /// - `message`: the human readable message + public CodeDiagnostic(int line, int column, int endLine, int endColumn, String message) { + this.line = line; + this.column = column; + this.endLine = endLine; + this.endColumn = endColumn; + this.message = message; + } + + /// The 1-based start line. + public int getLine() { + return line; + } + + /// The 1-based start column. + public int getColumn() { + return column; + } + + /// The 1-based end line. + public int getEndLine() { + return endLine; + } + + /// The 1-based end column (exclusive). + public int getEndColumn() { + return endColumn; + } + + /// The severity, one of `#ERROR`, `#WARNING` or `#INFO`. + public String getSeverity() { + return severity; + } + + /// Sets the severity. Returns this for chaining. + /// + /// #### Parameters + /// + /// - `severity`: one of `#ERROR`, `#WARNING`, `#INFO` + public CodeDiagnostic setSeverity(String severity) { + this.severity = severity == null ? ERROR : severity; + return this; + } + + /// The message shown in the tooltip. + public String getMessage() { + return message; + } +} diff --git a/CodenameOne/src/com/codename1/ui/CodeEditor.java b/CodenameOne/src/com/codename1/ui/CodeEditor.java new file mode 100644 index 0000000000..525d58dc2a --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/CodeEditor.java @@ -0,0 +1,392 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +import com.codename1.util.SuccessCallback; + +import java.util.List; + +/// An IDE style source code editor with syntax highlighting, a line-number gutter and asynchronous +/// code completion. +/// +/// `CodeEditor` is built for editing source code on both touch devices (with the virtual keyboard) and +/// desktops (with a physical keyboard). Code completion is driven by a `CodeCompletionProvider`, which +/// can resolve proposals locally or from a remote language server. +/// +/// Like `RichTextArea`, the editor uses a 100% cross platform `BrowserComponent` backend by default and +/// can be transparently upgraded to a native code editor by a platform port. The built-in editing +/// surface is fully self contained and offline. When the optional bundled CodeMirror library is present +/// (the Codename One build server adds it automatically when, and only when, an app actually uses +/// `CodeEditor`) the editor upgrades to CodeMirror for richer language support; otherwise it uses a +/// lightweight built-in highlighter. +/// +/// #### Example +/// +/// ```java +/// CodeEditor editor = new CodeEditor(); +/// editor.setLanguage("java"); +/// editor.setText("public class Main {\n\n}"); +/// editor.setCompletionProvider((ed, code, cursor, results) -> { +/// List out = new ArrayList<>(); +/// out.add(new CodeCompletion("System.out.println(", "System.out.println()").setType("method")); +/// results.onSucess(out); +/// }); +/// form.add(BorderLayout.CENTER, editor); +/// ``` +/// +/// @author Shai Almog +public class CodeEditor extends AbstractEditorComponent { + private String language = "text"; + private String theme = "light"; + private boolean showLineNumbers = true; + private int tabSize = 4; + private String pendingText; + private String engineUrl; + private CodeCompletionProvider completionProvider; + + /// Creates an empty code editor. + public CodeEditor() { + super("CodeEditor"); + } + + /// Creates a code editor initialized with the supplied source and language. + /// + /// #### Parameters + /// + /// - `language`: the language id used for syntax highlighting (e.g. `"java"`, `"javascript"`, + /// `"kotlin"`, `"css"`, `"xml"`, `"json"`, `"python"`) + /// + /// - `text`: the initial source code + public CodeEditor(String language, String text) { + this(); + setLanguage(language); + setText(text); + } + + String getEditorType() { + return "code"; + } + + /// Replaces the entire editor content. + /// + /// #### Parameters + /// + /// - `text`: the source code + public void setText(String text) { + pendingText = text; + command("setText", text == null ? "" : text); + } + + /// Retrieves the current source code. The callback is invoked on the EDT. + /// + /// #### Parameters + /// + /// - `callback`: receives the source code + public void getText(SuccessCallback callback) { + query("getText", null, callback); + } + + /// Sets the language used for syntax highlighting. + /// + /// #### Parameters + /// + /// - `language`: the language id (e.g. `"java"`, `"javascript"`, `"kotlin"`, `"css"`, `"xml"`, + /// `"json"`, `"python"`) + public void setLanguage(String language) { + this.language = language == null ? "text" : language; + command("setLanguage", this.language); + } + + /// Returns the current highlighting language id. + public String getLanguage() { + return language; + } + + /// Sets the color theme. Currently `"light"` and `"dark"` are supported. + /// + /// #### Parameters + /// + /// - `theme`: the theme id + public void setTheme(String theme) { + this.theme = theme == null ? "light" : theme; + command("setTheme", this.theme); + } + + /// Returns the current theme id. + public String getTheme() { + return theme; + } + + /// Shows or hides the line-number gutter. + /// + /// #### Parameters + /// + /// - `show`: true to show line numbers + public void setShowLineNumbers(boolean show) { + this.showLineNumbers = show; + command("setLineNumbers", show ? "1" : "0"); + } + + /// Returns true if the line-number gutter is shown. + public boolean isShowLineNumbers() { + return showLineNumbers; + } + + /// Sets the number of spaces inserted for a tab / used for indentation. + /// + /// #### Parameters + /// + /// - `tabSize`: the indentation width in spaces + public void setTabSize(int tabSize) { + this.tabSize = tabSize; + command("setTabSize", String.valueOf(tabSize)); + } + + /// Returns the indentation width in spaces. + public int getTabSize() { + return tabSize; + } + + /// Makes the editor read-only or editable. This is a convenience around + /// `AbstractEditorComponent#setEditable(boolean)`. + /// + /// #### Parameters + /// + /// - `readOnly`: true to prevent editing + public void setReadOnly(boolean readOnly) { + setEditable(!readOnly); + } + + /// Returns true when the editor is read-only. + public boolean isReadOnly() { + return !isEditable(); + } + + /// Inserts text at the current caret position, replacing any active selection. + /// + /// #### Parameters + /// + /// - `text`: the text to insert + public void insertAtCursor(String text) { + command("insertText", text); + } + + /// Retrieves the current caret character offset. The callback is invoked on the EDT. + /// + /// #### Parameters + /// + /// - `callback`: receives the caret offset as an Integer + public void getCursorPosition(final SuccessCallback callback) { + query("getCursor", null, new SuccessCallback() { + public void onSucess(String value) { + int v = 0; + try { + if (value != null && value.length() > 0) { + v = Integer.parseInt(value.trim()); + } + } catch (NumberFormatException err) { + v = 0; + } + callback.onSucess(Integer.valueOf(v)); + } + }); + } + + /// Sets the diagnostics (errors / warnings / hints) displayed in the editor as squiggly underlines, + /// gutter markers and tooltips. Pass an empty list (or null) to clear all diagnostics. + /// + /// #### Parameters + /// + /// - `diagnostics`: the diagnostics to display + public void setDiagnostics(List diagnostics) { + command("setDiagnostics", diagnosticsJson(diagnostics)); + } + + private static String diagnosticsJson(List diagnostics) { + StringBuilder sb = new StringBuilder("["); + if (diagnostics != null) { + for (int i = 0; i < diagnostics.size(); i++) { + CodeDiagnostic d = diagnostics.get(i); + if (d == null) { + continue; + } + if (sb.length() > 1) { + sb.append(","); + } + sb.append("{\"l\":").append(d.getLine()) + .append(",\"c\":").append(d.getColumn()) + .append(",\"el\":").append(d.getEndLine()) + .append(",\"ec\":").append(d.getEndColumn()) + .append(",\"s\":\"").append(jsonEscape(d.getSeverity())) + .append("\",\"m\":\"").append(jsonEscape(d.getMessage())) + .append("\"}"); + } + } + sb.append("]"); + return sb.toString(); + } + + /// Points the editor at a custom engine page bundled in the app's HTML hierarchy (loaded with + /// `BrowserComponent#setURLHierarchy(String)`) instead of the self contained built-in engine. The + /// custom page must implement the same `window.cn1editor` command/query bridge and post the same + /// `cn1ed:` events, which lets an application back `CodeEditor` with a richer editor (e.g. CodeMirror + /// or Monaco) when maximum polish is required while keeping the exact same Java API. Must be set + /// before the editor is shown. + /// + /// #### Parameters + /// + /// - `url`: an app-hierarchy URL such as `"/my-editor/index.html"`, or null to use the built-in engine + public void setEngineURL(String url) { + this.engineUrl = url; + } + + /// Returns the custom engine URL set with `#setEngineURL(String)`, or null when the built-in engine + /// is used. + public String getEngineURL() { + return engineUrl; + } + + String getEngineURLInternal() { + return engineUrl; + } + + /// Sets the provider that supplies code completion proposals. Passing null disables completion. + /// + /// #### Parameters + /// + /// - `provider`: the completion provider, or null to disable completion + public void setCompletionProvider(CodeCompletionProvider provider) { + this.completionProvider = provider; + command("setCompletionEnabled", provider != null ? "1" : "0"); + } + + /// Returns the current completion provider, or null if none is set. + public CodeCompletionProvider getCompletionProvider() { + return completionProvider; + } + + void onEditorEvent(String type, String value) { + if ("complete".equals(type)) { + handleCompletionRequest(value); + return; + } + super.onEditorEvent(type, value); + } + + private void handleCompletionRequest(String value) { + final CodeCompletionProvider provider = completionProvider; + if (provider == null || value == null) { + return; + } + int colon = value.indexOf(':'); + if (colon < 0) { + return; + } + final String reqId = value.substring(0, colon); + final int cursor; + int c; + try { + c = Integer.parseInt(value.substring(colon + 1).trim()); + } catch (NumberFormatException err) { + c = 0; + } + cursor = c; + getText(new SuccessCallback() { + public void onSucess(String code) { + final String safeCode = code == null ? "" : code; + provider.getCompletions(CodeEditor.this, safeCode, cursor, new SuccessCallback>() { + public void onSucess(List results) { + command("showCompletions", reqId + ":" + toJson(results)); + } + }); + } + }); + } + + private static String toJson(List items) { + StringBuilder sb = new StringBuilder("["); + if (items != null) { + for (int i = 0; i < items.size(); i++) { + CodeCompletion cc = items.get(i); + if (cc == null) { + continue; + } + if (sb.length() > 1) { + sb.append(","); + } + sb.append("{\"d\":\"").append(jsonEscape(cc.getDisplayText())) + .append("\",\"i\":\"").append(jsonEscape(cc.getInsertText())) + .append("\",\"t\":\"").append(jsonEscape(cc.getType())) + .append("\",\"x\":\"").append(jsonEscape(cc.getDetail())) + .append("\"}"); + } + } + sb.append("]"); + return sb.toString(); + } + + private static String jsonEscape(String s) { + if (s == null) { + return ""; + } + StringBuilder sb = new StringBuilder(s.length() + 8); + for (int i = 0; i < s.length(); i++) { + char ch = s.charAt(i); + switch (ch) { + case '"': + sb.append("\\\""); + break; + case '\\': + sb.append("\\\\"); + break; + case '\n': + sb.append("\\n"); + break; + case '\r': + sb.append("\\r"); + break; + case '\t': + sb.append("\\t"); + break; + default: + if (ch < 0x20) { + String hex = Integer.toHexString(ch); + sb.append("\\u"); + for (int p = hex.length(); p < 4; p++) { + sb.append('0'); + } + sb.append(hex); + } else { + sb.append(ch); + } + break; + } + } + return sb.toString(); + } + + String createEditorHtml() { + return CodeEditorHtml.PAGE; + } +} diff --git a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java new file mode 100644 index 0000000000..c02bae8faa --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +/// Holds the self contained HTML/JS implementation of the `CodeEditor` built-in editing surface. Kept +/// in its own class so the large literal does not clutter the editor component. The page exposes the +/// `window.cn1editor` command/query bridge used by `AbstractEditorComponent` and supports syntax +/// highlighting, a line-number gutter, code completion, diagnostics (squiggly underlines + gutter +/// markers + tooltips), bracket auto-close and an active-line highlight. +class CodeEditorHtml { + private CodeEditorHtml() { + } + + static final String PAGE = + "" + + "" + + "" + + "
1
" + + "
" + + ""; +} diff --git a/CodenameOne/src/com/codename1/ui/RichTextArea.java b/CodenameOne/src/com/codename1/ui/RichTextArea.java new file mode 100644 index 0000000000..99365661ec --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/RichTextArea.java @@ -0,0 +1,340 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +import com.codename1.util.SuccessCallback; + +/// A native visual editor for rich text / HTML content (a WYSIWYG editor). +/// +/// `RichTextArea` lets the user visually edit formatted text - bold, italic, lists, links, colors, +/// headings and more - and exchange the result as HTML with your application. It works on phones and +/// tablets (with the on screen virtual keyboard) as well as on desktops (with a physical keyboard). +/// +/// By default the editor is implemented as a `contenteditable` surface hosted inside the platform's +/// native web widget (`BrowserComponent`), which makes it 100% cross platform and gives correct +/// keyboard, selection and IME behavior on every device for free. A platform port may transparently +/// replace this with a fully native editing widget; see +/// `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(Object, String)`. +/// +/// #### Basic usage +/// +/// ```java +/// Form hi = new Form("Rich Text", new BorderLayout()); +/// RichTextArea editor = new RichTextArea(); +/// editor.setHtml("

Hello world

"); +/// +/// Toolbar tb = hi.getToolbar(); +/// tb.addCommandToRightBar("B", null, e -> editor.bold()); +/// tb.addCommandToRightBar("I", null, e -> editor.italic()); +/// +/// hi.add(BorderLayout.CENTER, editor); +/// hi.show(); +/// +/// // later, read the edited content back: +/// editor.getHtml(html -> Log.p("User wrote: " + html)); +/// ``` +/// +/// @author Shai Almog +public class RichTextArea extends AbstractEditorComponent { + private String pendingHtml; + private String placeholderText = ""; + + /// Creates an empty rich text editor. + public RichTextArea() { + super("RichTextArea"); + } + + /// Creates a rich text editor initialized with the supplied HTML. + /// + /// #### Parameters + /// + /// - `html`: the initial HTML content + public RichTextArea(String html) { + this(); + setHtml(html); + } + + String getEditorType() { + return "richtext"; + } + + /// Replaces the entire editor content with the supplied HTML. + /// + /// #### Parameters + /// + /// - `html`: the HTML to display and edit + public void setHtml(String html) { + pendingHtml = html; + command("setHtml", html == null ? "" : html); + } + + /// Retrieves the current editor content as an HTML string. The callback is invoked on the EDT. + /// + /// #### Parameters + /// + /// - `callback`: receives the HTML content + public void getHtml(SuccessCallback callback) { + query("getHtml", null, callback); + } + + /// Retrieves the current editor content as plain text (markup stripped). The callback is invoked on + /// the EDT. + /// + /// #### Parameters + /// + /// - `callback`: receives the plain text content + public void getText(SuccessCallback callback) { + query("getText", null, callback); + } + + /// Inserts the supplied HTML fragment at the current cursor position. + /// + /// #### Parameters + /// + /// - `html`: the HTML fragment to insert + public void insertHtml(String html) { + command("insertHtml", html); + } + + /// Inserts an image at the current cursor position. + /// + /// #### Parameters + /// + /// - `url`: the image URL (may be an http(s) URL or a data: URI) + public void insertImage(String url) { + command("insertImage", url); + } + + /// Sets the placeholder text shown when the editor is empty. + /// + /// #### Parameters + /// + /// - `text`: the placeholder hint + public void setPlaceholder(String text) { + placeholderText = text == null ? "" : text; + command("setPlaceholder", placeholderText); + } + + /// Returns the current placeholder text. + public String getPlaceholder() { + return placeholderText; + } + + /// Toggles bold styling on the current selection. + public void bold() { + command("bold", null); + } + + /// Toggles italic styling on the current selection. + public void italic() { + command("italic", null); + } + + /// Toggles underline styling on the current selection. + public void underline() { + command("underline", null); + } + + /// Toggles strike-through styling on the current selection. + public void strikeThrough() { + command("strikeThrough", null); + } + + /// Converts the current block(s) into an ordered (numbered) list. + public void insertOrderedList() { + command("insertOrderedList", null); + } + + /// Converts the current block(s) into an unordered (bulleted) list. + public void insertUnorderedList() { + command("insertUnorderedList", null); + } + + /// Increases the indentation of the current block. + public void indent() { + command("indent", null); + } + + /// Decreases the indentation of the current block. + public void outdent() { + command("outdent", null); + } + + /// Left aligns the current block. + public void justifyLeft() { + command("justifyLeft", null); + } + + /// Center aligns the current block. + public void justifyCenter() { + command("justifyCenter", null); + } + + /// Right aligns the current block. + public void justifyRight() { + command("justifyRight", null); + } + + /// Wraps the current selection in a hyperlink. + /// + /// #### Parameters + /// + /// - `url`: the link target + public void createLink(String url) { + command("createLink", url); + } + + /// Removes the hyperlink covering the current selection. + public void removeLink() { + command("unlink", null); + } + + /// Sets the foreground (text) color of the current selection. + /// + /// #### Parameters + /// + /// - `rgb`: the color as a 0xRRGGBB integer + public void setForegroundColor(int rgb) { + command("foreColor", toCss(rgb)); + } + + /// Sets the highlight (background) color of the current selection. + /// + /// #### Parameters + /// + /// - `rgb`: the color as a 0xRRGGBB integer + public void setHighlightColor(int rgb) { + command("hiliteColor", toCss(rgb)); + } + + /// Applies a block format / heading to the current block. Common values are `"p"`, `"h1"` .. + /// `"h6"`, `"pre"` and `"blockquote"`. + /// + /// #### Parameters + /// + /// - `tag`: the block tag name + public void setBlockFormat(String tag) { + command("formatBlock", tag); + } + + /// Applies a relative font size (1 through 7, matching the legacy HTML font size scale) to the + /// current selection. + /// + /// #### Parameters + /// + /// - `size`: a value between 1 and 7 + public void setFontSize(int size) { + command("fontSize", String.valueOf(size)); + } + + /// Removes all inline formatting from the current selection. + public void removeFormat() { + command("removeFormat", null); + } + + /// Undoes the last editing operation. + public void undo() { + command("undo", null); + } + + /// Redoes the last undone editing operation. + public void redo() { + command("redo", null); + } + + /// Queries whether a given inline command (e.g. `"bold"`, `"italic"`, `"underline"`) is currently + /// active for the selection, which is useful to keep a formatting toolbar in sync. The callback is + /// invoked on the EDT. + /// + /// #### Parameters + /// + /// - `command`: the command name to test + /// + /// - `callback`: receives true if the command is active for the current selection + public void queryCommandState(String command, final SuccessCallback callback) { + query("state", command, new SuccessCallback() { + public void onSucess(String value) { + callback.onSucess("1".equals(value)); + } + }); + } + + private static String toCss(int rgb) { + String s = Integer.toHexString(rgb & 0xffffff); + while (s.length() < 6) { + s = "0" + s; + } + return "#" + s; + } + + String createEditorHtml() { + // A self-contained contenteditable editor. No external resources are required which keeps the + // editor fully functional offline and adds zero footprint to apps that do not use it. + return "" + + "" + + "" + + "
" + + ""; + } +} diff --git a/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h b/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h index 557e748183..aebf678f64 100644 --- a/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h +++ b/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h @@ -42,6 +42,7 @@ #import //#define CN1_USE_STOREKIT //#define CN1_USE_APPREVIEW +//#define CN1_USE_CODEMIRROR #if defined(CN1_USE_STOREKIT) || defined(CN1_USE_APPREVIEW) #import "StoreKit/StoreKit.h" #endif diff --git a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc index 11fb728f0c..6d60e90d47 100644 --- a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc +++ b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc @@ -3476,6 +3476,97 @@ The effort to integrate Cordova/PhoneGap support into Codename One is handled wi This is discussed further in the https://www.codenameone.com/blog/phonegap-cordova-compatibility-for-codename-one.html[original announcement]. +=== RichTextArea + +The https://www.codenameone.com/javadoc/com/codename1/ui/RichTextArea.html[RichTextArea] is a visual editor for formatted text (a WYSIWYG / HTML editor). It lets the user select text and apply styling - bold, italic, underline, lists, links, colors, headings - and exchanges the result with your application as HTML. It works on phones and tablets with the on-screen virtual keyboard, and on desktops with a physical keyboard. + +`RichTextArea` derives from `AbstractEditorComponent`. By default the editing surface is a `contenteditable` document hosted inside the platform's native web widget (the same one used by `BrowserComponent`), which makes it fully cross platform and gives correct keyboard, selection and IME behavior on every device. A platform port may transparently replace this with a fully native editing widget without any change to your code. + +NOTE: Because the editor is created asynchronously you should treat it like `BrowserComponent`: setters such as `setHtml(String)` are safe to call immediately (they are queued until the editor is ready) while reads such as `getHtml(SuccessCallback)` are asynchronous and deliver their result through a callback. + +The following sample places a `RichTextArea` in a form and wires a couple of formatting commands into the `Toolbar`: + +[source,java] +---- +Form hi = new Form("Compose", new BorderLayout()); +RichTextArea editor = new RichTextArea(); +editor.setPlaceholder("Write something..."); +editor.setHtml("

Trip itinerary

Meet at the main lobby.

"); + +Toolbar tb = hi.getToolbar(); +tb.addCommandToRightBar("B", null, e -> editor.bold()); +tb.addCommandToRightBar("I", null, e -> editor.italic()); +tb.addCommandToRightBar("List", null, e -> editor.insertUnorderedList()); +tb.addCommandToRightBar("Save", null, e -> + editor.getHtml(html -> Log.p("User wrote: " + html))); + +hi.add(BorderLayout.CENTER, editor); +hi.show(); +---- + +.RichTextArea with a formatting toolbar editing styled content +image::img/components-richtextarea.png[RichTextArea with a formatting toolbar editing styled content,scaledwidth=35%] + +The formatting commands map to the operations you would expect from a word processor and all act on the current selection: `bold()`, `italic()`, `underline()`, `strikeThrough()`, `insertOrderedList()`, `insertUnorderedList()`, `indent()`/`outdent()`, `justifyLeft()`/`justifyCenter()`/`justifyRight()`, `createLink(url)`/`removeLink()`, `setForegroundColor(rgb)`/`setHighlightColor(rgb)`, `setBlockFormat("h1")`, `setFontSize(1..7)`, `removeFormat()`, `undo()` and `redo()`. You can also insert content at the cursor with `insertHtml(String)` and `insertImage(String)`. + +TIP: To keep a formatting toolbar in sync with the selection (e.g. to highlight the bold button when the caret is inside bold text) register a change listener with `addChangeListener(ActionListener)` and query the active state with `queryCommandState("bold", active -> ...)`. + +Reading the edited content is asynchronous: + +[source,java] +---- +editor.getHtml(html -> storage.save(html)); // full HTML markup +editor.getText(text -> index(text)); // plain text, markup stripped +---- + +=== CodeEditor + +The https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[CodeEditor] is an IDE-style source editor with syntax highlighting, a line-number gutter, light/dark themes and asynchronous code completion. Like `RichTextArea` it is designed for both touch devices (with the virtual keyboard) and desktops (with a physical keyboard), and uses the same cross-platform editing backend with an optional native upgrade per platform. + +[source,java] +---- +Form hi = new Form("Editor", new BorderLayout()); +CodeEditor editor = new CodeEditor(); +editor.setLanguage("java"); +editor.setTheme("light"); // or "dark" +editor.setShowLineNumbers(true); +editor.setText("public class Main {\n\n}"); +hi.add(BorderLayout.CENTER, editor); +hi.show(); +---- + +The highlighting language is selected with `setLanguage(String)` and understands common languages such as `java`, `kotlin`, `javascript`, `python`, `css`, `xml`, `json` and `c`. The content is exchanged with `setText(String)` and the asynchronous `getText(SuccessCallback)`, and `setReadOnly(boolean)` turns the editor into a syntax-highlighted code viewer. + +.CodeEditor showing Java with the completion popup (light theme) +image::img/components-codeeditor.png[CodeEditor showing Java with the completion popup,scaledwidth=35%] + +==== Code completion + +Code completion is driven by a https://www.codenameone.com/javadoc/com/codename1/ui/CodeCompletionProvider.html[CodeCompletionProvider]. The editor calls the provider as the user types (or when completion is explicitly triggered), passing the full text and the caret offset; the provider returns its proposals asynchronously, which makes it suitable both for fast in-memory completion and for completion backed by a remote language server. + +[source,java] +---- +editor.setCompletionProvider((ed, code, cursor, results) -> { + String prefix = currentWord(code, cursor); + List out = new ArrayList<>(); + for (String member : new String[] {"println(", "print(", "printf(", "flush()"}) { + if (member.startsWith(prefix)) { + out.add(new CodeCompletion(member).setType("method")); + } + } + results.onSucess(out); // an empty list hides the popup +}); +---- + +Each https://www.codenameone.com/javadoc/com/codename1/ui/CodeCompletion.html[CodeCompletion] carries the text shown in the popup, the text inserted when it is chosen (which may differ), an optional category used to badge the entry (`"method"`, `"keyword"`, `"class"`, ...) and an optional detail string such as a signature. + +The editor honors light and dark themes through `setTheme(String)`: + +.CodeEditor in the dark theme +image::img/components-codeeditor-dark.png[CodeEditor in the dark theme,scaledwidth=35%] + +TIP: The built-in editing surface is fully self contained and works offline with no external dependencies. When an app actually references `CodeEditor` the build server can additionally bundle a richer code editor library; apps that do not use `CodeEditor` never pay that cost. + === AutoCompleteTextField The https://www.codenameone.com/javadoc/com/codename1/ui/AutoCompleteTextField.html[AutoCompleteTextField] allows you to write text into a text field and select a completion entry from the list in a similar way to a search engine. diff --git a/docs/developer-guide/img/components-codeeditor-dark.png b/docs/developer-guide/img/components-codeeditor-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a42257351eaf1eeb90c13d40d6b71e4e291ef30b GIT binary patch literal 66714 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≶Q8l@Fu$$GdN> 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

V^gqK$fPX5-oPh+e7*Ou=& zxTg>JpXX$V?|bQ-5Ukv_;a7+3`QLv0)_8|6w^Z2Wy`ZYXxjl8VptubLNx$<;kKMT8 z<@W!SKkwfYq5pMj;NRc+KkUW)`+@)c!2bi5-@jk8zhASzU$cMjr*{;xeY9Z%U&Q4L zXW=@*f5L?S_lo>`MgF}a|NV-DRmhXsuz|;msor;O!-fs~>r0bwgWulh-x42O^@ERW OxU8dpA?w_o$NvYp6|@Tg literal 0 HcmV?d00001 diff --git a/docs/developer-guide/img/components-codeeditor.png b/docs/developer-guide/img/components-codeeditor.png new file mode 100644 index 0000000000000000000000000000000000000000..64897a7f5e920c82ba5a62057163a68945e50875 GIT binary patch literal 69582 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 Ix6R-F4>X`pS^xk5 literal 0 HcmV?d00001 diff --git a/docs/developer-guide/img/components-richtextarea.png b/docs/developer-guide/img/components-richtextarea.png new file mode 100644 index 0000000000000000000000000000000000000000..bc55eefd879d58e54b0c1f1b62a585b6ec36244f GIT binary patch literal 57644 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 Y^_odUo>wcv-&_%XC&6FvM&rx>0uXX)00000 literal 0 HcmV?d00001 diff --git a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java index 594c469f69..1cfb9faf22 100644 --- a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java +++ b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java @@ -290,6 +290,7 @@ public File getGradleProjectDirectory() { private boolean usesAppleSignIn; private boolean usesWebauthn; private boolean usesAppReview; + private boolean usesCodeEditor; private boolean vibratePermission; private boolean smsPermission; private boolean gpsPermission; @@ -1311,6 +1312,13 @@ public void usesClass(String cls) { if (!usesAppReview && cls.indexOf("com/codename1/appreview") == 0) { usesAppReview = true; } + // CodeEditor optionally upgrades its built-in highlighter to + // the bundled CodeMirror web assets. Detected from actual + // usage so apps that never embed a code editor pay nothing + // (see the bundling step further below). + if (!usesCodeEditor && cls.indexOf("com/codename1/ui/CodeEditor") == 0) { + usesCodeEditor = true; + } if (cls.indexOf("com/codename1/location/Geofence") > -1) { if (!"true".equals(playServicesValue)) { // If play services are not currently "blanket" enabled @@ -4084,6 +4092,15 @@ public void usesClassMethod(String cls, String method) { additionalDependencies += " implementation 'com.google.android.play:review:"+reviewVersion+"'\n"; } + // CodeEditor (com.codename1.ui.CodeEditor) can upgrade its self-contained + // built-in highlighter to the bundled CodeMirror assets. We only flag the + // bundling when the app actually references CodeEditor (detected during the + // class scan above) so apps that never embed a code editor stay lean. + if (usesCodeEditor) { + debug("CodeEditor detected: enabling CodeMirror asset bundling"); + request.putArgument("codeEditor.bundleCodeMirror", "true"); + } + // OidcClient routes sign-in through androidx.browser Custom Tabs. // Pull the browser dep in automatically when the app references // anything in com.codename1.io.oidc -- otherwise apps that don't diff --git a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java index e4ef8ed1e8..f6bd53a301 100644 --- a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java +++ b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java @@ -100,6 +100,7 @@ public class IPhoneBuilder extends Executor { private boolean usesLocalNotifications; private boolean usesPurchaseAPI; private boolean usesAppReview; + private boolean usesCodeEditor; private boolean usesWalletApi; private boolean usesCryptoAPI; private boolean usesCryptoGcm; @@ -736,6 +737,12 @@ public void usesClass(String cls) { if (!usesAppReview && cls.indexOf("com/codename1/appreview") == 0) { usesAppReview = true; } + // CodeEditor optionally upgrades its built-in highlighter to the + // bundled CodeMirror web assets. Gated on actual usage (CN1_USE_CODEMIRROR) + // so apps that never embed a code editor pay nothing. + if (!usesCodeEditor && cls.indexOf("com/codename1/ui/CodeEditor") == 0) { + usesCodeEditor = true; + } // Wallet issuer-provisioning natives are only compiled in when // the app actually references the API (or enables the extension // via the ios.wallet.extension hint) - see CN1_INCLUDE_WALLET. @@ -1872,6 +1879,11 @@ public void usesClassMethod(String cls, String method) { replaceInFile(CodenameOne_GLViewController_h, "//#define CN1_USE_APPREVIEW", "#define CN1_USE_APPREVIEW"); } + if (usesCodeEditor) { + File CodenameOne_GLViewController_h = new File(buildinRes, "CodenameOne_GLViewController.h"); + replaceInFile(CodenameOne_GLViewController_h, "//#define CN1_USE_CODEMIRROR", "#define CN1_USE_CODEMIRROR"); + + } } catch (Exception ex) { throw new BuildException("Failure while injecting code from build hints", ex); } diff --git a/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java b/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java index 5e6ae75f36..95b3d792c5 100644 --- a/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java +++ b/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java @@ -143,6 +143,11 @@ public class TestCodenameOneImplementation extends CodenameOneImplementation { private PeerComponent browserComponent; private final List browserExecuted = new ArrayList<>(); private final Map browserUrls = new HashMap(); + private boolean editorNativePeerSupported = false; + private String lastEditorType; + private PeerComponent lastEditorPeer; + private final List editorCommands = new ArrayList(); + private Function editorQueryResponder; private AsyncResource backgroundMediaAsync; private Media backgroundMedia; private Media media; @@ -950,6 +955,68 @@ public List getBrowserExecuted() { return browserExecuted; } + // --- Native editor SPI test backing (RichTextArea / CodeEditor) --- + // When editorNativePeerSupported is true the editor components run against this + // deterministic native backend instead of the BrowserComponent fallback, which lets + // unit tests exercise the full command/query/event machinery without a real web view. + + @Override + public PeerComponent createNativeEditorPeer(Object editorComponent, String editorType) { + if (!editorNativePeerSupported) { + return null; + } + lastEditorType = editorType; + lastEditorPeer = new PeerComponent(new Object()) { + }; + return lastEditorPeer; + } + + @Override + public void editorPeerCommand(PeerComponent peer, String name, String arg) { + editorCommands.add(name + ":" + (arg == null ? "" : arg)); + } + + @Override + public String editorPeerQuery(PeerComponent peer, String name, String arg) { + if (editorQueryResponder != null) { + String r = editorQueryResponder.apply(name + ":" + (arg == null ? "" : arg)); + if (r != null) { + return r; + } + } + return ""; + } + + public void setEditorNativePeerSupported(boolean supported) { + this.editorNativePeerSupported = supported; + } + + public boolean isEditorNativePeerSupported() { + return editorNativePeerSupported; + } + + public String getLastEditorType() { + return lastEditorType; + } + + public PeerComponent getLastEditorPeer() { + return lastEditorPeer; + } + + public List getEditorCommands() { + return editorCommands; + } + + public String getLastEditorCommand() { + return editorCommands.isEmpty() ? null : editorCommands.get(editorCommands.size() - 1); + } + + /// Configures the canned response for editorPeerQuery. The responder receives "name:arg" + /// and returns the value to hand back to the editor, or null to fall through to "". + public void setEditorQueryResponder(Function responder) { + this.editorQueryResponder = responder; + } + @Override public void blockCopyPaste(boolean blockCopyPaste) { this.blockCopyAndPaste = blockCopyPaste; @@ -1077,6 +1144,11 @@ public void reset() { databases.clear(); browserExecuted.clear(); browserUrls.clear(); + editorNativePeerSupported = false; + lastEditorType = null; + lastEditorPeer = null; + editorCommands.clear(); + editorQueryResponder = null; mediaAsync = null; hasDragStarted = null; backgroundMediaAsync = null; diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java new file mode 100644 index 0000000000..7e3c28068f --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java @@ -0,0 +1,229 @@ +package com.codename1.ui; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.events.ActionListener; +import com.codename1.ui.layouts.BorderLayout; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * Deep coverage for {@link CodeEditor} including the asynchronous {@link CodeCompletionProvider} flow. + * Tests drive the editor against the deterministic native editor backend of the test implementation so + * the command/query channel and the completion request/response cycle (with JSON serialization) are + * fully exercised without a real web view. + */ +class CodeEditorTest extends UITestBase { + + private void pump() { + for (int i = 0; i < 6; i++) { + flushSerialCalls(); + } + } + + private CodeEditor showNativeEditor() { + implementation.setEditorNativePeerSupported(true); + CodeEditor editor = new CodeEditor(); + Form f = new Form("code", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + return editor; + } + + private List cmds() { + return implementation.getEditorCommands(); + } + + @FormTest + void testNativeBackendTypeIsCode() { + CodeEditor editor = showNativeEditor(); + assertTrue(editor.isNativeEditor()); + assertTrue(editor.isEditorReady()); + assertEquals("code", implementation.getLastEditorType()); + } + + @FormTest + void testLanguageThemeLineNumbersTabSize() { + CodeEditor editor = showNativeEditor(); + editor.setLanguage("java"); + editor.setTheme("dark"); + editor.setShowLineNumbers(false); + editor.setTabSize(2); + assertEquals("java", editor.getLanguage()); + assertEquals("dark", editor.getTheme()); + assertFalse(editor.isShowLineNumbers()); + assertEquals(2, editor.getTabSize()); + List c = cmds(); + assertTrue(c.contains("setLanguage:java")); + assertTrue(c.contains("setTheme:dark")); + assertTrue(c.contains("setLineNumbers:0")); + assertTrue(c.contains("setTabSize:2")); + } + + @FormTest + void testReadOnlyMapsToEditable() { + CodeEditor editor = showNativeEditor(); + editor.setReadOnly(true); + assertTrue(editor.isReadOnly()); + assertFalse(editor.isEditable()); + assertTrue(cmds().contains("setEditable:0")); + editor.setReadOnly(false); + assertFalse(editor.isReadOnly()); + assertTrue(cmds().contains("setEditable:1")); + } + + @FormTest + void testSetTextAndInsert() { + CodeEditor editor = showNativeEditor(); + editor.setText("public class A {}"); + editor.insertAtCursor("// note"); + assertTrue(cmds().contains("setText:public class A {}")); + assertTrue(cmds().contains("insertText:// note")); + } + + @FormTest + void testConstructorWithLanguageAndText() { + implementation.setEditorNativePeerSupported(true); + CodeEditor editor = new CodeEditor("kotlin", "fun main() {}"); + Form f = new Form("code", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertEquals("kotlin", editor.getLanguage()); + assertTrue(cmds().contains("setLanguage:kotlin")); + assertTrue(cmds().contains("setText:fun main() {}")); + } + + @FormTest + void testGetTextQueryRoundTrip() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> q.equals("getText:") ? "the code" : null); + CodeEditor editor = showNativeEditor(); + AtomicReference result = new AtomicReference<>(); + editor.getText(result::set); + assertEquals("the code", result.get()); + } + + @FormTest + void testGetCursorPositionParsesInteger() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> q.equals("getCursor:") ? "42" : null); + CodeEditor editor = showNativeEditor(); + AtomicReference result = new AtomicReference<>(); + editor.getCursorPosition(result::set); + assertEquals(Integer.valueOf(42), result.get()); + } + + @FormTest + void testCursorPositionDefaultsToZeroOnGarbage() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> "not-a-number"); + CodeEditor editor = showNativeEditor(); + AtomicReference result = new AtomicReference<>(); + editor.getCursorPosition(result::set); + assertEquals(Integer.valueOf(0), result.get()); + } + + @FormTest + void testCompletionProviderEnableDisable() { + CodeEditor editor = showNativeEditor(); + assertNull(editor.getCompletionProvider()); + CodeCompletionProvider p = (ed, code, cursor, results) -> results.onSucess(new ArrayList<>()); + editor.setCompletionProvider(p); + assertSame(p, editor.getCompletionProvider()); + assertTrue(cmds().contains("setCompletionEnabled:1")); + editor.setCompletionProvider(null); + assertTrue(cmds().contains("setCompletionEnabled:0")); + } + + @FormTest + void testCompletionRequestFlowProducesJson() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> q.equals("getText:") ? "Sys" : null); + CodeEditor editor = showNativeEditor(); + + AtomicReference seenCode = new AtomicReference<>(); + AtomicInteger seenCursor = new AtomicInteger(-1); + editor.setCompletionProvider((ed, code, cursor, results) -> { + seenCode.set(code); + seenCursor.set(cursor); + List list = new ArrayList<>(); + list.add(new CodeCompletion("System", "System").setType("class").setDetail("java.lang")); + list.add(new CodeCompletion("System.out", "System.out")); + results.onSucess(list); + }); + + // the native peer would post this when the user triggers completion: reqId 7, cursor 3 + editor.fireEditorEvent("complete", "7:3"); + + assertEquals("Sys", seenCode.get()); + assertEquals(3, seenCursor.get()); + + String last = implementation.getLastEditorCommand(); + assertNotNull(last); + assertTrue(last.startsWith("showCompletions:7:["), "got: " + last); + assertTrue(last.contains("\"d\":\"System\"")); + assertTrue(last.contains("\"i\":\"System\"")); + assertTrue(last.contains("\"t\":\"class\"")); + assertTrue(last.contains("\"x\":\"java.lang\"")); + assertTrue(last.contains("\"d\":\"System.out\"")); + } + + @FormTest + void testCompletionJsonEscaping() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> ""); + CodeEditor editor = showNativeEditor(); + editor.setCompletionProvider((ed, code, cursor, results) -> { + List list = new ArrayList<>(); + list.add(new CodeCompletion("a\"b", "x\ny\\z")); + results.onSucess(list); + }); + editor.fireEditorEvent("complete", "1:0"); + String last = implementation.getLastEditorCommand(); + assertNotNull(last); + assertTrue(last.contains("a\\\"b"), "display quote should be escaped: " + last); + assertTrue(last.contains("x\\ny\\\\z"), "insert newline/backslash should be escaped: " + last); + } + + @FormTest + void testCompletionWithoutProviderIsNoOp() { + CodeEditor editor = showNativeEditor(); + int before = cmds().size(); + editor.fireEditorEvent("complete", "1:0"); + // no provider -> no showCompletions command emitted + for (String c : cmds()) { + assertFalse(c.startsWith("showCompletions:")); + } + // and it must not throw / emit anything new + assertEquals(before, cmds().size()); + } + + @FormTest + void testChangeEventStillDispatchesThroughOverride() { + CodeEditor editor = showNativeEditor(); + AtomicInteger count = new AtomicInteger(); + ActionListener l = e -> count.incrementAndGet(); + editor.addChangeListener(l); + editor.fireEditorEvent("change", null); + assertEquals(1, count.get()); + } + + @FormTest + void testBrowserFallbackUsesCodeEditorPage() { + // no native peer -> cross platform browser backend + CodeEditor editor = new CodeEditor(); + Form f = new Form("code", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertFalse(editor.isNativeEditor()); + assertNotNull(editor.getInternalBrowser()); + } +} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java new file mode 100644 index 0000000000..1c333f7af5 --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java @@ -0,0 +1,283 @@ +package com.codename1.ui; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.events.ActionListener; +import com.codename1.ui.layouts.BorderLayout; + +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * Deep coverage for {@link RichTextArea}. The component routes every operation through the semantic + * command/query channel of {@link AbstractEditorComponent}; these tests drive it against the + * deterministic native editor backend provided by the test implementation so the full command, query, + * event and ready-queue machinery is exercised without a real web view. A couple of tests additionally + * verify the cross-platform {@code BrowserComponent} fallback selection. + */ +class RichTextAreaTest extends UITestBase { + + private void pump() { + for (int i = 0; i < 6; i++) { + flushSerialCalls(); + } + } + + private RichTextArea showNativeEditor() { + implementation.setEditorNativePeerSupported(true); + RichTextArea editor = new RichTextArea(); + Form f = new Form("rt", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + return editor; + } + + private List cmds() { + return implementation.getEditorCommands(); + } + + @FormTest + void testNativeBackendSelectedAndReady() { + RichTextArea editor = showNativeEditor(); + assertTrue(editor.isNativeEditor()); + assertTrue(editor.isEditorReady()); + assertEquals("richtext", implementation.getLastEditorType()); + assertNull(editor.getInternalBrowser()); + } + + @FormTest + void testQueuedCommandsFlushAfterReady() { + implementation.setEditorNativePeerSupported(true); + RichTextArea editor = new RichTextArea(); + // issued before the backend is ready -> must be queued, not lost + editor.setHtml("

queued

"); + editor.bold(); + assertFalse(editor.isEditorReady()); + Form f = new Form("rt", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertTrue(editor.isEditorReady()); + assertTrue(cmds().contains("setHtml:

queued

")); + assertTrue(cmds().contains("bold:")); + } + + @FormTest + void testConstructorWithHtml() { + implementation.setEditorNativePeerSupported(true); + RichTextArea editor = new RichTextArea("hello"); + Form f = new Form("rt", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertTrue(cmds().contains("setHtml:hello")); + } + + @FormTest + void testInlineFormattingCommands() { + RichTextArea editor = showNativeEditor(); + editor.bold(); + editor.italic(); + editor.underline(); + editor.strikeThrough(); + editor.removeFormat(); + editor.undo(); + editor.redo(); + List c = cmds(); + assertTrue(c.contains("bold:")); + assertTrue(c.contains("italic:")); + assertTrue(c.contains("underline:")); + assertTrue(c.contains("strikeThrough:")); + assertTrue(c.contains("removeFormat:")); + assertTrue(c.contains("undo:")); + assertTrue(c.contains("redo:")); + } + + @FormTest + void testListsIndentAndAlignment() { + RichTextArea editor = showNativeEditor(); + editor.insertOrderedList(); + editor.insertUnorderedList(); + editor.indent(); + editor.outdent(); + editor.justifyLeft(); + editor.justifyCenter(); + editor.justifyRight(); + List c = cmds(); + assertTrue(c.contains("insertOrderedList:")); + assertTrue(c.contains("insertUnorderedList:")); + assertTrue(c.contains("indent:")); + assertTrue(c.contains("outdent:")); + assertTrue(c.contains("justifyLeft:")); + assertTrue(c.contains("justifyCenter:")); + assertTrue(c.contains("justifyRight:")); + } + + @FormTest + void testLinkCommands() { + RichTextArea editor = showNativeEditor(); + editor.createLink("https://www.codenameone.com/"); + editor.removeLink(); + assertTrue(cmds().contains("createLink:https://www.codenameone.com/")); + assertTrue(cmds().contains("unlink:")); + } + + @FormTest + void testColorConversionPadsToSixHexDigits() { + RichTextArea editor = showNativeEditor(); + editor.setForegroundColor(0xff0000); + editor.setForegroundColor(0x0000ff); + editor.setForegroundColor(0x000000); + editor.setHighlightColor(0x00ff00); + List c = cmds(); + assertTrue(c.contains("foreColor:#ff0000")); + assertTrue(c.contains("foreColor:#0000ff")); + assertTrue(c.contains("foreColor:#000000")); + assertTrue(c.contains("hiliteColor:#00ff00")); + } + + @FormTest + void testBlockFormatAndFontSize() { + RichTextArea editor = showNativeEditor(); + editor.setBlockFormat("h1"); + editor.setFontSize(5); + assertTrue(cmds().contains("formatBlock:h1")); + assertTrue(cmds().contains("fontSize:5")); + } + + @FormTest + void testInsertHtmlAndImage() { + RichTextArea editor = showNativeEditor(); + editor.insertHtml("x"); + editor.insertImage("https://example.com/a.png"); + assertTrue(cmds().contains("insertHtml:x")); + assertTrue(cmds().contains("insertImage:https://example.com/a.png")); + } + + @FormTest + void testPlaceholder() { + RichTextArea editor = showNativeEditor(); + editor.setPlaceholder("Write something..."); + assertEquals("Write something...", editor.getPlaceholder()); + assertTrue(cmds().contains("setPlaceholder:Write something...")); + } + + @FormTest + void testEditableToggle() { + RichTextArea editor = showNativeEditor(); + assertTrue(editor.isEditable()); + editor.setEditable(false); + assertFalse(editor.isEditable()); + assertTrue(cmds().contains("setEditable:0")); + editor.setEditable(true); + assertTrue(editor.isEditable()); + assertTrue(cmds().contains("setEditable:1")); + } + + @FormTest + void testFocusAndBlur() { + RichTextArea editor = showNativeEditor(); + editor.focusEditor(); + editor.blurEditor(); + assertTrue(cmds().contains("focus:")); + assertTrue(cmds().contains("blur:")); + } + + @FormTest + void testGetHtmlQueryRoundTrip() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> q.equals("getHtml:") ? "

stored

" : null); + RichTextArea editor = showNativeEditor(); + AtomicReference result = new AtomicReference<>(); + editor.getHtml(result::set); + assertEquals("

stored

", result.get()); + } + + @FormTest + void testGetTextQueryRoundTrip() { + implementation.setEditorNativePeerSupported(true); + implementation.setEditorQueryResponder(q -> q.equals("getText:") ? "plain text" : null); + RichTextArea editor = showNativeEditor(); + AtomicReference result = new AtomicReference<>(); + editor.getText(result::set); + assertEquals("plain text", result.get()); + } + + @FormTest + void testChangeListenerFiresAndDetaches() { + RichTextArea editor = showNativeEditor(); + AtomicInteger count = new AtomicInteger(); + ActionListener l = e -> count.incrementAndGet(); + editor.addChangeListener(l); + editor.fireEditorEvent("change", null); + editor.fireEditorEvent("change", null); + assertEquals(2, count.get()); + editor.removeChangeListener(l); + editor.fireEditorEvent("change", null); + assertEquals(2, count.get()); + } + + @FormTest + void testReadyListenerFiresImmediatelyWhenAlreadyReady() { + RichTextArea editor = showNativeEditor(); + AtomicInteger count = new AtomicInteger(); + editor.addReadyListener(e -> count.incrementAndGet()); + assertEquals(1, count.get()); + } + + @FormTest + void testReadyListenerFiresAfterInitialization() { + implementation.setEditorNativePeerSupported(true); + RichTextArea editor = new RichTextArea(); + AtomicInteger count = new AtomicInteger(); + editor.addReadyListener(e -> count.incrementAndGet()); + assertEquals(0, count.get()); + Form f = new Form("rt", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertEquals(1, count.get()); + } + + // --- cross platform BrowserComponent fallback --- + + @FormTest + void testBrowserFallbackSelectedWhenNoNativePeer() { + // editorNativePeerSupported defaults to false -> no native peer -> browser fallback + RichTextArea editor = new RichTextArea(); + Form f = new Form("rt", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertFalse(editor.isNativeEditor()); + assertNotNull(editor.getInternalBrowser()); + } + + @FormTest + void testBrowserFallbackBecomesReadyOnLoadAndRoutesCommands() { + RichTextArea editor = new RichTextArea(); + Form f = new Form("rt", new BorderLayout()); + f.add(BorderLayout.CENTER, editor); + f.show(); + pump(); + assertFalse(editor.isEditorReady()); + // simulate the web view finishing load -> editor becomes ready + editor.getInternalBrowser().fireWebEvent(BrowserComponent.onLoad, new com.codename1.ui.events.ActionEvent(editor)); + pump(); + assertTrue(editor.isEditorReady()); + editor.bold(); + pump(); + boolean routed = false; + for (String s : implementation.getBrowserExecuted()) { + if (s.contains("cn1editor.cmd") && s.contains("bold")) { + routed = true; + break; + } + } + assertTrue(routed, "bold() should be routed to the browser backend as a cn1editor.cmd call"); + } +} diff --git a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java index 5d972fe9dc..250d37a9f9 100644 --- a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java +++ b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java @@ -4,6 +4,8 @@ import com.codename1.io.JSONParser; import com.codename1.ui.BrowserComponent; import com.codename1.ui.CN; +import com.codename1.ui.CodeDiagnostic; +import com.codename1.ui.CodeEditor; import com.codename1.ui.Component; import com.codename1.ui.Container; import com.codename1.ui.TextArea; @@ -13,10 +15,20 @@ import com.codename1.util.CallbackAdapter; import java.io.IOException; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +/** + * The Playground code/CSS editor. + * + * On the HTML5 (web) port it hosts the Monaco editor in a {@link BrowserComponent} exactly as before + * (unchanged, so the web Playground is not regressed). On every other platform - the JavaSE simulator, + * desktop, iOS and Android - it now uses the native {@link CodeEditor} component (syntax highlighting, + * line numbers, themes, code completion driven by the same Codename One API metadata, and diagnostics) + * instead of the previous bare {@link TextArea} fallback. + */ final class PlaygroundBrowserEditor { interface Listener { void onSourceChanged(String source, int version); @@ -42,14 +54,18 @@ String monacoLanguage() { private final String metadataJson; private final Mode mode; private final BrowserComponent browser; - private final TextArea fallbackEditor; - private final TextArea fallbackMessages; + private final CodeEditor codeEditor; + private final TextArea messages; + private final PlaygroundCompletion completion; + private TextArea fallbackEditor; + private boolean usingFallback; private String pendingSource = ""; private String pendingMarkersJson = "[]"; private String pendingMessagesJson = "[]"; private String pendingUiidsJson = "[]"; private boolean pendingDarkMode; private boolean ready; + private int readyVersion; PlaygroundBrowserEditor(Mode mode, String source, boolean darkMode, Listener listener) { this.mode = mode == null ? Mode.JAVA : mode; @@ -60,8 +76,9 @@ String monacoLanguage() { if (shouldUseBrowserEditor()) { browser = new BrowserComponent(); browser.putClientProperty("HTML5Peer.removeOnDeinitialize", Boolean.FALSE); - fallbackEditor = null; - fallbackMessages = null; + codeEditor = null; + messages = null; + completion = null; component = browser; browser.addWebEventListener(BrowserComponent.onMessage, this::handleMessage); try { @@ -77,29 +94,91 @@ public void onSucess(BrowserComponent value) { }); } else { browser = null; - fallbackEditor = new TextArea(pendingSource, 20, 80, TextArea.ANY); - fallbackEditor.setUIID("TextArea"); - fallbackEditor.setEditable(true); - fallbackEditor.setSingleLineTextArea(false); - fallbackEditor.getAllStyles().setPaddingUnit(Style.UNIT_TYPE_DIPS); - fallbackEditor.getAllStyles().setPadding(1.5f, 1.5f, 1.5f, 1.5f); - fallbackEditor.addDataChangedListener((type, index) -> { - pendingSource = fallbackEditor.getText(); + completion = new PlaygroundCompletion( + this.mode == Mode.CSS ? PlaygroundCompletion.Mode.CSS : PlaygroundCompletion.Mode.JAVA, + metadataJson, Collections.emptyList()); + codeEditor = new CodeEditor(); + codeEditor.setLanguage(this.mode.monacoLanguage()); + codeEditor.setShowLineNumbers(true); + codeEditor.setTheme(darkMode ? "dark" : "light"); + codeEditor.setText(pendingSource); + codeEditor.setCompletionProvider(completion); + codeEditor.addChangeListener(evt -> codeEditor.getText(text -> { + pendingSource = text == null ? "" : text; listener.onSourceChanged(pendingSource, ++readyVersion); - }); - fallbackMessages = new TextArea("", 4, 80, TextArea.ANY); - fallbackMessages.setEditable(false); - fallbackMessages.setSingleLineTextArea(false); - fallbackMessages.setUIID("Label"); + })); + messages = new TextArea("", 4, 80, TextArea.ANY); + messages.setEditable(false); + messages.setSingleLineTextArea(false); + messages.setUIID("Label"); + messages.setVisible(false); Container wrapper = new Container(new BorderLayout()); - wrapper.add(BorderLayout.CENTER, fallbackEditor); - wrapper.add(BorderLayout.SOUTH, fallbackMessages); + wrapper.add(BorderLayout.CENTER, codeEditor); + wrapper.add(BorderLayout.SOUTH, messages); component = wrapper; - applyThemeToFallback(darkMode); + applyThemeToMessages(darkMode); + // CodeEditor renders inside the platform web widget. On platforms/JDKs where that widget + // cannot initialise (e.g. CEF unavailable in a desktop simulator) the editor never becomes + // ready; in that case we transparently fall back to a plain TextArea so the Playground is + // never left without a usable editor - guaranteeing no regression versus the old behavior. + startFallbackWatchdog(); } } - private int readyVersion; + private void startFallbackWatchdog() { + Thread t = new Thread(new Runnable() { + public void run() { + try { + Thread.sleep(5000); + } catch (InterruptedException ex) { + // ignore + } + CN.callSerially(new Runnable() { + public void run() { + if (!usingFallback && (codeEditor == null || !codeEditor.isEditorReady())) { + activateFallback(); + } + } + }); + } + }); + t.start(); + } + + private void activateFallback() { + if (usingFallback || component == null) { + return; + } + usingFallback = true; + fallbackEditor = new TextArea(pendingSource, 20, 80, TextArea.ANY); + fallbackEditor.setUIID("TextArea"); + fallbackEditor.setSingleLineTextArea(false); + fallbackEditor.getAllStyles().setPaddingUnit(Style.UNIT_TYPE_DIPS); + fallbackEditor.getAllStyles().setPadding(1.5f, 1.5f, 1.5f, 1.5f); + fallbackEditor.addDataChangedListener((type, index) -> { + pendingSource = fallbackEditor.getText(); + listener.onSourceChanged(pendingSource, ++readyVersion); + }); + Container wrapper = (Container) component; + if (codeEditor != null) { + wrapper.removeComponent(codeEditor); + } + wrapper.add(BorderLayout.CENTER, fallbackEditor); + applyThemeToFallback(pendingDarkMode); + wrapper.revalidate(); + } + + private void applyThemeToFallback(boolean darkMode) { + if (fallbackEditor == null) { + return; + } + int bg = darkMode ? 0x0f172a : 0xffffff; + int fg = darkMode ? 0xe2e8f0 : 0x0f172a; + fallbackEditor.getAllStyles().setBgColor(bg); + fallbackEditor.getAllStyles().setFgColor(fg); + fallbackEditor.getAllStyles().setBgTransparency(255); + fallbackEditor.repaint(); + } Component getComponent() { return component; @@ -108,8 +187,12 @@ Component getComponent() { void setSource(String source) { pendingSource = source == null ? "" : source; if (browser == null) { - if (!pendingSource.equals(fallbackEditor.getText())) { - fallbackEditor.setText(pendingSource); + if (usingFallback) { + if (!pendingSource.equals(fallbackEditor.getText())) { + fallbackEditor.setText(pendingSource); + } + } else { + codeEditor.setText(pendingSource); } return; } @@ -121,7 +204,10 @@ void setSource(String source) { void setMarkers(List diagnostics) { pendingMarkersJson = toMarkersJson(diagnostics); if (browser == null) { - renderFallbackMessages(diagnostics, null); + if (!usingFallback) { + codeEditor.setDiagnostics(toCodeDiagnostics(diagnostics)); + } + renderMessages(diagnostics, null); return; } if (ready) { @@ -129,10 +215,10 @@ void setMarkers(List diagnostics) { } } - void setInlineMessages(List messages) { - pendingMessagesJson = toMessagesJson(messages); + void setInlineMessages(List inlineMessages) { + pendingMessagesJson = toMessagesJson(inlineMessages); if (browser == null) { - renderFallbackMessages(null, messages); + renderMessages(null, inlineMessages); return; } if (ready) { @@ -143,7 +229,12 @@ void setInlineMessages(List messages) { void applyTheme(boolean darkMode) { pendingDarkMode = darkMode; if (browser == null) { - applyThemeToFallback(darkMode); + if (usingFallback) { + applyThemeToFallback(darkMode); + } else { + codeEditor.setTheme(darkMode ? "dark" : "light"); + } + applyThemeToMessages(darkMode); return; } if (ready) { @@ -153,11 +244,47 @@ void applyTheme(boolean darkMode) { void setUiidCompletions(List uiids) { pendingUiidsJson = toUiidJson(uiids); - if (browser != null && ready) { + if (browser == null) { + if (completion != null) { + completion.setUiids(uiids); + } + return; + } + if (ready) { browser.execute("window.PlaygroundEditor && window.PlaygroundEditor.setUiids(" + pendingUiidsJson + ");"); } } + private List toCodeDiagnostics(List diagnostics) { + List out = new ArrayList(); + if (diagnostics == null) { + return out; + } + for (int i = 0; i < diagnostics.size(); i++) { + PlaygroundRunner.Diagnostic d = diagnostics.get(i); + int line = d.line > 0 ? d.line : 1; + int col = d.column > 0 ? d.column : 1; + int endLine = d.endLine > 0 ? d.endLine : line; + int endCol = d.endColumn > 0 ? d.endColumn : col + 1; + out.add(new CodeDiagnostic(line, col, endLine, endCol, d.message).setSeverity(mapSeverity(d.severity))); + } + return out; + } + + private String mapSeverity(String severity) { + if (severity == null) { + return CodeDiagnostic.ERROR; + } + String s = severity.toLowerCase(); + if (s.indexOf("warn") >= 0) { + return CodeDiagnostic.WARNING; + } + if (s.indexOf("info") >= 0 || s.indexOf("hint") >= 0) { + return CodeDiagnostic.INFO; + } + return CodeDiagnostic.ERROR; + } + private void flush() { if (browser == null) { return; @@ -186,25 +313,21 @@ private boolean shouldUseBrowserEditor() { return "HTML5".equals(CN.getPlatformName()); } - private void applyThemeToFallback(boolean darkMode) { - if (fallbackEditor == null || fallbackMessages == null) { + private void applyThemeToMessages(boolean darkMode) { + if (messages == null) { return; } int bg = darkMode ? 0x0f172a : 0xffffff; int fg = darkMode ? 0xe2e8f0 : 0x0f172a; - fallbackEditor.getAllStyles().setBgColor(bg); - fallbackEditor.getAllStyles().setFgColor(fg); - fallbackEditor.getAllStyles().setBgTransparency(255); - fallbackMessages.getAllStyles().setBgColor(bg); - fallbackMessages.getAllStyles().setFgColor(fg); - fallbackMessages.getAllStyles().setBgTransparency(255); - fallbackMessages.setVisible(fallbackMessages.getText() != null && fallbackMessages.getText().length() > 0); - fallbackEditor.repaint(); - fallbackMessages.repaint(); + messages.getAllStyles().setBgColor(bg); + messages.getAllStyles().setFgColor(fg); + messages.getAllStyles().setBgTransparency(255); + messages.setVisible(messages.getText() != null && messages.getText().length() > 0); + messages.repaint(); } - private void renderFallbackMessages(List diagnostics, List messages) { - if (fallbackMessages == null) { + private void renderMessages(List diagnostics, List inlineMessages) { + if (messages == null) { return; } StringBuilder out = new StringBuilder(); @@ -220,17 +343,17 @@ private void renderFallbackMessages(List diagnostic out.append(diagnostic.message); } } - if (messages != null) { - for (int i = 0; i < messages.size(); i++) { - PlaygroundRunner.InlineMessage message = messages.get(i); + if (inlineMessages != null) { + for (int i = 0; i < inlineMessages.size(); i++) { + PlaygroundRunner.InlineMessage message = inlineMessages.get(i); if (out.length() > 0) { out.append('\n'); } out.append(message.text); } } - fallbackMessages.setText(out.toString()); - fallbackMessages.setVisible(out.length() > 0); + messages.setText(out.toString()); + messages.setVisible(out.length() > 0); ((Container) component).revalidate(); } @@ -266,12 +389,6 @@ private void handleMessage(ActionEvent event) { } String text = asString(payload.get("text")); int version = asInt(payload.get("version")); - // Keep pendingSource current with what the user has typed. If the - // editor iframe is ever reloaded/re-bootstrapped (peer recreation), - // flush() re-sends pendingSource -- if that were still the stale - // bootstrap source it would wipe the user's edits ("typed char erased - // immediately"). Tracking the latest text here makes a re-bootstrap - // restore the current content instead. pendingSource = text == null ? "" : text; listener.onSourceChanged(text, version); } @@ -326,11 +443,11 @@ private String toMarkersJson(List diagnostics) { return out.toString(); } - private String toMessagesJson(List messages) { + private String toMessagesJson(List inlineMessages) { StringBuilder out = new StringBuilder(); out.append('['); - for (int i = 0; i < messages.size(); i++) { - PlaygroundRunner.InlineMessage message = messages.get(i); + for (int i = 0; i < inlineMessages.size(); i++) { + PlaygroundRunner.InlineMessage message = inlineMessages.get(i); if (i > 0) { out.append(','); } diff --git a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundCompletion.java b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundCompletion.java new file mode 100644 index 0000000000..1fb1ad33b0 --- /dev/null +++ b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundCompletion.java @@ -0,0 +1,319 @@ +package com.codenameone.playground; + +import com.codename1.io.CharArrayReader; +import com.codename1.io.JSONParser; +import com.codename1.ui.CodeCompletion; +import com.codename1.ui.CodeCompletionProvider; +import com.codename1.ui.CodeEditor; +import com.codename1.util.SuccessCallback; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Metadata-driven {@link CodeCompletionProvider} for the Playground's {@link CodeEditor}. It reuses the + * same Codename One API metadata that the Monaco integration consumes (types, members, globals) to offer + * member completion after {@code .}, plus global/type/keyword completion for Java, and UIID/state/property + * completion for CSS. Completion runs synchronously in memory off the parsed metadata. + */ +final class PlaygroundCompletion implements CodeCompletionProvider { + enum Mode { JAVA, CSS } + + private static final String[] JAVA_KEYWORDS = { + "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "continue", + "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "if", + "implements", "import", "instanceof", "int", "interface", "long", "new", "package", "private", + "protected", "public", "return", "short", "static", "super", "switch", "this", "throw", "throws", + "try", "void", "volatile", "while", "true", "false", "null" + }; + + private static final String[] CSS_PROPERTIES = { + "color", "background-color", "background", "font", "font-family", "font-size", "font-weight", + "border", "border-radius", "padding", "margin", "width", "height", "min-width", "min-height", + "max-width", "max-height", "text-align", "opacity", "cn1-border-type", "cn1-background-type", + "cn1-derive", "display", "align-items", "justify-content" + }; + + private static final String[] CSS_STATES = {"pressed", "selected", "disabled", "unselected"}; + + private final Mode mode; + private final Map globals = new HashMap(); + private final Map> types = new HashMap>(); + private final Map simpleToQualified = new HashMap(); + private final List simpleNames = new ArrayList(); + private List uiids = new ArrayList(); + + PlaygroundCompletion(Mode mode, String metadataJson, List uiids) { + this.mode = mode == null ? Mode.JAVA : mode; + if (uiids != null) { + this.uiids = new ArrayList(uiids); + } + parse(metadataJson); + } + + void setUiids(List uiids) { + this.uiids = uiids == null ? new ArrayList() : new ArrayList(uiids); + } + + @SuppressWarnings("unchecked") + private void parse(String metadataJson) { + if (metadataJson == null || metadataJson.length() == 0) { + return; + } + try { + Map root = new JSONParser().parseJSON(new CharArrayReader(metadataJson.toCharArray())); + Object g = root.get("globals"); + if (g instanceof Map) { + for (Map.Entry e : ((Map) g).entrySet()) { + globals.put(e.getKey(), String.valueOf(e.getValue())); + } + } + Object t = root.get("types"); + if (t instanceof Map) { + for (Map.Entry e : ((Map) t).entrySet()) { + String qualified = e.getKey(); + if (!(e.getValue() instanceof Map)) { + continue; + } + Map info = (Map) e.getValue(); + types.put(qualified, info); + String simple = String.valueOf(info.get("simple")); + if (simple.length() > 0 && !"null".equals(simple)) { + if (!simpleToQualified.containsKey(simple)) { + simpleToQualified.put(simple, qualified); + simpleNames.add(simple); + } + } + } + } + } catch (IOException ignored) { + } + } + + public void getCompletions(CodeEditor editor, String code, int cursor, SuccessCallback> results) { + if (code == null) { + code = ""; + } + if (cursor < 0) { + cursor = 0; + } + if (cursor > code.length()) { + cursor = code.length(); + } + if (mode == Mode.CSS) { + results.onSucess(cssCompletions(code, cursor)); + } else { + results.onSucess(javaCompletions(code, cursor)); + } + } + + private List javaCompletions(String code, int cursor) { + List out = new ArrayList(); + int start = cursor; + while (start > 0 && isIdChar(code.charAt(start - 1))) { + start--; + } + String prefix = code.substring(start, cursor); + // member access? the char just before the identifier is a dot + if (start > 0 && code.charAt(start - 1) == '.') { + String receiver = receiverToken(code, start - 1); + String qualified = inferType(receiver, code); + if (qualified != null) { + addMembers(out, qualified, prefix); + } + return out; + } + String lower = prefix.toLowerCase(); + for (String name : globals.keySet()) { + if (matches(name, lower)) { + out.add(new CodeCompletion(name).setType("variable").setDetail(simpleOf(globals.get(name)))); + } + } + for (int i = 0; i < simpleNames.size() && out.size() < 60; i++) { + String simple = simpleNames.get(i); + if (matches(simple, lower)) { + out.add(new CodeCompletion(simple).setType("class").setDetail(simpleToQualified.get(simple))); + } + } + for (String kw : JAVA_KEYWORDS) { + if (matches(kw, lower)) { + out.add(new CodeCompletion(kw).setType("keyword")); + } + } + return out; + } + + @SuppressWarnings("unchecked") + private void addMembers(List out, String qualified, String prefix) { + Map info = types.get(qualified); + if (info == null) { + return; + } + String lower = prefix.toLowerCase(); + Object methods = info.get("methods"); + if (methods instanceof List) { + for (Object m : (List) methods) { + String sig = String.valueOf(m); + String name = methodName(sig); + if (matches(name, lower) && out.size() < 80) { + boolean hasArgs = sig.indexOf('(') >= 0 && sig.indexOf("()") < 0; + out.add(new CodeCompletion(sig, name + "(").setType("method")); + } + } + } + Object fields = info.get("fields"); + if (fields instanceof List) { + for (Object f : (List) fields) { + String name = String.valueOf(f); + if (matches(name, lower) && out.size() < 80) { + out.add(new CodeCompletion(name).setType("field")); + } + } + } + } + + /// Infers the qualified type of a receiver token: a known global, a static type reference (simple + /// name), or a local variable declared earlier as "Type receiver" / "receiver = new Type(". + private String inferType(String receiver, String code) { + if (receiver == null || receiver.length() == 0) { + return null; + } + if (globals.containsKey(receiver)) { + return globals.get(receiver); + } + if (simpleToQualified.containsKey(receiver)) { + return simpleToQualified.get(receiver); + } + // "Type receiver" declaration + String declared = findDeclaredType(code, receiver); + if (declared != null && simpleToQualified.containsKey(declared)) { + return simpleToQualified.get(declared); + } + return null; + } + + private String findDeclaredType(String code, String receiver) { + // look for " " or " = new (" + int idx = code.indexOf(receiver); + while (idx >= 0) { + // case: receiver = new Type( + int eq = skipSpaces(code, idx + receiver.length()); + if (eq < code.length() && code.charAt(eq) == '=') { + int afterEq = skipSpaces(code, eq + 1); + if (code.startsWith("new ", afterEq)) { + int ts = skipSpaces(code, afterEq + 4); + String type = readIdentifier(code, ts); + if (type.length() > 0) { + return type; + } + } + } + // case: Type receiver (token immediately before receiver is a simple type) + int before = idx - 1; + while (before >= 0 && code.charAt(before) == ' ') { + before--; + } + int endTok = before + 1; + while (before >= 0 && isIdChar(code.charAt(before))) { + before--; + } + String type = code.substring(before + 1, endTok); + if (type.length() > 0 && isUpper(type.charAt(0)) + && simpleToQualified.containsKey(type)) { + return type; + } + idx = code.indexOf(receiver, idx + 1); + } + return null; + } + + private List cssCompletions(String code, int cursor) { + List out = new ArrayList(); + int start = cursor; + while (start > 0 && isIdChar(code.charAt(start - 1))) { + start--; + } + String prefix = code.substring(start, cursor).toLowerCase(); + boolean afterDot = start > 0 && code.charAt(start - 1) == '.'; + if (afterDot) { + for (String state : CSS_STATES) { + if (matches(state, prefix)) { + out.add(new CodeCompletion(state).setType("state")); + } + } + return out; + } + for (int i = 0; i < uiids.size(); i++) { + String uiid = uiids.get(i); + if (uiid != null && matches(uiid, prefix)) { + out.add(new CodeCompletion(uiid).setType("uiid")); + } + } + for (String prop : CSS_PROPERTIES) { + if (matches(prop, prefix)) { + out.add(new CodeCompletion(prop, prop + ": ").setType("property")); + } + } + return out; + } + + private static String receiverToken(String code, int dotIndex) { + int end = dotIndex; + int i = dotIndex - 1; + while (i >= 0 && isIdChar(code.charAt(i))) { + i--; + } + return code.substring(i + 1, end); + } + + private static String methodName(String signature) { + int paren = signature.indexOf('('); + String name = paren >= 0 ? signature.substring(0, paren) : signature; + int sp = name.lastIndexOf(' '); + return sp >= 0 ? name.substring(sp + 1) : name; + } + + private String simpleOf(String qualified) { + if (qualified == null) { + return ""; + } + int dot = qualified.lastIndexOf('.'); + return dot >= 0 ? qualified.substring(dot + 1) : qualified; + } + + private static boolean matches(String candidate, String lowerPrefix) { + if (candidate == null) { + return false; + } + if (lowerPrefix.length() == 0) { + return true; + } + return candidate.toLowerCase().indexOf(lowerPrefix) >= 0; + } + + private static boolean isIdChar(char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_' || c == '$'; + } + + private static boolean isUpper(char c) { + return c >= 'A' && c <= 'Z'; + } + + private static int skipSpaces(String code, int i) { + while (i < code.length() && (code.charAt(i) == ' ' || code.charAt(i) == '\t')) { + i++; + } + return i; + } + + private static String readIdentifier(String code, int i) { + int s = i; + while (i < code.length() && isIdChar(code.charAt(i))) { + i++; + } + return code.substring(s, i); + } +} diff --git a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java index 3d6d666a68..0bb07a6fc7 100644 --- a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java +++ b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java @@ -198,6 +198,8 @@ private static int testTimeoutMs(BaseTest testClass) { new ChartTransformScreenshotTest(), new ChartRotatedScreenshotTest(), new BrowserComponentScreenshotTest(), + new RichTextAreaScreenshotTest(), + new CodeEditorScreenshotTest(), new MediaPlaybackScreenshotTest(), new SheetScreenshotTest(), new SheetSlideUpAnimationScreenshotTest(), @@ -432,8 +434,12 @@ private static boolean isJsSkippedNativeTest(String testName) { // BrowserComponent's iframe ``load`` event isn't routed // through the worker-callback transport, so the test waits on // its own ``readyRunnable`` indefinitely. Tracked under - // ``browserComponentLoadEvent`` in port.js. - || "BrowserComponentScreenshotTest".equals(testName); + // ``browserComponentLoadEvent`` in port.js. RichTextArea and + // CodeEditor are built on the same web widget, so they hit the + // identical iframe-load gap and are skipped here too. + || "BrowserComponentScreenshotTest".equals(testName) + || "RichTextAreaScreenshotTest".equals(testName) + || "CodeEditorScreenshotTest".equals(testName); } private static boolean isJsSkippedKnownRuntimeBug(String testName) { diff --git a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/CodeEditorScreenshotTest.java b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/CodeEditorScreenshotTest.java new file mode 100644 index 0000000000..02597cf226 --- /dev/null +++ b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/CodeEditorScreenshotTest.java @@ -0,0 +1,63 @@ +package com.codenameone.examples.hellocodenameone.tests; + +import com.codename1.ui.BrowserComponent; +import com.codename1.ui.CodeEditor; +import com.codename1.ui.Form; +import com.codename1.ui.layouts.BorderLayout; +import com.codename1.ui.util.UITimer; + +/** + * Screenshot coverage for {@link CodeEditor}. Renders a read-only (caret-free, for a deterministic + * capture) Java snippet with the line-number gutter and syntax highlighting. The editor is hosted in + * the native web widget, so we wait for it to become ready and then settle before capturing. + */ +public class CodeEditorScreenshotTest extends BaseTest { + private CodeEditor editor; + private Form form; + private Runnable readyRunnable; + private boolean ready; + + @Override + public boolean runTest() throws Exception { + if (!BrowserComponent.isNativeBrowserSupported()) { + done(); + return true; + } + form = createForm("Code Editor", new BorderLayout(), "CodeEditor"); + editor = new CodeEditor(); + editor.setLanguage("java"); + editor.setShowLineNumbers(true); + // read-only -> no caret, deterministic capture of the highlighted source + editor.setReadOnly(true); + editor.setText("public class Main {\n" + + " public static void main(String[] args) {\n" + + " // greet the user\n" + + " int count = 3;\n" + + " for (int i = 0; i < count; i++) {\n" + + " System.out.println(\"hello \" + i);\n" + + " }\n" + + " }\n" + + "}\n"); + editor.addReadyListener(evt -> { + ready = true; + maybeSettle(); + }); + form.add(BorderLayout.CENTER, editor); + form.show(); + return true; + } + + @Override + protected void registerReadyCallback(Form parent, final Runnable run) { + this.readyRunnable = run; + maybeSettle(); + } + + private void maybeSettle() { + if (!ready || readyRunnable == null) { + return; + } + UITimer.timer(2000, false, form, readyRunnable); + readyRunnable = null; + } +} diff --git a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/RichTextAreaScreenshotTest.java b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/RichTextAreaScreenshotTest.java new file mode 100644 index 0000000000..dc5a231050 --- /dev/null +++ b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/RichTextAreaScreenshotTest.java @@ -0,0 +1,59 @@ +package com.codenameone.examples.hellocodenameone.tests; + +import com.codename1.ui.BrowserComponent; +import com.codename1.ui.Form; +import com.codename1.ui.RichTextArea; +import com.codename1.ui.layouts.BorderLayout; +import com.codename1.ui.util.UITimer; + +/** + * Screenshot coverage for {@link RichTextArea}. Renders a non-editable (caret-free, for a + * deterministic capture) rich text document exercising headings, bold/italic, a colored span, a link + * and a bulleted list. The editor is hosted in the native web widget, so we wait for the editor to + * become ready and then let it settle before capturing - mirroring {@link BrowserComponentScreenshotTest}. + */ +public class RichTextAreaScreenshotTest extends BaseTest { + private RichTextArea editor; + private Form form; + private Runnable readyRunnable; + private boolean ready; + + @Override + public boolean runTest() throws Exception { + if (!BrowserComponent.isNativeBrowserSupported()) { + done(); + return true; + } + form = createForm("Rich Text", new BorderLayout(), "RichTextArea"); + editor = new RichTextArea(); + // capture the rendered document without a blinking caret for determinism + editor.setEditable(false); + editor.setHtml("

Trip itinerary

" + + "

Meet at the main lobby by 9:00 AM. Bring a " + + "valid passport and your " + + "boarding pass.

" + + "
  • Day 1 — city tour
  • Day 2 — museum & harbor
  • " + + "
  • Day 3 — free time
"); + editor.addReadyListener(evt -> { + ready = true; + maybeSettle(); + }); + form.add(BorderLayout.CENTER, editor); + form.show(); + return true; + } + + @Override + protected void registerReadyCallback(Form parent, final Runnable run) { + this.readyRunnable = run; + maybeSettle(); + } + + private void maybeSettle() { + if (!ready || readyRunnable == null) { + return; + } + UITimer.timer(2000, false, form, readyRunnable); + readyRunnable = null; + } +} From dd8c83e2ef22c2668c8cd1afea350617fff1fecf Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 23 Jun 2026 20:17:36 +0300 Subject: [PATCH 2/6] Fix CI and iOS rendering for the editor API - iOS: RichTextArea showed black because the native web widget is created transparent (WKWebView opaque=NO) and the editor page had no background, so the dark peer showed through. Give the page an opaque white background and pin color-scheme:light (also on CodeEditor) so device dark mode does not invert it. - SpotBugs (build-test 8): remove the unread pendingText/pendingHtml fields, make CodeEditorHtml.PAGE a runtime constant (static initializer) so the ~13KB string is not inlined/duplicated into other classes, and convert the three flagged anonymous callbacks into named static nested classes. - Vale (developer guide): fix five contraction/style alerts in the new sections. - Screenshot tests: remove RichTextArea/CodeEditor screenshot screens. The BrowserComponent-backed editors hang the screenshot suite on tvOS/watchOS (no reliable web view there, and those sub-platforms can't be distinguished from iOS at runtime). The 33 unit tests + engine rendering already cover the editors. - Playground: revert the CodeEditor dogfood from this PR. The Playground smoke test intentionally builds against the released CN1 (which lacks CodeEditor), so the integration can't compile there yet; it lands once CodeEditor ships in a release. Proven locally against the in-repo core. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../codename1/ui/AbstractEditorComponent.java | 18 +- .../src/com/codename1/ui/CodeEditor.java | 32 +- .../src/com/codename1/ui/CodeEditorHtml.java | 12 +- .../src/com/codename1/ui/RichTextArea.java | 26 +- .../The-Components-Of-Codename-One.asciidoc | 10 +- .../playground/PlaygroundBrowserEditor.java | 229 +++---------- .../playground/PlaygroundCompletion.java | 319 ------------------ .../tests/Cn1ssDeviceRunner.java | 10 +- .../tests/CodeEditorScreenshotTest.java | 63 ---- .../tests/RichTextAreaScreenshotTest.java | 59 ---- 10 files changed, 123 insertions(+), 655 deletions(-) delete mode 100644 scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundCompletion.java delete mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/CodeEditorScreenshotTest.java delete mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/RichTextAreaScreenshotTest.java diff --git a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java index 730a6f6b49..ad7ac53741 100644 --- a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java +++ b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java @@ -273,11 +273,19 @@ public void run() { } browser.execute("callback.onSuccess(window.cn1editor.query(${0}, ${1}))", new Object[]{name, arg == null ? "" : arg}, - new SuccessCallback() { - public void onSucess(BrowserComponent.JSRef value) { - callback.onSucess(value == null ? null : value.getValue()); - } - }); + new JSRefStringCallback(callback)); + } + + private static final class JSRefStringCallback implements SuccessCallback { + private final SuccessCallback delegate; + + JSRefStringCallback(SuccessCallback delegate) { + this.delegate = delegate; + } + + public void onSucess(BrowserComponent.JSRef value) { + delegate.onSucess(value == null ? null : value.getValue()); + } } /// Runs the supplied task once the editor backend is ready, or immediately if it already is. diff --git a/CodenameOne/src/com/codename1/ui/CodeEditor.java b/CodenameOne/src/com/codename1/ui/CodeEditor.java index 525d58dc2a..76f510d6e9 100644 --- a/CodenameOne/src/com/codename1/ui/CodeEditor.java +++ b/CodenameOne/src/com/codename1/ui/CodeEditor.java @@ -61,7 +61,6 @@ public class CodeEditor extends AbstractEditorComponent { private String theme = "light"; private boolean showLineNumbers = true; private int tabSize = 4; - private String pendingText; private String engineUrl; private CodeCompletionProvider completionProvider; @@ -94,7 +93,6 @@ String getEditorType() { /// /// - `text`: the source code public void setText(String text) { - pendingText = text; command("setText", text == null ? "" : text); } @@ -198,19 +196,27 @@ public void insertAtCursor(String text) { /// /// - `callback`: receives the caret offset as an Integer public void getCursorPosition(final SuccessCallback callback) { - query("getCursor", null, new SuccessCallback() { - public void onSucess(String value) { - int v = 0; - try { - if (value != null && value.length() > 0) { - v = Integer.parseInt(value.trim()); - } - } catch (NumberFormatException err) { - v = 0; + query("getCursor", null, new StringToIntCallback(callback)); + } + + private static final class StringToIntCallback implements SuccessCallback { + private final SuccessCallback delegate; + + StringToIntCallback(SuccessCallback delegate) { + this.delegate = delegate; + } + + public void onSucess(String value) { + int v = 0; + try { + if (value != null && value.length() > 0) { + v = Integer.parseInt(value.trim()); } - callback.onSucess(Integer.valueOf(v)); + } catch (NumberFormatException err) { + v = 0; } - }); + delegate.onSucess(Integer.valueOf(v)); + } } /// Sets the diagnostics (errors / warnings / hints) displayed in the editor as squiggly underlines, diff --git a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java index c02bae8faa..15e188f54f 100644 --- a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java +++ b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java @@ -32,11 +32,18 @@ class CodeEditorHtml { private CodeEditorHtml() { } - static final String PAGE = + // Assigned in a static initializer (not at the declaration) so this large string is a runtime + // constant rather than a compile-time constant - that keeps the compiler from inlining the whole + // ~13KB literal into every class that references CodeEditorHtml.PAGE. + static final String PAGE; + + static { + PAGE = "" + "" + + "" + "" - + "
1
" - + "
" - + ""; + "" + + "" + + "" + + "" + + "
1
" + + "
" + + ""; } } diff --git a/scripts/ios/screenshots-metal/CodeEditor.png b/scripts/ios/screenshots-metal/CodeEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..7e469b50032a019b7e5945baa941637bd8788488 GIT binary patch literal 135021 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 z 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 Pfxo?4dYXh^j-C4-m`qc0 literal 0 HcmV?d00001 diff --git a/scripts/ios/screenshots-metal/CodeEditor.tolerance b/scripts/ios/screenshots-metal/CodeEditor.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/ios/screenshots-metal/CodeEditor.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-metal/RichTextArea.png b/scripts/ios/screenshots-metal/RichTextArea.png new file mode 100644 index 0000000000000000000000000000000000000000..6913abead22e8877155f45c5effbdc69ebba2097 GIT binary patch literal 123230 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⩔5>kQ?O0tq#BT9(XKK2Ji=uAf$ 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 literal 0 HcmV?d00001 diff --git a/scripts/ios/screenshots-metal/RichTextArea.tolerance b/scripts/ios/screenshots-metal/RichTextArea.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/ios/screenshots-metal/RichTextArea.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-tv/CodeEditor.png b/scripts/ios/screenshots-tv/CodeEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ad1f0e4d4688c494e151a56008570cfd536d66 GIT binary patch literal 136119 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 Q!{E>MZR$$#TMk|LUn5~9AOHXW literal 0 HcmV?d00001 diff --git a/scripts/ios/screenshots-tv/RichTextArea.tolerance b/scripts/ios/screenshots-tv/RichTextArea.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/ios/screenshots-tv/RichTextArea.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-watch/CodeEditor.png b/scripts/ios/screenshots-watch/CodeEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..e1501f3eef42b29e82f2fe5cf4521f2d74ac2f78 GIT binary patch literal 13205 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 literal 0 HcmV?d00001 diff --git a/scripts/ios/screenshots-watch/CodeEditor.tolerance b/scripts/ios/screenshots-watch/CodeEditor.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/ios/screenshots-watch/CodeEditor.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-watch/RichTextArea.png b/scripts/ios/screenshots-watch/RichTextArea.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1761f4e8e58eb939ead1029589fa7677e1e0af GIT binary patch literal 12243 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%0DPd{(&jD@K*CwfE`+ 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

52?8);d<&YVcb^b7-r494n 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 H9p;f>H&f1`Ej85%O30OxE> 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

6|_hvv>5-5y&JESdkkbbeOY+6WNW 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

=N^-y3geDD=0^6VtqG~3+R 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 literal 0 HcmV?d00001 diff --git a/scripts/javascript/screenshots/RichTextArea.tolerance b/scripts/javascript/screenshots/RichTextArea.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/javascript/screenshots/RichTextArea.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/mac-native/screenshots/CodeEditor.png b/scripts/mac-native/screenshots/CodeEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d656f2adaa74bde3f7c5be71de75bd1baa9050 GIT binary patch literal 16858 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 literal 0 HcmV?d00001 diff --git a/scripts/mac-native/screenshots/CodeEditor.tolerance b/scripts/mac-native/screenshots/CodeEditor.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/mac-native/screenshots/CodeEditor.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/mac-native/screenshots/RichTextArea.png b/scripts/mac-native/screenshots/RichTextArea.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb1e3f29cb42e74e3366a78aa17469b2b245212 GIT binary patch literal 15816 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 A$^ZZW literal 0 HcmV?d00001 diff --git a/scripts/mac-native/screenshots/RichTextArea.tolerance b/scripts/mac-native/screenshots/RichTextArea.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/mac-native/screenshots/RichTextArea.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 From 73cc98b56b220853e0de3f1ffa0cfe3425277611 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Wed, 24 Jun 2026 04:04:53 +0300 Subject: [PATCH 5/6] Record editor screenshot goldens for Linux, Android and Windows These suites also run the editor tests (Android/iOS native WebView renders the editor; Linux/Windows capture a deterministic blank peer). Their gate tolerates a missing golden so CI was green, but the screenshots showed up as new -- record them from the CI artifacts so every platform's golden set is complete. --- scripts/android/screenshots/CodeEditor.png | Bin 0 -> 20586 bytes .../android/screenshots/CodeEditor.tolerance | 5 +++++ scripts/android/screenshots/RichTextArea.png | Bin 0 -> 25162 bytes .../android/screenshots/RichTextArea.tolerance | 5 +++++ scripts/linux/screenshots/CodeEditor.png | Bin 0 -> 5452 bytes scripts/linux/screenshots/CodeEditor.tolerance | 5 +++++ scripts/linux/screenshots/RichTextArea.png | Bin 0 -> 5193 bytes .../linux/screenshots/RichTextArea.tolerance | 5 +++++ scripts/windows/screenshots/CodeEditor.png | Bin 0 -> 5086 bytes .../windows/screenshots/CodeEditor.tolerance | 5 +++++ scripts/windows/screenshots/RichTextArea.png | Bin 0 -> 4607 bytes .../windows/screenshots/RichTextArea.tolerance | 5 +++++ 12 files changed, 30 insertions(+) create mode 100644 scripts/android/screenshots/CodeEditor.png create mode 100644 scripts/android/screenshots/CodeEditor.tolerance create mode 100644 scripts/android/screenshots/RichTextArea.png create mode 100644 scripts/android/screenshots/RichTextArea.tolerance create mode 100644 scripts/linux/screenshots/CodeEditor.png create mode 100644 scripts/linux/screenshots/CodeEditor.tolerance create mode 100644 scripts/linux/screenshots/RichTextArea.png create mode 100644 scripts/linux/screenshots/RichTextArea.tolerance create mode 100644 scripts/windows/screenshots/CodeEditor.png create mode 100644 scripts/windows/screenshots/CodeEditor.tolerance create mode 100644 scripts/windows/screenshots/RichTextArea.png create mode 100644 scripts/windows/screenshots/RichTextArea.tolerance diff --git a/scripts/android/screenshots/CodeEditor.png b/scripts/android/screenshots/CodeEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..8708b0e41b171b54878db67bfd8bc2bbedfa0b6a GIT binary patch literal 20586 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�l8g$oQNg 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 W=?dwT1^0tE0M#+RQ*qn*@&5q(kZ6hk literal 0 HcmV?d00001 diff --git a/scripts/android/screenshots/RichTextArea.tolerance b/scripts/android/screenshots/RichTextArea.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/android/screenshots/RichTextArea.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/linux/screenshots/CodeEditor.png b/scripts/linux/screenshots/CodeEditor.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa893bec048c861123d6d3a346ccaee017a9823 GIT binary patch literal 5452 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 Oz&U5PGqpd4Ui%klR12s8 literal 0 HcmV?d00001 diff --git a/scripts/linux/screenshots/CodeEditor.tolerance b/scripts/linux/screenshots/CodeEditor.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/linux/screenshots/CodeEditor.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/linux/screenshots/RichTextArea.png b/scripts/linux/screenshots/RichTextArea.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5b255edaf7b9055ea967cbc16e93c484230946 GIT binary patch literal 5193 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 z zF($qy>kWCo4fpg1D4*gxN4pw5#s&^kR##fvo|md6SYsR>+aDgn4}rQv?SMf1H&{$BIj$L4l%_4i}|hM!u2C^ zY6_9;F^*gHAS5-mn=;fQQ>=AcxHvxP9E%nYK|z#7d}5VxrPwDob4vW$bedy`hvZ7? zD_@awmVo8H7^chtgg}Kg?7o5vU*~93^}kAZp8Xs?n`l0)lwau;d|!?LgKg;O^7Qo7 z>aa{fuyAIGeI6$=86jxRbS+DvW#Qy^RL!$5=*DFqxfo5-5xY!2Y`6LGak69Ba+bf0 zT$@s%$@%fembm(M$@a0Pp9%9O&I zwf(OJk!?d2WaO~vmB8TY%*Kh*$nghHLS*{8S1^oOSk_Rl5w9WymX8>lkwJZ6 zzrG>RP|t`Tk4=$E#SQdn#>!O~rkn9D-1<3=fyt}w$I4@gY8F&=-2U;cZCimb6=86C zAcC-3@;lco_bGi=7QFhajFkjI9>jU$#Bj-mIA^~iO!Hu8Xb!sa>m?Non|~<^8LWh1 z_-S!g0}O|(7|S@#aePQsBvK%*&@E40w7pP;od#FKw1yN;$iC}OQH#G zdnd(Mh*uLt3bah25=W;(=WihTAvfN{s2TX`q zFMhh+j|a+a?d%@A4X9LjEHjS+uiD>+|Pf}hp) zyn6AORm$$J^d>6@rqbKbx+XUuxKY9wImYhp?h-@xqv65(-}1e^Yq_LM@l-7W&)XM7 ze_onjaBx!5(W5Yn#?q@hcxLv35?PKT?Lh52uyJEyK&n;w+@+wr)ZDosO>fgwbrCr+jk#Qfta&ja7Y| z%g=??B9Z8*lN*dUGC$J5;ZRhfwH_S0NxY%RUr}Y5TiCNNk*{%l z$F^A6Qh^D9tmN(V1L8mQMvE{u!t3T<+oXXtm><^5cU{DQp4#CTZF&t(7l`2#*eH2u;5DKQz2dNB{r; literal 0 HcmV?d00001 diff --git a/scripts/windows/screenshots/RichTextArea.tolerance b/scripts/windows/screenshots/RichTextArea.tolerance new file mode 100644 index 0000000000..b497bdd049 --- /dev/null +++ b/scripts/windows/screenshots/RichTextArea.tolerance @@ -0,0 +1,5 @@ +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). +maxChannelDelta=16 +maxMismatchPercent=2.0 From e3b2f46f42539818badd802a762ff7ac97fdb907 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Wed, 24 Jun 2026 04:47:23 +0300 Subject: [PATCH 6/6] Fix racy iOS CodeEditor capture (black box) The CodeEditor page used color-scheme 'light dark'; on iOS the WKWebView base background then follows the device appearance, so a capture that beats the page's first paint shows black in dark appearance (RichTextArea already pinned 'light' and was unaffected). Pin CodeEditor to color-scheme 'light' too, and lengthen the screenshot settle/bound so the rendered content is reliably on screen before capture. Goldens (rendered state) are unchanged. --- CodenameOne/src/com/codename1/ui/CodeEditorHtml.java | 2 +- .../hellocodenameone/tests/CodeEditorScreenshotTest.java | 7 +++++-- .../hellocodenameone/tests/RichTextAreaScreenshotTest.java | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java index 540233ca3a..8d433651c4 100644 --- a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java +++ b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java @@ -41,7 +41,7 @@ private CodeEditorHtml() { PAGE = "" + "" - + "" + + "" + "