mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
spring templates
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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<WizardInputField> 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<ZipEntry> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user