Visual Editor Architecture - Moonshine-IDE/Moonshine-IDE Wiki

Summary

Visual Editor provides a way to design an interface visually and then generate an application based on this design in different languages

There are currently three different versions of the Visual Editor. We would like to unify these designs:

Repository Overview

VisualEditorConverterLib

Repository: https://github.com/Moonshine-IDE/VisualEditorConverterLib

Purpose: Define object representations of the Visual Editor components, and converters for the different target languages.

Major Classes and Packages:

MockupVisualEditor

Repository: https://github.com/Moonshine-IDE/MockupVisualEditor

Purpose: Implement the mockup editor UI.

Major Packages and Classes:

surfaceComponents class: work for visual components in the visual editor.

propertyEditors class: work for the property of the visual components.

TODO: Describe any other major packages or directories

Moonshine-IDE

Repository: https://github.com/Moonshine-IDE/Moonshine-IDE

Purpose: Integration and templates.

Major Packages and Classs:

Implementation Guidelines

Flex Visual Editor

This is obsolete, but we will add documentation if we revisit this later.

PrimeFaces Visual Editor

Primary Issue: #165

Primary Branches: None Active

Components:

How to add a new control

TODO: guidelines on what classes need to be added and where to add a new control to the mockup

How to add a new language

TODO: guidelines on where to start when adding support for a new output language. We can keep this as a high-level, theoretical framework for now.

Domino Visual Editor

Primary Issues

Major Branches:

Components:

How to add a new control

TODO: guidelines on what classes need to be added and where to add a new control to the mockup

How to add a new language

TODO: guidelines on where to start when adding support for a new output language. We can keep this as a high-level, theoretical framework for now.