[code] module demo

This commit is contained in:
Anna Bulenkova 2015-02-06 14:34:28 +01:00
parent 7cee8b7831
commit f185d1af73
4 changed files with 112 additions and 0 deletions

View File

@ -18,6 +18,7 @@
--> -->
<extensions defaultExtensionNs="com.intellij"> <extensions defaultExtensionNs="com.intellij">
<moduleType id="DEMO_MODULE_TYPE" implementationClass="com.intellij.tutorials.module.DemoModuleType"/>
</extensions> </extensions>
<application-components> <application-components>

View File

@ -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();
}
}

View File

@ -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<DemoModuleBuilder> {
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);
}
}

View File

@ -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
}
}