mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-120272 New Project wizard: java templates (JavaFX application, Command Line Application) are missing
This commit is contained in:
@@ -20,7 +20,6 @@ import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -55,11 +54,6 @@ public abstract class ProjectCategory {
|
||||
return createModuleBuilder().getGroupName();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getParentId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public FrameworkRole[] getAcceptableFrameworkRoles() {
|
||||
return new FrameworkRole[] {createModuleBuilder().getDefaultAcceptableRole()};
|
||||
}
|
||||
|
||||
@@ -473,14 +473,21 @@ public class ProjectTypeStep extends ModuleWizardStep implements Disposable {
|
||||
Disposer.dispose(this);
|
||||
}
|
||||
|
||||
private static MultiMap<String, ProjectTemplate> loadLocalTemplates() {
|
||||
private MultiMap<String, ProjectTemplate> loadLocalTemplates() {
|
||||
ConcurrentMultiMap<String, ProjectTemplate> map = new ConcurrentMultiMap<String, ProjectTemplate>();
|
||||
ProjectTemplateEP[] extensions = ProjectTemplateEP.EP_NAME.getExtensions();
|
||||
for (ProjectTemplateEP ep : extensions) {
|
||||
ClassLoader classLoader = ep.getLoaderForClass();
|
||||
URL url = classLoader.getResource(ep.templatePath);
|
||||
if (url != null) {
|
||||
map.putValue(ep.projectType, new LocalArchivedTemplate(url, classLoader));
|
||||
LocalArchivedTemplate template = new LocalArchivedTemplate(url, classLoader);
|
||||
if (ep.category) {
|
||||
TemplateBasedCategory category = new TemplateBasedCategory(template);
|
||||
myTemplatesMap.putValue(new TemplatesGroup(category), template);
|
||||
}
|
||||
else {
|
||||
map.putValue(ep.projectType, template);
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
|
||||
+14
-15
@@ -15,42 +15,41 @@
|
||||
*/
|
||||
package com.intellij.ide.projectWizard;
|
||||
|
||||
import com.intellij.platform.templates.BuilderBasedTemplate;
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
import com.intellij.platform.templates.ArchivedProjectTemplate;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
*/
|
||||
public class ProjectCategoryTemplate extends BuilderBasedTemplate {
|
||||
public class TemplateBasedCategory extends ProjectCategory {
|
||||
|
||||
private final ProjectCategory myCategory;
|
||||
private final ArchivedProjectTemplate myTemplate;
|
||||
|
||||
public ProjectCategoryTemplate(ProjectCategory category) {
|
||||
super(category.createModuleBuilder());
|
||||
myCategory = category;
|
||||
public TemplateBasedCategory(ArchivedProjectTemplate template) {
|
||||
myTemplate = template;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getName() {
|
||||
return myCategory.getDisplayName();
|
||||
public String getDisplayName() {
|
||||
return myTemplate.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Icon getIcon() {
|
||||
return myCategory.getIcon();
|
||||
return myTemplate.getIcon();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return myCategory.getDescription();
|
||||
return myTemplate.getDescription();
|
||||
}
|
||||
|
||||
public ProjectCategory getCategory() {
|
||||
return myCategory;
|
||||
@NotNull
|
||||
@Override
|
||||
public ModuleBuilder createModuleBuilder() {
|
||||
return myTemplate.createModuleBuilder();
|
||||
}
|
||||
}
|
||||
@@ -154,6 +154,11 @@ public class TemplateModuleBuilder extends ModuleBuilder {
|
||||
return myTemplate.getIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTemplateBased() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Module createModule(@NotNull ModifiableModuleModel moduleModel)
|
||||
|
||||
@@ -33,4 +33,6 @@ public class ProjectTemplateEP extends AbstractExtensionPointBean {
|
||||
@Attribute("templatePath")
|
||||
public String templatePath;
|
||||
|
||||
@Attribute("category")
|
||||
public boolean category;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<renamePsiElementProcessor implementation="org.jetbrains.plugins.javaFX.JavaFxRenameAttributeProcessor" order="before xmlAttribute"/>
|
||||
<completion.contributor implementationClass="org.jetbrains.plugins.javaFX.fxml.refs.JavaFxCompletionContributor" language="XML" order="before xmlNonFirst"/>
|
||||
<manifest.parser.provider implementation="org.jetbrains.plugins.javaFX.manifest.JavaFxManifestHeaderParsers"/>
|
||||
<projectTemplate projectType="Java" templatePath="resources/projectTemplates/Java/JavaFX Application.zip"/>
|
||||
<projectTemplate projectType="Java FX" templatePath="resources/projectTemplates/Java/JavaFX Application.zip" category="true"/>
|
||||
</extensions>
|
||||
|
||||
<actions>
|
||||
|
||||
Reference in New Issue
Block a user