The Wizarding Addon is responsible for displaying wizards in OpenSCD. Wizarding could be made in many ways. Libraries allow plug-in editors to choose their own experiences. Plug-in authors can use the OSCD wizard component to make life easier.
Principles:
- Plug-in author is responsible for how to display dialog's/wizards
- Allow multiple types of wizards
- Wizards should be framework independent
- The wizard initiator decides what kind of wizards are displayed
Scope of wizarding
Easy wizarding allows to display things and edit SCL files. The idea is/was to re-use existing SCL edits
Open Question: What is a wizard?
Some wizards that are could be frequently used:
...
Drawio | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Conserquences
Freedom comes with responsibilities (e.g. you can add pacman as plug-in).
Technical working
The Wizarding Addon listens to the oscd-wizard
CustomEvent.
...
To reduce the complexity, it is also an option to leaving the displaying/editing of the SCL part fully up to the wizard library. This allows users to switch between wizards (e.g. plain XML vs form style) to edit a specific SCL element.
The idea: the wizard use an SCL element to render the form elements. The wizard API is responsible for the generation the wizard (thus look and feel).
Drawio | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Pro's:
One single API for all wizards
Might reduce complexity
Give distributors and end-users the freedom to chose the right wizard-options/styles
Con's:
End-user could be overwhelmed by choices
...
Limited freedom for the wizard initiator (no edits outside SCL elements)
Might be limited to editing
Questions:
Is it possible to add other namespace attributes?
Can you edit multiple SCL elements together?
Other alternative: No standardized Wizarding
Every plug-in authors will/can write it's own solution
Pro's: Complete freedom
Con's: Every plug-in author needs to reinvent the wheel in every plug-in.