Skip to main content

Configurator

The Configurator guides a user from a teaching use case to a valid selection and a downloadable deployment package. This page explains its screens, how it keeps the selection valid, and where its code lives. Read it before you change the Configurator.

Screens​

The Configurator has one route and four screens. The route component switches between them:

ScreenShows
TemplatesChoose a starting point: the use-case templates of the guided workflow
DecisionsOne step at a time, with its decisions and their options
ReviewReview configuration: the summary, open issues, and the export
Advanced treeAdvanced configuration tree: every feature of the model, editable directly

A progress bar at the top lists the templates, the decision steps, and the review, and lets the user jump between them. Advanced tree in the header opens the tree from any guided screen; Back to guide returns.

Templates and the starting selection​

On load, the Configurator fetches the model, the guided workflow, and the availability in parallel, and applies the workflow's default template. Selecting a template builds the selection again: it starts from the model's defaultSelectedFeatureIds, applies the template's selected and deselected features, and drops features whose capabilities are missing. Technical features and features that no guided option covers keep their current state, so choices made in the advanced tree survive a template switch.

A template also decides which steps follow, through its recommendedStepIds. Only steps that contain decisions are shown.

Decisions and validation​

Each decision shows its options as cards. Selecting an option adds the features it selects and removes the ones it deselects. For the focused option, three tabs show the teacher-facing text: What this enables, Recommended when, and Things to know. Which options appear selected is derived from the current selection, so the cards stay correct after edits in the advanced tree.

After every change, the Configurator sends the whole selection to the validation endpoint and shows violations and warnings next to the decisions. Each request gets a number, and only the answer to the newest request is shown, so a slow older answer never overwrites a newer one.

The review page​

The review page summarizes the selection by review group, lists the decisions that differ from the template, and shows open issues. Its export section has a deployment target picker:

  • Docker runtime (the default)
  • IntelliJ IDE development setup
  • Remote server (Ansible)

The download button generates the package for the chosen target, and it stays disabled while the selection is invalid. The remote target adds a Target name field, and when publishing is configured, a Deployment repository field and a Deploy to <target> button; see Publishing. The browser remembers both field values in localStorage. When the server refuses a remote package because the selection cannot be expressed, for example with MySQL, the page shows one error card with the feature name and a shortcut to the advanced tree. The targets and their texts live in configurator/shared/deployment-targets.ts.

The advanced tree​

The advanced tree shows the whole model with the current selection, the validation markers, and the details of the focused feature, including its required capabilities and its artifact impact. Changes in the tree update the same selection that the guided screens use. In an alternative group, such as the database, selecting one feature deselects its siblings. This is the place where users switch technical choices, such as PostgreSQL instead of MySQL.

The tutorial​

On the first visit, a short tutorial opens. It explains templates, decisions, the review page, and the tree. The Configurator remembers in the browser's localStorage that the tutorial was seen. The key contains the workflow and model versions, so the tutorial opens again after either changes. The ? button in the header opens it at any time.

Code map​

File in src/main/webapp/app/feature-model/configurator/Responsibility
feature-model-configurator.component.tsThe route component: loading, the selection, validation, export, and screen switching
guided/guided-configurator-workflow.component.tsThe templates, decision, and review screens
guided/tutorial/configurator-tutorial-panel.component.tsThe tutorial panel
tree/configurator-tree.component.tsThe advanced tree
shared/configurator-selection.utils.tsPure helpers that apply options and prepare validation messages
shared/configurator-tutorial.tsThe tutorial steps and the storage key
shared/deployment-targets.tsThe deployment targets of the review page
shared/validation-issue-list.component.tsThe list of violations or warnings
Search documentation