mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
[cleanup] removed unused and confusing NPW data extension properties
Some plugin writers occasionally chooses wrong property. For example build-system from Java language instead of Scala. GitOrigin-RevId: a92e2b974a1c782271a5b8e6e9dde15617592e0a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
23bf41614b
commit
96b4165d58
@@ -8,6 +8,7 @@ import com.intellij.ide.starters.local.GeneratorAsset
|
||||
import com.intellij.ide.starters.local.GeneratorTemplateFile
|
||||
import com.intellij.ide.starters.local.generator.AssetsProcessor
|
||||
import com.intellij.ide.wizard.*
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.baseData
|
||||
import com.intellij.openapi.application.invokeAndWaitIfNeeded
|
||||
import com.intellij.openapi.application.runWriteAction
|
||||
import com.intellij.openapi.util.io.*
|
||||
@@ -29,6 +30,13 @@ abstract class AssetsNewProjectWizardStep(parent: NewProjectWizardStep) : Abstra
|
||||
private val templateProperties = HashMap<String, Any>()
|
||||
private val filesToOpen = HashSet<Path>()
|
||||
|
||||
init {
|
||||
val baseData = baseData
|
||||
if (baseData != null) {
|
||||
outputDirectory = baseData.path + "/" + baseData.name
|
||||
}
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
internal fun getTemplateProperties(): Map<String, Any> {
|
||||
return templateProperties
|
||||
|
||||
@@ -6,12 +6,13 @@ import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.openapi.util.Key
|
||||
|
||||
interface BuildSystemJavaNewProjectWizardData: BuildSystemNewProjectWizardData {
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<BuildSystemJavaNewProjectWizardData>(BuildSystemJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.buildSystemData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<BuildSystemJavaNewProjectWizardData>(BuildSystemJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.buildSystemProperty get() = buildSystemData.buildSystemProperty
|
||||
@JvmStatic var NewProjectWizardStep.buildSystem get() = buildSystemData.buildSystem; set(it) { buildSystemData.buildSystem = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.javaBuildSystemData: BuildSystemJavaNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,6 @@ package com.intellij.ide.projectWizard.generators
|
||||
|
||||
import com.intellij.ide.highlighter.ModuleFileType
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.INTELLIJ
|
||||
import com.intellij.ide.projectWizard.generators.IntelliJJavaNewProjectWizardData.Companion.addSampleCode
|
||||
import com.intellij.ide.projectWizard.generators.IntelliJJavaNewProjectWizardData.Companion.contentRoot
|
||||
import com.intellij.ide.projectWizard.generators.IntelliJJavaNewProjectWizardData.Companion.javaData
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.util.projectWizard.JavaModuleBuilder
|
||||
import com.intellij.ide.wizard.chain
|
||||
@@ -60,18 +57,21 @@ class IntelliJJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
|
||||
}
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: Step) : AssetsJavaNewProjectWizardStep(parent) {
|
||||
private class AssetsStep(
|
||||
private val parent: Step
|
||||
) : AssetsJavaNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = contentRoot
|
||||
outputDirectory = parent.contentRoot
|
||||
addAssets(StandardAssetsProvider().getIntelliJIgnoreAssets())
|
||||
if (addSampleCode) {
|
||||
withJavaSampleCodeAsset("src", "", javaData.generateOnboardingTips)
|
||||
if (parent.addSampleCode) {
|
||||
withJavaSampleCodeAsset("src", "", parent.generateOnboardingTips)
|
||||
}
|
||||
}
|
||||
|
||||
override fun setupProject(project: Project) {
|
||||
super.setupProject(project)
|
||||
if (javaData.generateOnboardingTips) {
|
||||
if (parent.generateOnboardingTips) {
|
||||
prepareTipsInEditor(project)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,13 @@ import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.openapi.util.Key
|
||||
|
||||
interface IntelliJJavaNewProjectWizardData: IntelliJNewProjectWizardData {
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<IntelliJJavaNewProjectWizardData>(IntelliJJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.javaData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<IntelliJJavaNewProjectWizardData>(IntelliJJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic var NewProjectWizardStep.sdk get() = javaData.sdk; set(it) { javaData.sdk = it }
|
||||
@JvmStatic var NewProjectWizardStep.moduleName get() = javaData.moduleName; set(it) { javaData.moduleName = it }
|
||||
@JvmStatic var NewProjectWizardStep.contentRoot get() = javaData.contentRoot; set(it) { javaData.contentRoot = it }
|
||||
@JvmStatic var NewProjectWizardStep.moduleFileLocation get() = javaData.moduleFileLocation; set(it) { javaData.moduleFileLocation = it }
|
||||
@JvmStatic var NewProjectWizardStep.addSampleCode get() = javaData.addSampleCode; set(it) { javaData.addSampleCode = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.javaData: IntelliJJavaNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -7,15 +7,26 @@ import com.intellij.openapi.projectRoots.Sdk
|
||||
interface IntelliJNewProjectWizardData {
|
||||
|
||||
val sdkProperty: ObservableMutableProperty<Sdk?>
|
||||
val moduleNameProperty: ObservableMutableProperty<String>
|
||||
val contentRootProperty: ObservableMutableProperty<String>
|
||||
val moduleFileLocationProperty: ObservableMutableProperty<String>
|
||||
val addSampleCodeProperty: ObservableMutableProperty<Boolean>
|
||||
|
||||
var sdk: Sdk?
|
||||
|
||||
val moduleNameProperty: ObservableMutableProperty<String>
|
||||
|
||||
var moduleName: String
|
||||
|
||||
val contentRootProperty: ObservableMutableProperty<String>
|
||||
|
||||
var contentRoot: String
|
||||
|
||||
val moduleFileLocationProperty: ObservableMutableProperty<String>
|
||||
|
||||
var moduleFileLocation: String
|
||||
|
||||
val addSampleCodeProperty: ObservableMutableProperty<Boolean>
|
||||
|
||||
var addSampleCode: Boolean
|
||||
|
||||
val generateOnboardingTipsProperty: ObservableMutableProperty<Boolean>
|
||||
|
||||
val generateOnboardingTips: Boolean
|
||||
}
|
||||
@@ -47,7 +47,7 @@ abstract class IntelliJNewProjectWizardStep<ParentStep>(val parent: ParentStep)
|
||||
final override val moduleFileLocationProperty = propertyGraph.lazyProperty(::suggestModuleFilePath)
|
||||
final override val addSampleCodeProperty = propertyGraph.property(true)
|
||||
.bindBooleanStorage(ADD_SAMPLE_CODE_PROPERTY_NAME)
|
||||
private val generateOnboardingTipsProperty = propertyGraph.property(proposeToGenerateOnboardingTipsByDefault())
|
||||
final override val generateOnboardingTipsProperty = propertyGraph.property(proposeToGenerateOnboardingTipsByDefault())
|
||||
.bindBooleanStorage(GENERATE_ONBOARDING_TIPS_NAME)
|
||||
|
||||
final override var sdk by sdkProperty
|
||||
@@ -55,7 +55,7 @@ abstract class IntelliJNewProjectWizardStep<ParentStep>(val parent: ParentStep)
|
||||
final override var contentRoot by contentRootProperty
|
||||
final override var moduleFileLocation by moduleFileLocationProperty
|
||||
final override var addSampleCode by addSampleCodeProperty
|
||||
final override val generateOnboardingTips by generateOnboardingTipsProperty
|
||||
final override var generateOnboardingTips by generateOnboardingTipsProperty
|
||||
|
||||
private var userDefinedContentRoot: Boolean = false
|
||||
private var userDefinedModuleFileLocation: Boolean = false
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.ide.projectWizard;
|
||||
|
||||
import com.intellij.ide.projectWizard.generators.IntelliJJavaNewProjectWizardData;
|
||||
import com.intellij.ide.wizard.LanguageNewProjectWizardData;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -18,6 +16,9 @@ import com.intellij.testFramework.IdeaTestUtil;
|
||||
import com.intellij.ui.UIBundle;
|
||||
import com.intellij.util.SystemProperties;
|
||||
|
||||
import static com.intellij.ide.projectWizard.generators.IntelliJJavaNewProjectWizardData.getJavaData;
|
||||
import static com.intellij.ide.wizard.LanguageNewProjectWizardData.getLanguageData;
|
||||
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
*/
|
||||
@@ -60,15 +61,15 @@ public class NewProjectWizardTest extends NewProjectWizardTestCase {
|
||||
|
||||
// Project with default JDK
|
||||
Project project = createProjectFromTemplate(step -> {
|
||||
IntelliJJavaNewProjectWizardData.setSdk(step, defaultSdk);
|
||||
getJavaData(step).setSdk(defaultSdk);
|
||||
});
|
||||
assertEquals(ProjectRootManager.getInstance(project).getProjectSdk().getName(), defaultSdk.getName());
|
||||
|
||||
// Module with custom JDK
|
||||
createModuleFromTemplate(project, step -> {
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
IntelliJJavaNewProjectWizardData.setSdk(step, otherSdk);
|
||||
IntelliJJavaNewProjectWizardData.setModuleName(step, moduleName);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaData(step).setSdk(otherSdk);
|
||||
getJavaData(step).setModuleName(moduleName);
|
||||
});
|
||||
|
||||
final var manager = ModuleManager.getInstance(project);
|
||||
@@ -132,7 +133,7 @@ public class NewProjectWizardTest extends NewProjectWizardTestCase {
|
||||
|
||||
public void testSampleCode() throws Exception {
|
||||
Project project = createProjectFromTemplate(step -> {
|
||||
IntelliJJavaNewProjectWizardData.setAddSampleCode(step, true);
|
||||
getJavaData(step).setAddSampleCode(true);
|
||||
});
|
||||
final var mainSearch = FilenameIndex.getVirtualFilesByName("Main.java", GlobalSearchScope.projectScope(project));
|
||||
assertFalse(mainSearch.isEmpty());
|
||||
|
||||
@@ -5,14 +5,22 @@ import com.intellij.openapi.externalSystem.util.ui.DataView
|
||||
import com.intellij.openapi.observable.properties.GraphProperty
|
||||
|
||||
interface MavenizedNewProjectWizardData<Data : Any> {
|
||||
|
||||
val parentProperty: GraphProperty<DataView<Data>>
|
||||
val groupIdProperty: GraphProperty<String>
|
||||
val artifactIdProperty: GraphProperty<String>
|
||||
val versionProperty: GraphProperty<String>
|
||||
|
||||
var parent: DataView<Data>
|
||||
|
||||
var parentData: Data?
|
||||
|
||||
val groupIdProperty: GraphProperty<String>
|
||||
|
||||
var groupId: String
|
||||
|
||||
val artifactIdProperty: GraphProperty<String>
|
||||
|
||||
var artifactId: String
|
||||
|
||||
val versionProperty: GraphProperty<String>
|
||||
|
||||
var version: String
|
||||
}
|
||||
@@ -7,7 +7,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logP
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logVersionChanged
|
||||
import com.intellij.ide.wizard.AbstractNewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.nameProperty
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.GROUP_ID_PROPERTY_NAME
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle
|
||||
@@ -27,8 +26,9 @@ import java.util.Comparator.comparing
|
||||
import java.util.function.Function
|
||||
import javax.swing.JList
|
||||
|
||||
abstract class MavenizedNewProjectWizardStep<Data : Any, ParentStep>(val parentStep: ParentStep) :
|
||||
AbstractNewProjectWizardStep(parentStep), MavenizedNewProjectWizardData<Data>
|
||||
abstract class MavenizedNewProjectWizardStep<Data : Any, ParentStep>(
|
||||
protected val parentStep: ParentStep
|
||||
) : AbstractNewProjectWizardStep(parentStep), MavenizedNewProjectWizardData<Data>
|
||||
where ParentStep : NewProjectWizardStep,
|
||||
ParentStep : NewProjectWizardBaseData {
|
||||
|
||||
@@ -98,7 +98,7 @@ abstract class MavenizedNewProjectWizardStep<Data : Any, ParentStep>(val parentS
|
||||
.trimmedTextValidation(CHECK_NON_EMPTY, CHECK_ARTIFACT_ID)
|
||||
.validation { validateArtifactId() }
|
||||
.validationRequestor(WHEN_PROPERTY_CHANGED(artifactIdProperty))
|
||||
.validationRequestor(WHEN_PROPERTY_CHANGED(nameProperty))
|
||||
.validationRequestor(WHEN_PROPERTY_CHANGED(parentStep.nameProperty))
|
||||
.whenTextChangedFromUi { logArtifactIdChanged() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ public class WizardContext extends UserDataHolderBase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Useses to select presentable name for message bundle texts.
|
||||
* Uses to select presentable name for message bundle texts.
|
||||
* <br/>Message bundle examples:
|
||||
* <br/><code>sentence="New {0,choice,0#module|1#project}"</code> -> New project, New module
|
||||
* <br/><code>title="New {0,choice,0#Module|1#Project}"</code> -> New Project, New Module
|
||||
|
||||
@@ -8,8 +8,11 @@ interface GitNewProjectWizardData {
|
||||
val git: Boolean
|
||||
|
||||
companion object {
|
||||
|
||||
val KEY = Key.create<GitNewProjectWizardData>(GitNewProjectWizardData::class.java.name)
|
||||
|
||||
val NewProjectWizardStep.gitData: GitNewProjectWizardData? get() = data.getUserData(KEY)
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.gitData: GitNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,11 @@ interface LanguageNewProjectWizardData : NewProjectWizardBaseData {
|
||||
var language: String
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<LanguageNewProjectWizardData>(LanguageNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.languageData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<LanguageNewProjectWizardData>(LanguageNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.languageProperty get() = languageData.languageProperty
|
||||
@JvmStatic var NewProjectWizardStep.language get() = languageData.language; set(it) { languageData.language = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.languageData: LanguageNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -8,26 +8,27 @@ import java.nio.file.Path
|
||||
interface NewProjectWizardBaseData {
|
||||
|
||||
val nameProperty: GraphProperty<String>
|
||||
val pathProperty: GraphProperty<String>
|
||||
|
||||
var name: String
|
||||
|
||||
val pathProperty: GraphProperty<String>
|
||||
|
||||
var path: String // canonical
|
||||
|
||||
/**
|
||||
* @deprecated projectPath throws exception when it isn't validated
|
||||
*/
|
||||
@Deprecated("Unsafe", ReplaceWith("Path.of(path, name)", "java.nio.file.Path"))
|
||||
@Deprecated(
|
||||
message = "Unsafe: projectPath throws exception when it isn't validated",
|
||||
replaceWith = ReplaceWith("Path.of(path, name)", "java.nio.file.Path"),
|
||||
level = DeprecationLevel.ERROR
|
||||
)
|
||||
val projectPath: Path
|
||||
get() = Path.of(path, name)
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<NewProjectWizardBaseData>(NewProjectWizardBaseData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.baseData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<NewProjectWizardBaseData>(NewProjectWizardBaseData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.nameProperty get() = baseData.nameProperty
|
||||
@JvmStatic val NewProjectWizardStep.pathProperty get() = baseData.pathProperty
|
||||
@JvmStatic var NewProjectWizardStep.name get() = baseData.name; set(it) { baseData.name = it }
|
||||
@JvmStatic var NewProjectWizardStep.path get() = baseData.path; set(it) { baseData.path = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.baseData: NewProjectWizardBaseData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -11,10 +11,11 @@ import com.intellij.ui.dsl.builder.Row
|
||||
import com.intellij.ui.dsl.builder.SegmentedButton
|
||||
import com.intellij.util.PlatformUtils
|
||||
|
||||
class NewProjectWizardLanguageStep(parent: NewProjectWizardStep) :
|
||||
AbstractNewProjectWizardMultiStepWithAddButton<NewProjectWizardLanguageStep, LanguageNewProjectWizard>(parent, LanguageNewProjectWizard.EP_NAME),
|
||||
LanguageNewProjectWizardData,
|
||||
NewProjectWizardBaseData by parent.baseData {
|
||||
class NewProjectWizardLanguageStep(
|
||||
parent: NewProjectWizardStep
|
||||
) : AbstractNewProjectWizardMultiStepWithAddButton<NewProjectWizardLanguageStep, LanguageNewProjectWizard>(parent, LanguageNewProjectWizard.EP_NAME),
|
||||
LanguageNewProjectWizardData,
|
||||
NewProjectWizardBaseData by parent.baseData!! {
|
||||
|
||||
override val self = this
|
||||
|
||||
|
||||
@@ -7,8 +7,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.GRAD
|
||||
import com.intellij.ide.projectWizard.generators.*
|
||||
import com.intellij.ide.projectWizard.generators.AssetsJavaNewProjectWizardStep.Companion.proposeToGenerateOnboardingTipsByDefault
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
|
||||
import com.intellij.ide.wizard.chain
|
||||
@@ -16,9 +14,6 @@ import com.intellij.openapi.observable.util.bindBooleanStorage
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.ui.UIBundle
|
||||
import com.intellij.ui.dsl.builder.*
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.addSampleCode
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.gradleData
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.groupId
|
||||
|
||||
internal class GradleJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
|
||||
|
||||
@@ -35,11 +30,11 @@ internal class GradleJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
|
||||
|
||||
override val addSampleCodeProperty = propertyGraph.property(true)
|
||||
.bindBooleanStorage(ADD_SAMPLE_CODE_PROPERTY_NAME)
|
||||
private val generateOnboardingTipsProperty = propertyGraph.property(proposeToGenerateOnboardingTipsByDefault())
|
||||
override val generateOnboardingTipsProperty = propertyGraph.property(proposeToGenerateOnboardingTipsByDefault())
|
||||
.bindBooleanStorage(NewProjectWizardStep.GENERATE_ONBOARDING_TIPS_NAME)
|
||||
|
||||
override var addSampleCode by addSampleCodeProperty
|
||||
override val generateOnboardingTips by generateOnboardingTipsProperty
|
||||
override var generateOnboardingTips by generateOnboardingTipsProperty
|
||||
|
||||
private fun setupSampleCodeUI(builder: Panel) {
|
||||
builder.row {
|
||||
@@ -85,18 +80,20 @@ internal class GradleJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
|
||||
}
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsJavaNewProjectWizardStep(parent) {
|
||||
private class AssetsStep(
|
||||
private val parent: Step
|
||||
) : AssetsJavaNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getGradleIgnoreAssets())
|
||||
if (addSampleCode) {
|
||||
withJavaSampleCodeAsset("src/main/java", groupId, gradleData.generateOnboardingTips)
|
||||
if (parent.addSampleCode) {
|
||||
withJavaSampleCodeAsset("src/main/java", parent.groupId, parent.generateOnboardingTips)
|
||||
}
|
||||
}
|
||||
|
||||
override fun setupProject(project: Project) {
|
||||
super.setupProject(project)
|
||||
if (gradleData.generateOnboardingTips) {
|
||||
if (parent.generateOnboardingTips) {
|
||||
prepareTipsInEditor(project)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,28 +8,19 @@ import com.intellij.openapi.util.Key
|
||||
interface GradleJavaNewProjectWizardData : GradleNewProjectWizardData {
|
||||
|
||||
val addSampleCodeProperty: GraphProperty<Boolean>
|
||||
|
||||
var addSampleCode: Boolean
|
||||
val generateOnboardingTips: Boolean
|
||||
|
||||
val generateOnboardingTipsProperty: GraphProperty<Boolean>
|
||||
|
||||
var generateOnboardingTips: Boolean
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<GradleJavaNewProjectWizardData>(GradleJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.gradleData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<GradleJavaNewProjectWizardData>(GradleJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.sdkProperty get() = gradleData.sdkProperty
|
||||
@JvmStatic val NewProjectWizardStep.gradleDslProperty get() = gradleData.gradleDslProperty
|
||||
@JvmStatic val NewProjectWizardStep.parentProperty get() = gradleData.parentProperty
|
||||
@JvmStatic val NewProjectWizardStep.groupIdProperty get() = gradleData.groupIdProperty
|
||||
@JvmStatic val NewProjectWizardStep.artifactIdProperty get() = gradleData.artifactIdProperty
|
||||
@JvmStatic val NewProjectWizardStep.versionProperty get() = gradleData.versionProperty
|
||||
@JvmStatic val NewProjectWizardStep.addSampleCodeProperty get() = gradleData.addSampleCodeProperty
|
||||
@JvmStatic var NewProjectWizardStep.sdk get() = gradleData.sdk; set(it) { gradleData.sdk = it }
|
||||
@JvmStatic var NewProjectWizardStep.gradleDsl get() = gradleData.gradleDsl; set(it) { gradleData.gradleDsl = it }
|
||||
@JvmStatic var NewProjectWizardStep.parent get() = gradleData.parent; set(it) { gradleData.parent = it }
|
||||
@JvmStatic var NewProjectWizardStep.parentData get() = gradleData.parentData; set(it) { gradleData.parentData = it }
|
||||
@JvmStatic var NewProjectWizardStep.groupId get() = gradleData.groupId; set(it) { gradleData.groupId = it }
|
||||
@JvmStatic var NewProjectWizardStep.artifactId get() = gradleData.artifactId; set(it) { gradleData.artifactId = it }
|
||||
@JvmStatic var NewProjectWizardStep.version get() = gradleData.version; set(it) { gradleData.version = it }
|
||||
@JvmStatic var NewProjectWizardStep.addSampleCode get() = gradleData.addSampleCode; set(it) { gradleData.addSampleCode = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.javaGradleData: GradleJavaNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -7,9 +7,12 @@ import com.intellij.openapi.observable.properties.GraphProperty
|
||||
import com.intellij.openapi.projectRoots.Sdk
|
||||
|
||||
interface GradleNewProjectWizardData : MavenizedNewProjectWizardData<ProjectData> {
|
||||
|
||||
val sdkProperty: GraphProperty<Sdk?>
|
||||
val gradleDslProperty: GraphProperty<GradleNewProjectWizardStep.GradleDsl>
|
||||
|
||||
var sdk: Sdk?
|
||||
|
||||
val gradleDslProperty: GraphProperty<GradleNewProjectWizardStep.GradleDsl>
|
||||
|
||||
var gradleDsl: GradleNewProjectWizardStep.GradleDsl
|
||||
}
|
||||
@@ -6,19 +6,21 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logD
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkChanged
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logSdkFinished
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectData
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectId
|
||||
import com.intellij.openapi.externalSystem.service.project.ProjectDataManager
|
||||
import com.intellij.openapi.externalSystem.service.project.wizard.MavenizedNewProjectWizardStep
|
||||
import com.intellij.openapi.externalSystem.service.ui.completion.*
|
||||
import com.intellij.openapi.externalSystem.service.ui.completion.TextCompletionComboBox
|
||||
import com.intellij.openapi.externalSystem.service.ui.completion.TextCompletionComboBoxConverter
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle
|
||||
import com.intellij.openapi.externalSystem.util.ui.DataView
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
|
||||
import com.intellij.openapi.module.StdModuleTypes
|
||||
import com.intellij.openapi.observable.util.*
|
||||
import com.intellij.openapi.observable.util.bindEnumStorage
|
||||
import com.intellij.openapi.observable.util.not
|
||||
import com.intellij.openapi.observable.util.toUiPathProperty
|
||||
import com.intellij.openapi.observable.util.transform
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.projectRoots.JavaSdkType
|
||||
import com.intellij.openapi.projectRoots.Sdk
|
||||
@@ -338,8 +340,8 @@ abstract class GradleNewProjectWizardStep<ParentStep>(parent: ParentStep) :
|
||||
) {
|
||||
val builder = InternalGradleModuleBuilder()
|
||||
builder.moduleJdk = sdk
|
||||
builder.name = name
|
||||
builder.contentEntryPath = "$path/$name"
|
||||
builder.name = parentStep.name
|
||||
builder.contentEntryPath = parentStep.path + "/" + parentStep.name
|
||||
|
||||
builder.isCreatingNewProject = context.isCreatingNewProject
|
||||
|
||||
|
||||
@@ -6,8 +6,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.GRAD
|
||||
import com.intellij.ide.projectWizard.generators.AssetsJavaNewProjectWizardStep.Companion.createJavaSourcePath
|
||||
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
|
||||
import com.intellij.ide.wizard.chain
|
||||
@@ -89,7 +87,6 @@ class GradleGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard {
|
||||
private class AssetsStep(private val parent: Step) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getGradleIgnoreAssets())
|
||||
if (parent.addSampleCode) {
|
||||
val sourcePath = createJavaSourcePath("src/main/groovy", parent.groupId, "Main.groovy")
|
||||
|
||||
@@ -4,11 +4,9 @@ package org.jetbrains.plugins.gradle.importing
|
||||
import com.intellij.ide.impl.NewProjectUtil
|
||||
import com.intellij.ide.projectWizard.NewProjectWizard
|
||||
import com.intellij.ide.projectWizard.ProjectTypeStep
|
||||
import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.buildSystem
|
||||
import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.javaBuildSystemData
|
||||
import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard
|
||||
import com.intellij.ide.wizard.LanguageNewProjectWizardData.Companion.language
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.baseData
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.Step
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
@@ -35,12 +33,7 @@ import com.intellij.testFramework.fixtures.TempDirTestFixture
|
||||
import com.intellij.testFramework.useProject
|
||||
import com.intellij.ui.UIBundle
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.addSampleCode
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.artifactId
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.gradleDsl
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.groupId
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.parentData
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.version
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.Companion.javaGradleData
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleNewProjectWizardStep.GradleDsl
|
||||
import org.jetbrains.plugins.gradle.settings.GradleSettings
|
||||
import org.jetbrains.plugins.gradle.testFramework.fixtures.GradleTestFixtureFactory
|
||||
@@ -150,19 +143,26 @@ abstract class GradleCreateProjectTestCase : UsefulTestCase() {
|
||||
}
|
||||
|
||||
private fun configureWizardStepSettings(step: NewProjectWizardStep, moduleInfo: ModuleInfo, parentData: ProjectData?) {
|
||||
step.name = moduleInfo.root.name
|
||||
step.path = moduleInfo.root.parent.path
|
||||
step.language = "Java"
|
||||
step.buildSystem = "Gradle"
|
||||
step.gradleDsl = when (moduleInfo.useKotlinDsl) {
|
||||
val baseData = step.baseData!!
|
||||
val buildSystemData = step.javaBuildSystemData!!
|
||||
val gradleData = step.javaGradleData!!
|
||||
baseData.name = moduleInfo.root.name
|
||||
baseData.path = moduleInfo.root.parent.path
|
||||
buildSystemData.language = "Java"
|
||||
buildSystemData.buildSystem = "Gradle"
|
||||
gradleData.gradleDsl = when (moduleInfo.useKotlinDsl) {
|
||||
true -> GradleDsl.KOTLIN
|
||||
else -> GradleDsl.GROOVY
|
||||
}
|
||||
step.parentData = parentData
|
||||
moduleInfo.groupId?.let { step.groupId = it }
|
||||
step.artifactId = moduleInfo.artifactId
|
||||
moduleInfo.version?.let { step.version = it }
|
||||
step.addSampleCode = false
|
||||
gradleData.parentData = parentData
|
||||
if (moduleInfo.groupId != null) {
|
||||
gradleData.groupId = moduleInfo.groupId
|
||||
}
|
||||
gradleData.artifactId = moduleInfo.artifactId
|
||||
if (moduleInfo.version != null) {
|
||||
gradleData.version = moduleInfo.version
|
||||
}
|
||||
gradleData.addSampleCode = false
|
||||
}
|
||||
|
||||
private fun createProject(directory: String, configure: (NewProjectWizardStep) -> Unit): Project? {
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
package org.jetbrains.plugins.gradle.importing;
|
||||
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardTestCase;
|
||||
import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData;
|
||||
import com.intellij.ide.wizard.LanguageNewProjectWizardData;
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData;
|
||||
import com.intellij.ide.wizard.Step;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
@@ -40,7 +37,6 @@ import com.intellij.util.io.PathKt;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData;
|
||||
import org.jetbrains.plugins.gradle.util.GradleImportingTestUtil;
|
||||
|
||||
import java.io.File;
|
||||
@@ -48,6 +44,10 @@ import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static com.intellij.ide.wizard.NewProjectWizardBaseData.getBaseData;
|
||||
import static com.intellij.ide.wizard.LanguageNewProjectWizardData.getLanguageData;
|
||||
import static com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.getJavaBuildSystemData;
|
||||
import static org.jetbrains.plugins.gradle.service.project.wizard.GradleJavaNewProjectWizardData.getJavaGradleData;
|
||||
import static com.intellij.platform.externalSystem.testFramework.ExternalSystemTestCase.collectRootsInside;
|
||||
import static org.jetbrains.plugins.gradle.util.GradleConstants.SYSTEM_ID;
|
||||
|
||||
@@ -58,7 +58,7 @@ public class GradleProjectWizardTest extends NewProjectWizardTestCase {
|
||||
|
||||
public void testGradleNPWPropertiesSuggestion() throws Exception {
|
||||
Project project = createProjectFromTemplate(UIBundle.message("label.project.wizard.empty.project.generator.name"), step -> {
|
||||
NewProjectWizardBaseData.setName(step, "project");
|
||||
getBaseData(step).setName("project");
|
||||
});
|
||||
assertModules(project, "project");
|
||||
|
||||
@@ -67,22 +67,22 @@ public class GradleProjectWizardTest extends NewProjectWizardTestCase {
|
||||
var externalProjectPath2 = projectPath + "/untitled1";
|
||||
GradleImportingTestUtil.waitForProjectReload(() -> {
|
||||
return createModuleFromTemplate(project, step -> {
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
BuildSystemJavaNewProjectWizardData.setBuildSystem(step, "Gradle");
|
||||
assertNull(GradleJavaNewProjectWizardData.getParentData(step));
|
||||
assertEquals("untitled", NewProjectWizardBaseData.getName(step));
|
||||
assertEquals(projectPath, NewProjectWizardBaseData.getPath(step));
|
||||
GradleJavaNewProjectWizardData.setAddSampleCode(step, false);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaBuildSystemData(step).setBuildSystem("Gradle");
|
||||
assertNull(getJavaGradleData(step).getParentData());
|
||||
assertEquals("untitled", getBaseData(step).getName());
|
||||
assertEquals(projectPath, getBaseData(step).getPath());
|
||||
getJavaGradleData(step).setAddSampleCode(false);
|
||||
});
|
||||
});
|
||||
GradleImportingTestUtil.waitForProjectReload(() -> {
|
||||
return createModuleFromTemplate(project, step -> {
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
BuildSystemJavaNewProjectWizardData.setBuildSystem(step, "Gradle");
|
||||
assertNull(GradleJavaNewProjectWizardData.getParentData(step));
|
||||
assertEquals("untitled1", NewProjectWizardBaseData.getName(step));
|
||||
assertEquals(projectPath, NewProjectWizardBaseData.getPath(step));
|
||||
GradleJavaNewProjectWizardData.setAddSampleCode(step, false);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaBuildSystemData(step).setBuildSystem("Gradle");
|
||||
assertNull(getJavaGradleData(step).getParentData());
|
||||
assertEquals("untitled1", getBaseData(step).getName());
|
||||
assertEquals(projectPath, getBaseData(step).getPath());
|
||||
getJavaGradleData(step).setAddSampleCode(false);
|
||||
});
|
||||
});
|
||||
assertModules(
|
||||
@@ -95,22 +95,22 @@ public class GradleProjectWizardTest extends NewProjectWizardTestCase {
|
||||
DataNode<ProjectData> projectNode2 = ExternalSystemApiUtil.findProjectNode(project, SYSTEM_ID, externalProjectPath2);
|
||||
GradleImportingTestUtil.waitForProjectReload(() -> {
|
||||
return createModuleFromTemplate(project, step -> {
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
BuildSystemJavaNewProjectWizardData.setBuildSystem(step, "Gradle");
|
||||
GradleJavaNewProjectWizardData.setParentData(step, projectNode1.getData());
|
||||
assertEquals("untitled2", NewProjectWizardBaseData.getName(step));
|
||||
assertEquals(externalProjectPath1, NewProjectWizardBaseData.getPath(step));
|
||||
GradleJavaNewProjectWizardData.setAddSampleCode(step, false);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaBuildSystemData(step).setBuildSystem("Gradle");
|
||||
getJavaGradleData(step).setParentData(projectNode1.getData());
|
||||
assertEquals("untitled2", getBaseData(step).getName());
|
||||
assertEquals(externalProjectPath1, getBaseData(step).getPath());
|
||||
getJavaGradleData(step).setAddSampleCode(false);
|
||||
});
|
||||
});
|
||||
GradleImportingTestUtil.waitForProjectReload(() -> {
|
||||
return createModuleFromTemplate(project, step -> {
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
BuildSystemJavaNewProjectWizardData.setBuildSystem(step, "Gradle");
|
||||
GradleJavaNewProjectWizardData.setParentData(step, projectNode2.getData());
|
||||
assertEquals("untitled2", NewProjectWizardBaseData.getName(step));
|
||||
assertEquals(externalProjectPath2, NewProjectWizardBaseData.getPath(step));
|
||||
GradleJavaNewProjectWizardData.setAddSampleCode(step, false);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaBuildSystemData(step).setBuildSystem("Gradle");
|
||||
getJavaGradleData(step).setParentData(projectNode2.getData());
|
||||
assertEquals("untitled2", getBaseData(step).getName());
|
||||
assertEquals(externalProjectPath2, getBaseData(step).getPath());
|
||||
getJavaGradleData(step).setAddSampleCode(false);
|
||||
});
|
||||
});
|
||||
assertModules(
|
||||
@@ -126,10 +126,10 @@ public class GradleProjectWizardTest extends NewProjectWizardTestCase {
|
||||
final String projectName = "testProject";
|
||||
Project project = GradleImportingTestUtil.waitForProjectReload(() -> {
|
||||
return createProjectFromTemplate(step -> {
|
||||
NewProjectWizardBaseData.setName(step, projectName);
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
BuildSystemJavaNewProjectWizardData.setBuildSystem(step, "Gradle");
|
||||
GradleJavaNewProjectWizardData.setAddSampleCode(step, false);
|
||||
getBaseData(step).setName(projectName);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaBuildSystemData(step).setBuildSystem("Gradle");
|
||||
getJavaGradleData(step).setAddSampleCode(false);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -175,11 +175,11 @@ public class GradleProjectWizardTest extends NewProjectWizardTestCase {
|
||||
|
||||
Module childModule = GradleImportingTestUtil.waitForProjectReload(() -> {
|
||||
return createModuleFromTemplate(project, step -> {
|
||||
LanguageNewProjectWizardData.setLanguage(step, "Java");
|
||||
BuildSystemJavaNewProjectWizardData.setBuildSystem(step, "Gradle");
|
||||
assertEquals(projectName, GradleJavaNewProjectWizardData.getParentData(step).getExternalName());
|
||||
GradleJavaNewProjectWizardData.setArtifactId(step, "childModule");
|
||||
GradleJavaNewProjectWizardData.setAddSampleCode(step, false);
|
||||
getLanguageData(step).setLanguage("Java");
|
||||
getJavaBuildSystemData(step).setBuildSystem("Gradle");
|
||||
assertEquals(projectName, getJavaGradleData(step).getParentData().getExternalName());
|
||||
getJavaGradleData(step).setArtifactId("childModule");
|
||||
getJavaGradleData(step).setAddSampleCode(false);
|
||||
});
|
||||
});
|
||||
UIUtil.invokeAndWaitIfNeeded((Runnable)() -> PlatformTestUtil.dispatchAllInvocationEventsInIdeEventQueue());
|
||||
|
||||
@@ -14,11 +14,11 @@ interface BuildSystemGroovyNewProjectWizardData: BuildSystemNewProjectWizardData
|
||||
var groovySdk : DistributionInfo?
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<BuildSystemGroovyNewProjectWizardData>(BuildSystemGroovyNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.buildSystemData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<BuildSystemGroovyNewProjectWizardData>(BuildSystemGroovyNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.buildSystemProperty get() = buildSystemData.buildSystemProperty
|
||||
@JvmStatic var NewProjectWizardStep.buildSystem get() = buildSystemData.buildSystem; set(it) { buildSystemData.buildSystem = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.groovyBuildSystemData: BuildSystemGroovyNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,6 @@ import com.intellij.ide.projectWizard.generators.IntelliJNewProjectWizardStep
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.util.EditorHelper
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.chain
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
@@ -28,9 +26,7 @@ import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.vfs.LocalFileSystem
|
||||
import com.intellij.openapi.vfs.VfsUtil
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.ui.dsl.builder.BottomGap
|
||||
import com.intellij.ui.dsl.builder.Panel
|
||||
import org.jetbrains.plugins.groovy.GroovyBundle
|
||||
import org.jetbrains.plugins.groovy.config.GroovyAwareModuleBuilder
|
||||
import org.jetbrains.plugins.groovy.config.GroovyLibraryDescription
|
||||
import java.awt.KeyboardFocusManager
|
||||
@@ -126,8 +122,8 @@ class IntelliJGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard {
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getIntelliJIgnoreAssets())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logA
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.GRADLE
|
||||
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
|
||||
import com.intellij.ide.wizard.chain
|
||||
import com.intellij.openapi.observable.util.bindBooleanStorage
|
||||
@@ -66,8 +63,8 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard
|
||||
override fun setupProject(project: Project) {
|
||||
KotlinNewProjectWizard.generateProject(
|
||||
project = project,
|
||||
projectPath = "$path/$name",
|
||||
projectName = name,
|
||||
projectPath = parentStep.path + "/" + parentStep.name,
|
||||
projectName = parentStep.name,
|
||||
sdk = sdk,
|
||||
buildSystemType = when (gradleDsl) {
|
||||
GradleDsl.KOTLIN -> GradleKotlinDsl
|
||||
@@ -81,9 +78,9 @@ internal class GradleKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard
|
||||
}
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) {
|
||||
private class AssetsStep(parent: Step) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getGradlewAssets())
|
||||
addAssets(StandardAssetsProvider().getGradleIgnoreAssets())
|
||||
}
|
||||
|
||||
@@ -6,12 +6,13 @@ import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.openapi.util.Key
|
||||
|
||||
interface BuildSystemKotlinNewProjectWizardData: BuildSystemNewProjectWizardData {
|
||||
|
||||
companion object {
|
||||
@JvmStatic val KEY = Key.create<BuildSystemKotlinNewProjectWizardData>(BuildSystemKotlinNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.buildSystemData get() = data.getUserData(KEY)!!
|
||||
val KEY = Key.create<BuildSystemKotlinNewProjectWizardData>(BuildSystemKotlinNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic val NewProjectWizardStep.buildSystemProperty get() = buildSystemData.buildSystemProperty
|
||||
@JvmStatic var NewProjectWizardStep.buildSystem get() = buildSystemData.buildSystem; set(it) { buildSystemData.buildSystem = it }
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.kotlinBuildSystemData: BuildSystemKotlinNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.INTE
|
||||
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
|
||||
import com.intellij.ide.projectWizard.generators.IntelliJNewProjectWizardStep
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.chain
|
||||
import com.intellij.openapi.project.Project
|
||||
@@ -46,8 +44,8 @@ internal class IntelliJKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizar
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getIntelliJIgnoreAssets())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logA
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.MAVEN
|
||||
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
|
||||
import com.intellij.ide.wizard.chain
|
||||
@@ -83,8 +81,8 @@ internal class MavenKotlinNewProjectWizard : BuildSystemKotlinNewProjectWizard {
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getMavenIgnoreAssets())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardCollector.BuildSystem.logA
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.MAVEN
|
||||
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
|
||||
import com.intellij.ide.wizard.chain
|
||||
@@ -138,8 +136,8 @@ class MavenGroovyNewProjectWizard : BuildSystemGroovyNewProjectWizard {
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getMavenIgnoreAssets())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.MAVE
|
||||
import com.intellij.ide.projectWizard.generators.*
|
||||
import com.intellij.ide.projectWizard.generators.AssetsJavaNewProjectWizardStep.Companion.proposeToGenerateOnboardingTipsByDefault
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep.Companion.ADD_SAMPLE_CODE_PROPERTY_NAME
|
||||
import com.intellij.ide.wizard.chain
|
||||
@@ -28,15 +26,16 @@ class MavenJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
|
||||
|
||||
class Step(parent: JavaNewProjectWizard.Step) :
|
||||
MavenNewProjectWizardStep<JavaNewProjectWizard.Step>(parent),
|
||||
BuildSystemJavaNewProjectWizardData by parent {
|
||||
BuildSystemJavaNewProjectWizardData by parent,
|
||||
MavenJavaNewProjectWizardData {
|
||||
|
||||
private val addSampleCodeProperty = propertyGraph.property(true)
|
||||
override val addSampleCodeProperty = propertyGraph.property(true)
|
||||
.bindBooleanStorage(ADD_SAMPLE_CODE_PROPERTY_NAME)
|
||||
private val generateOnboardingTipsProperty = propertyGraph.property(proposeToGenerateOnboardingTipsByDefault())
|
||||
override val generateOnboardingTipsProperty = propertyGraph.property(proposeToGenerateOnboardingTipsByDefault())
|
||||
.bindBooleanStorage(NewProjectWizardStep.GENERATE_ONBOARDING_TIPS_NAME)
|
||||
|
||||
var addSampleCode by addSampleCodeProperty
|
||||
val generateOnboardingTips by generateOnboardingTipsProperty
|
||||
override var addSampleCode by addSampleCodeProperty
|
||||
override var generateOnboardingTips by generateOnboardingTipsProperty
|
||||
|
||||
private fun setupSampleCodeUI(builder: Panel) {
|
||||
builder.row {
|
||||
@@ -87,8 +86,8 @@ class MavenJavaNewProjectWizard : BuildSystemJavaNewProjectWizard {
|
||||
}
|
||||
|
||||
private class AssetsStep(private val parent: Step) : AssetsJavaNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getMavenIgnoreAssets())
|
||||
if (parent.addSampleCode) {
|
||||
withJavaSampleCodeAsset("src/main/java", parent.groupId, parent.generateOnboardingTips)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.idea.maven.wizards
|
||||
|
||||
import com.intellij.ide.wizard.NewProjectWizardStep
|
||||
import com.intellij.openapi.observable.properties.GraphProperty
|
||||
import com.intellij.openapi.util.Key
|
||||
|
||||
interface MavenJavaNewProjectWizardData : MavenNewProjectWizardData {
|
||||
|
||||
val addSampleCodeProperty: GraphProperty<Boolean>
|
||||
|
||||
var addSampleCode: Boolean
|
||||
|
||||
val generateOnboardingTipsProperty: GraphProperty<Boolean>
|
||||
|
||||
var generateOnboardingTips: Boolean
|
||||
|
||||
companion object {
|
||||
|
||||
val KEY = Key.create<MavenJavaNewProjectWizardData>(MavenJavaNewProjectWizardData::class.java.name)
|
||||
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.javaMavenData: MavenJavaNewProjectWizardData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.idea.maven.wizards
|
||||
|
||||
import com.intellij.openapi.externalSystem.service.project.wizard.MavenizedNewProjectWizardData
|
||||
import com.intellij.openapi.observable.properties.GraphProperty
|
||||
import com.intellij.openapi.projectRoots.Sdk
|
||||
import org.jetbrains.idea.maven.project.MavenProject
|
||||
|
||||
interface MavenNewProjectWizardData : MavenizedNewProjectWizardData<MavenProject> {
|
||||
|
||||
val sdkProperty: GraphProperty<Sdk?>
|
||||
|
||||
var sdk: Sdk?
|
||||
}
|
||||
@@ -17,22 +17,21 @@ import com.intellij.openapi.projectRoots.impl.DependentSdkType
|
||||
import com.intellij.openapi.roots.ui.configuration.sdkComboBox
|
||||
import com.intellij.openapi.ui.ValidationInfo
|
||||
import com.intellij.ui.dsl.builder.*
|
||||
import com.intellij.ui.layout.*
|
||||
import com.intellij.ui.layout.ValidationInfoBuilder
|
||||
import icons.OpenapiIcons
|
||||
import org.jetbrains.idea.maven.project.MavenProject
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import javax.swing.Icon
|
||||
|
||||
abstract class MavenNewProjectWizardStep<ParentStep>(parent: ParentStep) :
|
||||
MavenizedNewProjectWizardStep<MavenProject, ParentStep>(parent)
|
||||
MavenizedNewProjectWizardStep<MavenProject, ParentStep>(parent),
|
||||
MavenNewProjectWizardData
|
||||
where ParentStep : NewProjectWizardStep,
|
||||
ParentStep : NewProjectWizardBaseData {
|
||||
|
||||
// used externally
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
val sdkProperty = propertyGraph.property<Sdk?>(null)
|
||||
final override val sdkProperty = propertyGraph.property<Sdk?>(null)
|
||||
|
||||
val sdk by sdkProperty
|
||||
final override var sdk by sdkProperty
|
||||
|
||||
protected fun setupJavaSdkUI(builder: Panel) {
|
||||
builder.row(JavaUiBundle.message("label.project.wizard.new.project.jdk")) {
|
||||
@@ -63,8 +62,11 @@ abstract class MavenNewProjectWizardStep<ParentStep>(parent: ParentStep) :
|
||||
private fun ValidationInfoBuilder.validateCoordinates(): ValidationInfo? {
|
||||
val mavenIds = parentsData.map { it.mavenId.groupId to it.mavenId.artifactId }.toSet()
|
||||
if (groupId to artifactId in mavenIds) {
|
||||
val message = ExternalSystemBundle.message("external.system.mavenized.structure.wizard.entity.coordinates.already.exists.error",
|
||||
if (context.isCreatingNewProject) 1 else 0, "$groupId:$artifactId")
|
||||
val message = ExternalSystemBundle.message(
|
||||
"external.system.mavenized.structure.wizard.entity.coordinates.already.exists.error",
|
||||
context.isCreatingNewProjectInt,
|
||||
"$groupId:$artifactId"
|
||||
)
|
||||
return error(message)
|
||||
}
|
||||
return null
|
||||
|
||||
@@ -8,13 +8,11 @@ import com.intellij.icons.AllIcons
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardConstants.BuildSystem.MAVEN
|
||||
import com.intellij.ide.projectWizard.NewProjectWizardConstants.Language.JAVA
|
||||
import com.intellij.ide.projectWizard.generators.AssetsNewProjectWizardStep
|
||||
import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.buildSystem
|
||||
import com.intellij.ide.projectWizard.generators.BuildSystemJavaNewProjectWizardData.Companion.javaBuildSystemData
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.util.projectWizard.WizardContext
|
||||
import com.intellij.ide.wizard.*
|
||||
import com.intellij.ide.wizard.LanguageNewProjectWizardData.Companion.language
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.name
|
||||
import com.intellij.ide.wizard.NewProjectWizardBaseData.Companion.path
|
||||
import com.intellij.ide.wizard.LanguageNewProjectWizardData.Companion.languageData
|
||||
import com.intellij.ide.wizard.util.NewProjectLinkNewProjectWizardStep
|
||||
import com.intellij.openapi.externalSystem.service.ui.completion.TextCompletionRenderer.Companion.append
|
||||
import com.intellij.openapi.externalSystem.service.ui.completion.TextCompletionComboBox
|
||||
@@ -72,8 +70,8 @@ class MavenArchetypeNewProjectWizard : GeneratorNewProjectWizard {
|
||||
}
|
||||
|
||||
override fun onStepSelected(step: NewProjectWizardStep) {
|
||||
step.language = JAVA
|
||||
step.buildSystem = MAVEN
|
||||
step.languageData!!.language = JAVA
|
||||
step.javaBuildSystemData!!.buildSystem = MAVEN
|
||||
}
|
||||
}
|
||||
|
||||
@@ -426,8 +424,8 @@ class MavenArchetypeNewProjectWizard : GeneratorNewProjectWizard {
|
||||
}
|
||||
|
||||
private class AssetsStep(parent: NewProjectWizardStep) : AssetsNewProjectWizardStep(parent) {
|
||||
|
||||
override fun setupAssets(project: Project) {
|
||||
outputDirectory = "$path/$name"
|
||||
addAssets(StandardAssetsProvider().getMavenIgnoreAssets())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ class PythonNewProjectWizard : LanguageNewProjectWizard {
|
||||
* Data for sharing among the steps of the new Python project wizard.
|
||||
*/
|
||||
interface NewProjectWizardPythonData : NewProjectWizardBaseData {
|
||||
|
||||
/**
|
||||
* A property for tracking changes in [pythonSdk].
|
||||
*/
|
||||
@@ -68,13 +69,12 @@ interface NewProjectWizardPythonData : NewProjectWizardBaseData {
|
||||
val module: Module?
|
||||
|
||||
companion object {
|
||||
|
||||
val KEY = Key.create<NewProjectWizardPythonData>(NewProjectWizardPythonData::class.java.name)
|
||||
|
||||
private val NewProjectWizardStep.pythonData get() = data.getUserData(KEY)!!
|
||||
|
||||
val NewProjectWizardStep.pythonSdkProperty get() = pythonData.pythonSdkProperty
|
||||
val NewProjectWizardStep.pythonSdk get() = pythonData.pythonSdk
|
||||
val NewProjectWizardStep.module get() = pythonData.module
|
||||
@JvmStatic
|
||||
val NewProjectWizardStep.pythonData: NewProjectWizardPythonData?
|
||||
get() = data.getUserData(KEY)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user