[min-build] IJPL-35276 add new project action

GitOrigin-RevId: cc433ec30466ae988440e5fbd625c79e575e4835
This commit is contained in:
Andrii Zinchenko
2024-10-09 16:29:14 +02:00
committed by intellij-monorepo-bot
parent e165003666
commit d3f4c2ba3d
4 changed files with 52 additions and 4 deletions

View File

@@ -43,6 +43,10 @@
<add-to-group group-id="FileOpenGroup" anchor="first"/>
</group>
<group id="WelcomeScreen.DefaultNewProjectAction" class="com.intellij.ide.actions.DefaultNewProjectAction">
<add-to-group group-id="WelcomeScreen.QuickStart"/>
</group>
<action id="WelcomeScreen.OpenProject" class="com.intellij.ide.actions.OpenFileAction$OnWelcomeScreen">
<add-to-group group-id="WelcomeScreen.QuickStart"/>
</action>

View File

@@ -2817,10 +2817,7 @@
<add-to-group group-id="MarkRootGroup"/>
</group>
<group id="WelcomeScreen.QuickStart.IDEA">
<action id="WelcomeScreen.CreateNewProject" class="com.intellij.ide.actions.NewProjectAction"/>
<add-to-group group-id="WelcomeScreen.QuickStart" anchor="first"/>
</group>
<action id="WelcomeScreen.CreateNewProject" class="com.intellij.ide.actions.NewProjectAction"/>
<group id="MarkGeneratedSourceRootGroup">
<action id="MarkGeneratedSourceRoot" class="com.intellij.ide.projectView.actions.MarkGeneratedSourceRootAction"/>

View File

@@ -0,0 +1,46 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.actions
import com.intellij.ide.util.projectWizard.AbstractNewProjectStep
import com.intellij.ide.util.projectWizard.EmptyWebProjectTemplate
import com.intellij.ide.util.projectWizard.ProjectSettingsStepBase
import com.intellij.ide.util.projectWizard.WebProjectTemplate
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DefaultActionGroup
import com.intellij.openapi.project.DumbAware
import com.intellij.platform.DirectoryProjectGenerator
private class DefaultNewProjectStep : AbstractNewProjectStep<Any>(DefaultNewProjectStepCustomization()) {
private class DefaultNewProjectStepCustomization : Customization<Any>() {
override fun createEmptyProjectGenerator(): DirectoryProjectGenerator<Any> {
return EmptyWebProjectTemplate()
}
override fun createProjectSpecificSettingsStep(
projectGenerator: DirectoryProjectGenerator<Any>,
callback: AbstractCallback<Any>,
): ProjectSettingsStepBase<Any> {
return ProjectSettingsStepBase(projectGenerator, callback);
}
override fun getActions(generators: List<DirectoryProjectGenerator<*>>, callback: AbstractCallback<Any>): Array<out AnAction> {
return generators
.partition { it is WebProjectTemplate }
.let { listOf("Web" to it.first, "Other" to it.second) }
.map { DefaultActionGroup(it.first, super.getActions(it.second, callback).toList()) }
.toTypedArray()
}
}
}
private class DefaultNewProjectAction : DefaultActionGroup(), DumbAware {
private fun getActualAction(): AnAction {
return ActionManager.getInstance().getAction("WelcomeScreen.CreateNewProject") ?: DefaultNewProjectStep()
}
override fun getChildren(e: AnActionEvent?): Array<AnAction> {
return arrayOf(getActualAction())
}
}

View File

@@ -1785,6 +1785,7 @@ action.FileChooser.TogglePathShowing.text=Show/Hide path text
action.WelcomeScreen.DevelopPlugins.text=Plugin Development
action.WelcomeScreen.DevelopPlugins.description=Get started developing plugins.
group.WelcomeScreen.DefaultNewProjectAction.text=New Project
action.WelcomeScreen.OpenProject.text=Open or Import
action.WelcomeScreen.OpenProject.description=Open file or project. You can also open a project or edit a file by drag and drop onto the Welcome screen.
action.Tabbed.WelcomeScreen.OpenProject.text=Open