package ee.edio.garmin.module.newProject; import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.platform.ProjectTemplate; import com.intellij.platform.ProjectTemplatesFactory; import com.intellij.platform.templates.BuilderBasedTemplate; import ee.edio.garmin.MonkeyIcons; import ee.edio.garmin.MonkeyModuleBuilder; import ee.edio.garmin.module.AppType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; public class MonkeyProjectTemplatesFactory extends ProjectTemplatesFactory { @NotNull @Override public String[] getGroups() { return new String[]{"Connect IQ"}; } @Override public String getParentGroup(String group) { return null; } @Override public Icon getGroupIcon(String group) { return MonkeyIcons.MODULE16; } @NotNull @Override public ProjectTemplate[] createTemplates(@Nullable String group, WizardContext context) { ProjectTemplate[] templates = { new MonkeyProjectTemplate("Watch App", "Watch apps have full control of the device", new MonkeyModuleBuilder(AppType.WATCH_APP)), new MonkeyProjectTemplate("Widget", "Widgets provide information at-a-glance to the user", new MonkeyModuleBuilder(AppType.WIDGET)), new MonkeyProjectTemplate("Data Field", "Data fields allow customization of Garmin activities", new MonkeyModuleBuilder(AppType.DATA_FIELD)), new MonkeyProjectTemplate("Watch Face", "Watch faces provide custom displays for the home screen of the watch", new MonkeyModuleBuilder(AppType.WATCH_FACE)), }; return templates; } private static class MonkeyProjectTemplate extends BuilderBasedTemplate { private final String myName; private final String myDescription; private MonkeyProjectTemplate(String name, String description, MonkeyModuleBuilder builder) { super(builder); myName = name; myDescription = description; } @NotNull @Override public String getName() { return myName; } @Nullable @Override public String getDescription() { return myDescription; } } }