Wizard: update project template texts

This commit is contained in:
Ilya Kirillov
2020-03-20 14:14:49 +03:00
parent 24d53d5d08
commit 7cc18ee4f5
3 changed files with 22 additions and 34 deletions
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.* import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.*
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.SettingComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.SettingComponent
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.ValidationIndicator import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.ValidationIndicator
import java.awt.Dimension
import javax.swing.JComponent import javax.swing.JComponent
class ProjectTemplateSettingComponent( class ProjectTemplateSettingComponent(
@@ -64,10 +65,11 @@ class ProjectTemplateSettingComponent(
class TemplateDescriptionComponent : Component() { class TemplateDescriptionComponent : Component() {
private val descriptionLabel = label("").apply { private val descriptionLabel = label("").apply {
fontColor = UIUtil.FontColor.BRIGHTER fontColor = UIUtil.FontColor.BRIGHTER
preferredSize = Dimension(preferredSize.width, 50)
} }
fun setTemplate(template: ProjectTemplate) { fun setTemplate(template: ProjectTemplate) {
descriptionLabel.text = template.description descriptionLabel.text = template.description.asHtml()
} }
override val component: JComponent = descriptionLabel override val component: JComponent = descriptionLabel
@@ -13,7 +13,6 @@ import com.intellij.ui.components.JBTextField
import com.intellij.util.ui.UIUtil import com.intellij.util.ui.UIUtil
import com.intellij.util.ui.components.BorderLayoutPanel import com.intellij.util.ui.components.BorderLayoutPanel
import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.KotlinIcons
import org.jetbrains.kotlin.tools.projectWizard.core.Failure
import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.ModuleConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.ModuleConfigurator
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.SimpleTargetConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.SimpleTargetConfigurator
@@ -1,14 +1,11 @@
package org.jetbrains.kotlin.tools.projectWizard.projectTemplates package org.jetbrains.kotlin.tools.projectWizard.projectTemplates
import org.intellij.lang.annotations.Language
import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.core.buildList
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.* import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.*
import org.jetbrains.kotlin.tools.projectWizard.core.safeAs
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.* import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.*
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.withAllSubModules
import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
import org.jetbrains.kotlin.tools.projectWizard.templates.* import org.jetbrains.kotlin.tools.projectWizard.templates.*
@@ -16,7 +13,7 @@ import org.jetbrains.kotlin.tools.projectWizard.templates.*
sealed class ProjectTemplate : DisplayableSettingItem { sealed class ProjectTemplate : DisplayableSettingItem {
abstract val title: String abstract val title: String
override val text: String get() = title override val text: String get() = title
abstract val htmlDescription: String abstract val description: String
abstract val suggestedProjectName: String abstract val suggestedProjectName: String
abstract val projectKind: ProjectKind abstract val projectKind: ProjectKind
open val id: String open val id: String
@@ -103,8 +100,8 @@ private fun ModuleType.createDefaultTarget(
) = MultiplatformTargetModule(name, defaultTarget, createDefaultSourcesets()) ) = MultiplatformTargetModule(name, defaultTarget, createDefaultSourcesets())
object EmptySingleplatformProjectTemplate : ProjectTemplate() { object EmptySingleplatformProjectTemplate : ProjectTemplate() {
override val title = "Empty Kotlin/JVM Project" override val title = "Backend Application"
override val htmlDescription = title override val description = "Create a backend application with Kotlin/JVM."
override val suggestedProjectName = "myKotlinJvmProject" override val suggestedProjectName = "myKotlinJvmProject"
override val projectKind = ProjectKind.Singleplatform override val projectKind = ProjectKind.Singleplatform
@@ -117,8 +114,8 @@ object EmptySingleplatformProjectTemplate : ProjectTemplate() {
} }
object EmptyMultiplatformProjectTemplate : ProjectTemplate() { object EmptyMultiplatformProjectTemplate : ProjectTemplate() {
override val title = "Empty Kotlin Multiplatform Project" override val title = "Multiplatform Application"
override val htmlDescription = "Multiplatform Gradle project without predefined targets" override val description = "Create applications for different platforms that support sharing common code."
override val suggestedProjectName = "myKotlinMultiplatformProject" override val suggestedProjectName = "myKotlinMultiplatformProject"
override val projectKind = ProjectKind.Multiplatform override val projectKind = ProjectKind.Multiplatform
@@ -131,8 +128,8 @@ object EmptyMultiplatformProjectTemplate : ProjectTemplate() {
} }
object JvmConsoleApplication : ProjectTemplate() { object JvmConsoleApplication : ProjectTemplate() {
override val title = "Kotlin/JVM Console Application" override val title = "Console Application"
override val htmlDescription = title override val description = "Create a console application with Kotlin/JVM. Use it for prototyping or testing purposes"
override val suggestedProjectName = "myConsoleApplication" override val suggestedProjectName = "myConsoleApplication"
override val projectKind = ProjectKind.Singleplatform override val projectKind = ProjectKind.Singleplatform
@@ -150,13 +147,8 @@ object JvmConsoleApplication : ProjectTemplate() {
} }
object MultiplatformLibrary : ProjectTemplate() { object MultiplatformLibrary : ProjectTemplate() {
override val title = "Kotlin Multiplatform Library" override val title = "Multiplatform Library"
override val description = "Create a library for sharing common code among different platforms."
@Language("HTML")
override val htmlDescription = """
Multiplatform Gradle project allowing reuse of the same Kotlin code between all three main platforms
(<b>JVM</b>, <b>JS</b>, and <b>Native</b>)
""".trimIndent()
override val suggestedProjectName = "myMultiplatformLibrary" override val suggestedProjectName = "myMultiplatformLibrary"
override val projectKind = ProjectKind.Multiplatform override val projectKind = ProjectKind.Multiplatform
@@ -177,9 +169,9 @@ object MultiplatformLibrary : ProjectTemplate() {
} }
object JvmServerJsClient : ProjectTemplate() { object JvmServerJsClient : ProjectTemplate() {
override val title: String = "Web Application with Kotlin/JS Client and Kotlin/JVM Server" override val title: String = "Full-Stack Web Application"
override val htmlDescription: String = override val description: String = "" +
"Multiplatform Gradle project with client module running on Kotlin/JS and server module on Kotlin/JVM" "Create a fully-functional web application using Kotlin/JS for the frontend and Kotlin/JVM for the backend"
override val suggestedProjectName: String = "myFullStackApplication" override val suggestedProjectName: String = "myFullStackApplication"
override val projectKind: ProjectKind = ProjectKind.Multiplatform override val projectKind: ProjectKind = ProjectKind.Multiplatform
override val setsPluginSettings: List<SettingWithValue<*, *>> = listOf( override val setsPluginSettings: List<SettingWithValue<*, *>> = listOf(
@@ -204,10 +196,7 @@ object JvmServerJsClient : ProjectTemplate() {
object AndroidApplication : ProjectTemplate() { object AndroidApplication : ProjectTemplate() {
override val title = "Android Application" override val title = "Android Application"
@Language("HTML") override val description = "Simple Android application with single activity"
override val htmlDescription = """
Simple <b>Android</b> application with single activity
""".trimIndent()
override val suggestedProjectName = "myAndroidApplication" override val suggestedProjectName = "myAndroidApplication"
override val projectKind = ProjectKind.Android override val projectKind = ProjectKind.Android
@@ -228,8 +217,9 @@ object AndroidApplication : ProjectTemplate() {
} }
object NativeConsoleApplication : ProjectTemplate() { object NativeConsoleApplication : ProjectTemplate() {
override val title = "Kotlin/Native Console Application" override val title = "Native Application"
override val htmlDescription = title override val description =
"Create an application with Kotlin/Native that works as a standalone application under a specific platform."
override val suggestedProjectName = "myNativeConsoleApp" override val suggestedProjectName = "myNativeConsoleApp"
override val projectKind = ProjectKind.Multiplatform override val projectKind = ProjectKind.Multiplatform
@@ -252,8 +242,8 @@ object NativeConsoleApplication : ProjectTemplate() {
} }
object JsBrowserApplication : ProjectTemplate() { object JsBrowserApplication : ProjectTemplate() {
override val title = "Kotlin/JS Frontend Application" override val title = "Frontend Application"
override val htmlDescription = "Gradle project for a Kotlin/JS frontend web application" override val description = "Create a frontend application with Kotlin/JS if you already have a backend."
override val suggestedProjectName = "myKotlinJsApplication" override val suggestedProjectName = "myKotlinJsApplication"
override val projectKind = ProjectKind.Js override val projectKind = ProjectKind.Js
@@ -276,10 +266,7 @@ object JsBrowserApplication : ProjectTemplate() {
object IOSApplication : ProjectTemplate() { object IOSApplication : ProjectTemplate() {
override val title = "IOS Application" override val title = "IOS Application"
@Language("HTML") override val description = "Simple IOS application with single screen "
override val htmlDescription = """
Simple <b>IOS</b> application with single screen
""".trimIndent()
override val suggestedProjectName = "myIOSApplication" override val suggestedProjectName = "myIOSApplication"
override val projectKind = ProjectKind.Multiplatform override val projectKind = ProjectKind.Multiplatform