From 541a29c9abce8178301bb49a269d630ce13efe0e Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Fri, 25 Apr 2025 12:52:43 +0200 Subject: [PATCH] new_project_wizard.md: Chaining steps visualization --- topics/reference_guide/new_project_wizard.md | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/topics/reference_guide/new_project_wizard.md b/topics/reference_guide/new_project_wizard.md index 948d18c06..caf6422d4 100644 --- a/topics/reference_guide/new_project_wizard.md +++ b/topics/reference_guide/new_project_wizard.md @@ -91,6 +91,8 @@ For convenience, the platform provides which is a base step class that takes a parent step and delegates common property accessors to the parent. It allows sharing the [root step's](#root-step) properties by all descendant steps. +### Chaining Steps + As mentioned before, all steps are rendered on a single screen. Merging multiple steps into a chain displayed as a single screen step is achieved with [`NewProjectWizardChainStep`](%gh-ic%/platform/platform-impl/src/com/intellij/ide/wizard/NewProjectWizardChainStep.kt). @@ -105,6 +107,25 @@ override fun createStep(context: WizardContext): NewProjectWizardStep { } ``` +All the steps above will be created inside a single `NewProjectWizardChainStep` and will be displayed (except the root step, which exists to hold shared data) in a single dialog page: + +```plantuml +@startsalt +scale 1.2 +title New Project +{+ + [] First Step Input 1 + First Step Input 2 | "value " + .. + Second Step Input | ^Selection^ + .. + [] Third Step Input + -- + [Cancel]|[Create] +} +@endsalt + +``` ### Root Step The root project wizard step initializes a data holder and other properties shared with all descendant steps in the wizard.