Additional Form Fields for Eclipse Scout

This project provides wrapper modules for popular open-source web widgets as form field extensions for the Eclipse Scout framework. The modules wrap browser-based widgets into Scout form fields, following Scout’s client-server architecture and providing a familiar Scout API for Java developers.

Overview

The project currently provides wrapper modules for three code editor components:

  • Ace Editor (ace.client, ace.ui.html, @sxda/scout-addon-ace) - Wrapper for the Ace Code Editor

  • CodeMirror (codemirror.client, codemirror.ui.html, @sxda/scout-addon-codemirror) - Wrapper for the CodeMirror 6 Editor

  • Monaco Editor (monaco.client, monaco.ui.html, @sxda/scout-addon-monaco) - Wrapper for the Monaco Editor (VS Code editor)

Each module follows Scout’s layered architecture with:

  • A Java client module (*.client) containing the form field interface and base implementation

  • A Java HTML UI module (*.ui.html) containing the JSON adapter for browser communication

  • A TypeScript/JavaScript module (@sxda/scout-addon-*) providing the browser-side editor integration

The project is not limited to code editors and can be extended with wrappers for any open-source web widget (charts, rich text editors, data grids, calendars, etc.).

Important: The external component libraries (ace-code, @codemirror/, monaco-editor) are *not redistributed with these addons. Consumers must add them as dependencies in their own projects. This allows you to use newer component versions without waiting for addon updates. See the individual module documentation for detailed setup instructions.

Versioning and Releases

The major and minor version of the modules in this repository match the major and minor version of the Eclipse Scout release they are intended to be used with. The patch version is incremented for every release of the addon modules. This means, for example, that sxda-scout-addon version 25.2.x should be compatible with all Eclipse Scout 25.2.y versions.

You should override the property org.eclipse.scout.rt.version in your root pom.xml to the version of the Eclipse Scout release you are using. For the npm modules, you should be fine because the dependency to the Eclipse Scout runtime is defined as a peer dependency.

Releases are published to Maven Central and npmjs.org. The version number of the release is always the same for both repositories.

Snapshot versions are published to GitHub Packages and npmjs.org.

Editor Modules

Ace Editor

  • npm: @sxda/scout-addon-ace

  • Maven: io.sxda.scout.addon:ace.client, io.sxda.scout.addon:ace.ui.html

Wrapper for the Ace Code Editor, providing syntax highlighting and code completion for many programming languages.

CodeMirror Editor

  • npm: @sxda/scout-addon-codemirror

  • Maven: io.sxda.scout.addon:codemirror.client, io.sxda.scout.addon:codemirror.ui.html

Wrapper for CodeMirror 6, a modern web-based code editor with extensive language support.

Monaco Editor

  • npm: @sxda/scout-addon-monaco

  • Maven: io.sxda.scout.addon:monaco.client, io.sxda.scout.addon:monaco.ui.html

Wrapper for the Monaco Editor, the powerful code editor that powers VS Code.

Getting Started

Choose one of the editor modules below to learn about integration and usage in your Scout application. Each module page includes:

  • Installation instructions (Maven and npm dependencies)

  • Usage examples

  • Configuration options

  • API documentation

If you want to build the project from source or contribute to development, see the Building from Source guide.

Demo Application

The demo directory contains a Scout JS demo application that showcases the available component modules. The demo serves two purposes:

  • Demonstration: Live examples of the wrapped components with various configurations

  • Development playground: Easy testing environment during development of the addon modules

A deployed instance of the latest snapshot version is available at: https://nisrael.github.io/sxda-scout-addon/

For a Scout Classic demo application, see: https://github.com/nisrael/sxda-scout-apps-addondemo

Developer Documentation

  • Scout Value Field Data Flow - Detailed description of the synchronization logic between the editor and Scout field, with templates for similar custom fields

  • IntelliJ IDEA Setup - Code templates for quickly adding new configuration properties to Scout fields

Contributing

Contributions are welcome:

  • If you found a bug, please open an issue or, if you are able to fix it, open a pull request.

  • If you have an idea for a new widget wrapper or an improvement of the existing one(s), please open an issue or even better a pull request.

  • If you have a question, please open an issue.

License

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0