From 7cfcad0c5405c30cd00515ccde0a508a44438c30 Mon Sep 17 00:00:00 2001 From: Matthias Gugel Date: Tue, 23 Mar 2021 06:53:01 +0100 Subject: [PATCH] Combine name and description into title With the templated new file dialog the description could not be shown anywhere. Simply deleting the description is not an option as some users might rely on this information. --- .../CreateFileWithFilenameTemplateAction.kt | 13 +++++++++++-- .../settings/FilenameTemplateConfigurable.kt | 17 +++++++++++++---- .../settings/FilenameTemplateModel.kt | 1 + .../FilenameTemplateSettingsComponent.kt | 2 +- .../settings/FilenameTemplateTableModel.kt | 12 +++++------- 5 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/main/kotlin/de/idetools/filename_template/CreateFileWithFilenameTemplateAction.kt b/src/main/kotlin/de/idetools/filename_template/CreateFileWithFilenameTemplateAction.kt index f3956c0..877a8b2 100644 --- a/src/main/kotlin/de/idetools/filename_template/CreateFileWithFilenameTemplateAction.kt +++ b/src/main/kotlin/de/idetools/filename_template/CreateFileWithFilenameTemplateAction.kt @@ -43,10 +43,19 @@ class CreateFileWithFilenameTemplateAction : directory: PsiDirectory, elementsConsumer: Consumer?> ) { - val templates = FilenameTemplateSettingsState.instance.filenameTemplates + val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance + settings.filenameTemplates.forEach { + if (it.title.isBlank()) { + it.title = if (it.description.isBlank()) it.name else "${it.name} - ${it.description}" + } + it.name = "" + it.description = "" + } + + val templates = settings.filenameTemplates .filter { it.isActive } .map { - Trinity(it.name, AllIcons.Actions.AddFile, processTemplate(it.template, project, directory)) + Trinity(it.title, AllIcons.Actions.AddFile, processTemplate(it.template, project, directory)) } val validator: MyInputValidator = MyValidator(project, directory) val contentPanel = CreateWithFilenameTemplateDialogPanel(templates) diff --git a/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateConfigurable.kt b/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateConfigurable.kt index fd792b3..c89843e 100644 --- a/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateConfigurable.kt +++ b/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateConfigurable.kt @@ -11,8 +11,16 @@ class FilenameTemplateConfigurable : Configurable { init { val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance + settings.filenameTemplates.forEach { + if (it.title.isBlank()) { + it.title = if (it.description.isBlank()) it.name else "${it.name} - ${it.description}" + } + it.name = "" + it.description = "" + } + component = FilenameTemplateSettingsComponent(ArrayList(settings.filenameTemplates.map { - FilenameTemplateModel(it.isActive, it.name, it.description, it.template) + FilenameTemplateModel(it.isActive, it.title, it.name, it.description, it.template) })) } @@ -31,9 +39,8 @@ class FilenameTemplateConfigurable : Configurable { return settings.filenameTemplates.size != component.filenameTemplates.size || settings.filenameTemplates.withIndex().any { component.filenameTemplateTable.getValueAt(it.index, 0) != it.value.isActive - || component.filenameTemplateTable.getValueAt(it.index, 1) != it.value.name - || component.filenameTemplateTable.getValueAt(it.index, 2) != it.value.description - || component.filenameTemplateTable.getValueAt(it.index, 3) != it.value.template + || component.filenameTemplateTable.getValueAt(it.index, 1) != it.value.title + || component.filenameTemplateTable.getValueAt(it.index, 2) != it.value.template } } @@ -44,6 +51,7 @@ class FilenameTemplateConfigurable : Configurable { settings.filenameTemplates.addAll(component.filenameTemplates.map { FilenameTemplateModel( it.isActive, + it.title, it.name, it.description, it.template @@ -57,6 +65,7 @@ class FilenameTemplateConfigurable : Configurable { component.filenameTemplates.addAll(settings.filenameTemplates.map { FilenameTemplateModel( it.isActive, + it.title, it.name, it.description, it.template diff --git a/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateModel.kt b/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateModel.kt index b6128dc..2f2017c 100644 --- a/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateModel.kt +++ b/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateModel.kt @@ -2,6 +2,7 @@ package de.idetools.filename_template.settings data class FilenameTemplateModel( var isActive: Boolean = true, + var title: String = "", var name: String = "", var description: String = "", var template: String = "" diff --git a/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateSettingsComponent.kt b/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateSettingsComponent.kt index 5c83fd3..837f8a7 100644 --- a/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateSettingsComponent.kt +++ b/src/main/kotlin/de/idetools/filename_template/settings/FilenameTemplateSettingsComponent.kt @@ -26,7 +26,7 @@ class FilenameTemplateSettingsComponent(val filenameTemplates: ArrayList) : AbstractTableModel() { - private val header: List = listOf("Active", "Name", "Description", "Template") + private val header: List = listOf("Active", "Title", "Template") override fun getRowCount(): Int = filenameTemplates.size @@ -14,9 +14,8 @@ class FilenameTemplateTableModel(private val filenameTemplates: ArrayList filenameTemplates[row].isActive - 1 -> filenameTemplates[row].name - 2 -> filenameTemplates[row].description - 3 -> filenameTemplates[row].template + 1 -> filenameTemplates[row].title + 2 -> filenameTemplates[row].template else -> throw ArrayIndexOutOfBoundsException() } } @@ -24,9 +23,8 @@ class FilenameTemplateTableModel(private val filenameTemplates: ArrayList filenameTemplates[row].isActive = value as Boolean - 1 -> filenameTemplates[row].name = value as String - 2 -> filenameTemplates[row].description = value as String - 3 -> filenameTemplates[row].template = value as String + 1 -> filenameTemplates[row].title = value as String + 2 -> filenameTemplates[row].template = value as String else -> throw ArrayIndexOutOfBoundsException() } }