diff --git a/module/META-INF/plugin.xml b/module/META-INF/plugin.xml index 21c3f65e0..5c8f2e4a6 100644 --- a/module/META-INF/plugin.xml +++ b/module/META-INF/plugin.xml @@ -18,6 +18,7 @@ --> + diff --git a/module/src/com/intellij/tutorials/module/DemoModuleBuilder.java b/module/src/com/intellij/tutorials/module/DemoModuleBuilder.java new file mode 100644 index 000000000..23417dcbc --- /dev/null +++ b/module/src/com/intellij/tutorials/module/DemoModuleBuilder.java @@ -0,0 +1,31 @@ +package com.intellij.tutorials.module; + +import com.intellij.ide.util.projectWizard.ModuleBuilder; +import com.intellij.ide.util.projectWizard.ModuleWizardStep; +import com.intellij.ide.util.projectWizard.WizardContext; +import com.intellij.openapi.Disposable; +import com.intellij.openapi.module.ModuleType; +import com.intellij.openapi.options.ConfigurationException; +import com.intellij.openapi.roots.ModifiableRootModel; +import org.jetbrains.annotations.Nullable; + +/** + * @author Anna Bulenkova + */ +public class DemoModuleBuilder extends ModuleBuilder { + @Override + public void setupRootModel(ModifiableRootModel model) throws ConfigurationException { + + } + + @Override + public ModuleType getModuleType() { + return DemoModuleType.getInstance(); + } + + @Nullable + @Override + public ModuleWizardStep getCustomOptionsStep(WizardContext context, Disposable parentDisposable) { + return new DemoModuleWizardStep(); + } +} diff --git a/module/src/com/intellij/tutorials/module/DemoModuleType.java b/module/src/com/intellij/tutorials/module/DemoModuleType.java new file mode 100644 index 000000000..9733741f0 --- /dev/null +++ b/module/src/com/intellij/tutorials/module/DemoModuleType.java @@ -0,0 +1,60 @@ +package com.intellij.tutorials.module; + +import com.intellij.icons.AllIcons; +import com.intellij.ide.util.projectWizard.ModuleWizardStep; +import com.intellij.ide.util.projectWizard.WizardContext; +import com.intellij.openapi.module.ModuleType; +import com.intellij.openapi.module.ModuleTypeManager; +import com.intellij.openapi.roots.ui.configuration.ModulesProvider; +import org.jetbrains.annotations.NotNull; + +import javax.swing.*; + +/** + * @author Anna Bulenkova + */ +public class DemoModuleType extends ModuleType { + private static final String ID = "DEMO_MODULE_TYPE"; + + public DemoModuleType() { + super(ID); + } + + public static DemoModuleType getInstance() { + return (DemoModuleType) ModuleTypeManager.getInstance().findByID(ID); + } + + @NotNull + @Override + public DemoModuleBuilder createModuleBuilder() { + return new DemoModuleBuilder(); + } + + @NotNull + @Override + public String getName() { + return "Demo"; + } + + @NotNull + @Override + public String getDescription() { + return "Demo Module Type"; + } + + @Override + public Icon getBigIcon() { + return AllIcons.General.Information; + } + + @Override + public Icon getNodeIcon(@Deprecated boolean b) { + return AllIcons.General.Information; + } + + @NotNull + @Override + public ModuleWizardStep[] createWizardSteps(@NotNull WizardContext wizardContext, @NotNull DemoModuleBuilder moduleBuilder, @NotNull ModulesProvider modulesProvider) { + return super.createWizardSteps(wizardContext, moduleBuilder, modulesProvider); + } +} diff --git a/module/src/com/intellij/tutorials/module/DemoModuleWizardStep.java b/module/src/com/intellij/tutorials/module/DemoModuleWizardStep.java new file mode 100644 index 000000000..4227d9e4d --- /dev/null +++ b/module/src/com/intellij/tutorials/module/DemoModuleWizardStep.java @@ -0,0 +1,20 @@ +package com.intellij.tutorials.module; + +import com.intellij.ide.util.projectWizard.ModuleWizardStep; + +import javax.swing.*; + +/** + * @author Anna Bulenkova + */ +public class DemoModuleWizardStep extends ModuleWizardStep { + @Override + public JComponent getComponent() { + return new JLabel("Provide some setting here"); + } + + @Override + public void updateDataModel() { + //todo update model according to UI + } +}