From 6cc441300c38d76058e6e73aa525188ab5899eb1 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 13 Feb 2013 16:12:00 +0400 Subject: [PATCH] spring templates --- .../templates/ArchivedProjectTemplate.java | 5 +++++ .../templates/LocalArchivedTemplate.java | 20 +++++++++++++++--- .../templates/TemplateModuleBuilder.java | 16 +++++++++++++- .../Java/Command_Line_App.zip | Bin 3712 -> 3149 bytes 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java b/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java index d14db955f555..f11f6277461c 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java +++ b/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java @@ -23,6 +23,7 @@ import com.intellij.platform.ProjectTemplate; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.io.IOException; import java.util.List; import java.util.zip.ZipInputStream; @@ -45,6 +46,10 @@ public abstract class ArchivedProjectTemplate implements ProjectTemplate { return myDisplayName; } + public Icon getIcon() { + return getModuleType().getIcon(); + } + protected abstract ModuleType getModuleType(); @NotNull diff --git a/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java b/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java index 1a8a152fcd30..0e20e0595239 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java +++ b/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java @@ -20,13 +20,16 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleType; import com.intellij.openapi.module.ModuleTypeManager; import com.intellij.openapi.util.Condition; +import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.io.StreamUtil; import org.jdom.Document; +import org.jdom.Element; import org.jdom.Namespace; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.io.IOException; import java.net.URL; import java.util.Collections; @@ -41,11 +44,12 @@ import java.util.zip.ZipInputStream; public class LocalArchivedTemplate extends ArchivedProjectTemplate { static final String DESCRIPTION_PATH = ".idea/description.html"; - static final String IDEA_INPUT_FIELDS_XML = ".idea/input-fields.xml"; + static final String IDEA_INPUT_FIELDS_XML = ".idea/project-template.xml"; private final URL myArchivePath; private final ModuleType myModuleType; private List myInputFields = Collections.emptyList(); + private Icon myIcon; public LocalArchivedTemplate(String displayName, URL archivePath) { @@ -61,7 +65,12 @@ public class LocalArchivedTemplate extends ArchivedProjectTemplate { }); if (s != null) { try { - myInputFields = RemoteTemplatesFactory.getFields(JDOMUtil.loadDocument(s).getRootElement(), Namespace.NO_NAMESPACE); + Element templateElement = JDOMUtil.loadDocument(s).getRootElement(); + myInputFields = RemoteTemplatesFactory.getFields(templateElement, Namespace.NO_NAMESPACE); + String iconPath = templateElement.getChildText("icon-path"); + if (iconPath != null) { + myIcon = IconLoader.findIcon(iconPath); + } } catch (Exception e) { throw new RuntimeException(e); @@ -79,6 +88,11 @@ public class LocalArchivedTemplate extends ArchivedProjectTemplate { }); } + @Override + public Icon getIcon() { + return myIcon == null ? super.getIcon() : myIcon; + } + @Nullable String readEntry(Condition condition) { ZipInputStream stream = null; @@ -87,7 +101,7 @@ public class LocalArchivedTemplate extends ArchivedProjectTemplate { ZipEntry entry; while ((entry = stream.getNextEntry()) != null) { if (condition.value(entry)) { - return StreamUtil.readText(stream); + return StreamUtil.readText(stream, TemplateModuleBuilder.UTF_8); } } } diff --git a/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java b/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java index a18236209d11..01484d5ab338 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java +++ b/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java @@ -20,6 +20,7 @@ import com.intellij.execution.configurations.ModuleBasedConfiguration; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.ide.fileTemplates.FileTemplateManager; import com.intellij.ide.fileTemplates.FileTemplateUtil; +import com.intellij.ide.util.newProjectWizard.SupportForFrameworksStep; import com.intellij.ide.util.newProjectWizard.modes.ImportImlMode; import com.intellij.ide.util.projectWizard.*; import com.intellij.openapi.application.ApplicationManager; @@ -43,12 +44,14 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.newvfs.RefreshQueue; import com.intellij.platform.templates.github.ZipUtil; +import com.intellij.util.ArrayUtil; import com.intellij.util.NullableFunction; import com.intellij.util.containers.ContainerUtil; import org.jdom.JDOMException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.io.File; import java.io.IOException; import java.util.List; @@ -81,7 +84,13 @@ public class TemplateModuleBuilder extends ModuleBuilder { @Override public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider) { - return myType.createModuleBuilder().createWizardSteps(wizardContext, modulesProvider); + ModuleWizardStep[] steps = myType.createModuleBuilder().createWizardSteps(wizardContext, modulesProvider); + for (ModuleWizardStep step : steps) { + if (step instanceof SupportForFrameworksStep) { + return ArrayUtil.remove(steps, step); + } + } + return steps; } @Override @@ -140,6 +149,11 @@ public class TemplateModuleBuilder extends ModuleBuilder { return myType; } + @Override + public Icon getNodeIcon() { + return myTemplate.getIcon(); + } + @NotNull @Override public Module createModule(@NotNull ModifiableModuleModel moduleModel) diff --git a/java/java-impl/src/resources/projectTemplates/Java/Command_Line_App.zip b/java/java-impl/src/resources/projectTemplates/Java/Command_Line_App.zip index b87acb2a00f23c17de46131bd371c359af934ca7..03fcc258406f9acfbbb014c311ad2f6fa429ad04 100644 GIT binary patch delta 201 zcmZpWJu5LeiqT-=vnJlDyZ)woGB7Yi0kM~;zU;zd>M0B=Snac&U?4j@dJ7#$}c;BjYK z&oucUkLYAMUZKgIyh==~m?taph)j-T<(+(vSBr_2WAXw{^~s8ST1@9TCj0WK^070p OGbk`IFo<)3>;M2f<}~5} delta 651 zcmX>r(I6`w;LXe;!oUH9dXwCp7?6PB#Qmc6$@vA9MVaXtCHe(L`DvLssm1ZdsU;kDmqwY|!-6 z)jWB|TR+Uh)7M+)tmekhCJ%+N~gdmWGWnUg-AIw#MZ|BUK(Jx?7^R^!Gwf0!mPt+;NvMFO!B z5F*F?OYT=x$$e}*@9k&*fAJ^p99I|2o-mGjOvp9k93KIjvG;R