You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

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:

  • Allow multiple types of wizards
  • Wizards should be framework independent
  • The wizard initiator decides what kind of wizards are displayed


Some wizards that are could be frequently used:

Form wizard

Webforms to enter/modify information.

SCL wizard

Can generate wizards based on the SCL (XSD) schema (not build yet). This allow to change the wizard more easily once the 61850 XSD changes.


Code wizard

Could be used to display plain SCL files


Overview of the different aspects



Technical working

The Wizarding Addon listens to the oscd-wizard  CustomEvent.

The oscd-wizard  events contains the OscdWizard  reference.


oscd-wizard
export interface OscdWizardEventDetail {
    wizard: OscdWizard;
}

export interface OscdWizardEvent extends Event {
    detail: OscdWizardEventDetail;
}


The OscdWizard  must be an HTMLElement that contains the open()  and close() functions.

The OscdWizard can be viewed below


OscdWizard
export type OscdWizard = HTMLElement & { open(): Promise<void>, close(): Promise<void> }


If you want to create your own wizard, you must adhere to this API.


Wizarding flows from OpenSCD-Core plug-in en OpenSCD-Core plug.


Alternatives

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.



Pro's:

One single API for all wizards

Might reduce complexity

Give end-users the freedom to chose the right wizard


Con's:

End-user could be overwhelmed by choices

The wizard API has a lot of functions to handle all situations

Limited freedom for the wizard initiator

Might be limited to editing 



  • No labels