Karol Lewandowski 3ecc8f13e0 Revert "Delete outdated module type and module builder docs"
This reverts commit 2ab231f0
2025-05-12 11:32:03 +02:00

2.9 KiB

Adding New Steps to Project Wizard

Tutorial on adding a new step to a custom project wizard.

This tutorial shows how to add an extra step to the Project Wizard to provide additional project configuration settings.

Pre-Requirements

Create an empty plugin project. See the section for details.

Register Module Builder

Project configuration settings depend on the project's module type. Register a new in the plugin.xml configuration file.

<extensions defaultExtensionNs="com.intellij">
  <moduleBuilder
      builderClass="org.intellij.sdk.project.wizard.DemoModuleWizardStep"
      id="DEMO_STEP"
      order="first"/>
</extensions>

Create a Custom Module Builder

Extend ModuleBuilder class to provide custom configuration.

public class DemoModuleWizardStep extends ModuleBuilder {
  public void setupRootModel(ModifiableRootModel modifiableRootModel)
      throws ConfigurationException {

  }
}

Define Module Type

Set a module type for the extra wizard step to provide. In this example, choose an EMPTY module type.

public class DemoModuleWizardStep extends ModuleBuilder {
  public void setupRootModel(ModifiableRootModel modifiableRootModel)
      throws ConfigurationException {

  }

  public ModuleType getModuleType() {
    return ModuleType.EMPTY; //or it could be any other module type
  }
}

Design and Implement Wizard Steps

Provide an implementation of a custom UI component to be added to the Wizard. In this case, leave it as a label.

public class DemoModuleWizardStep extends ModuleBuilder {
  public void setupRootModel(ModifiableRootModel modifiableRootModel)
      throws ConfigurationException {

  }

  public ModuleType getModuleType() {
    return ModuleType.EMPTY;
  }

  @Override
  public ModuleWizardStep[] createWizardSteps(
      @NotNull WizardContext wizardContext,
      @NotNull ModulesProvider modulesProvider) {
    return new ModuleWizardStep[]{new ModuleWizardStep() {
      @Override
      public JComponent getComponent() {
        return new JLabel("Put your content here");
      }

      @Override
      public void updateDataModel() {

      }
    }};
  }
}

Checking UI Appearance

After compiling and running the plugin, create a new project using a source-compiled instance of IntelliJ IDEA.

New Project

Choose an Empty Module type, click next, and get to the just added extra step.

Extra Step

Modify and tune the UI component depending on requirements.