We have ’blueprints’ for:
Smart Object types (SwatWindow → SwatWindow.smartrepo)
Smart Object Master (ScreensDesktop → ScreensDesktop.smartrepo)
Smart menus (special usecase; we have a smartmenu file for the main menu which can contain the button action or a reference to another smartmenu file (submenu)
Blueprints stored in xml format (.smartrepotype, .smartrepo and .smartmenu extensions).
Data is loaded into the SmartDB database.
At runtime, the database is queried and a JSON containing all the object attributes is built. This JSON contains the attributes and their values from the object type, master or instance.
The Rendering engine uses this JSON to determine the look/functionality of the component.
Smart Object type
File contains:
- all the attributes assigned on the object with their default value (values from the type can be overridden on the object master or instance level)
- all the supported links which can be added to/from the type in the designer
Standard attributes (Shared across all types)
Name | Description | Example value |
TechnicalClassName | Definition builder class which fetches the type/master/instance attributes and returns them to the FE | Akioma.Swat.Repository.Builder.AccordionDefinitionBuilder |
UiComponent | TBD | Accordion |
UiComponentAlias | TBD | accordion |
NOTE: When an attribute is not specified on the type, it inherits the value of its parent.
Example: SwatWindow.smartrepotype
Smart Object Master
File contains:
- all the specific instance attributes which are overridden from the type
- instances of other objects
- attributes set on this objects specific instance
- links between the instances
Example: ScreensDesktop.smartrepo
Smart Menus
File contains:
- menu buttons with their functionality and other parameters
- references to other smart menus
Example: LegacyToolbars.smartmenu