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.
This commit is contained in:
Matthias Gugel 2021-03-23 06:53:01 +01:00
parent d15d54e801
commit 7cfcad0c54
5 changed files with 31 additions and 14 deletions

View File

@ -43,10 +43,19 @@ class CreateFileWithFilenameTemplateAction :
directory: PsiDirectory, directory: PsiDirectory,
elementsConsumer: Consumer<Array<PsiElement?>?> elementsConsumer: Consumer<Array<PsiElement?>?>
) { ) {
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 } .filter { it.isActive }
.map { .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 validator: MyInputValidator = MyValidator(project, directory)
val contentPanel = CreateWithFilenameTemplateDialogPanel(templates) val contentPanel = CreateWithFilenameTemplateDialogPanel(templates)

View File

@ -11,8 +11,16 @@ class FilenameTemplateConfigurable : Configurable {
init { init {
val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance 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 { 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 || return settings.filenameTemplates.size != component.filenameTemplates.size ||
settings.filenameTemplates.withIndex().any { settings.filenameTemplates.withIndex().any {
component.filenameTemplateTable.getValueAt(it.index, 0) != it.value.isActive component.filenameTemplateTable.getValueAt(it.index, 0) != it.value.isActive
|| component.filenameTemplateTable.getValueAt(it.index, 1) != it.value.name || component.filenameTemplateTable.getValueAt(it.index, 1) != it.value.title
|| component.filenameTemplateTable.getValueAt(it.index, 2) != it.value.description || component.filenameTemplateTable.getValueAt(it.index, 2) != it.value.template
|| component.filenameTemplateTable.getValueAt(it.index, 3) != it.value.template
} }
} }
@ -44,6 +51,7 @@ class FilenameTemplateConfigurable : Configurable {
settings.filenameTemplates.addAll(component.filenameTemplates.map { settings.filenameTemplates.addAll(component.filenameTemplates.map {
FilenameTemplateModel( FilenameTemplateModel(
it.isActive, it.isActive,
it.title,
it.name, it.name,
it.description, it.description,
it.template it.template
@ -57,6 +65,7 @@ class FilenameTemplateConfigurable : Configurable {
component.filenameTemplates.addAll(settings.filenameTemplates.map { component.filenameTemplates.addAll(settings.filenameTemplates.map {
FilenameTemplateModel( FilenameTemplateModel(
it.isActive, it.isActive,
it.title,
it.name, it.name,
it.description, it.description,
it.template it.template

View File

@ -2,6 +2,7 @@ package de.idetools.filename_template.settings
data class FilenameTemplateModel( data class FilenameTemplateModel(
var isActive: Boolean = true, var isActive: Boolean = true,
var title: String = "",
var name: String = "", var name: String = "",
var description: String = "", var description: String = "",
var template: String = "" var template: String = ""

View File

@ -26,7 +26,7 @@ class FilenameTemplateSettingsComponent(val filenameTemplates: ArrayList<Filenam
activeColumn.resizable = false activeColumn.resizable = false
activeColumn.maxWidth = determineRequiredWidth(activeColumn) activeColumn.maxWidth = determineRequiredWidth(activeColumn)
val templateColumn = filenameTemplateTable.columnModel.getColumn(3) val templateColumn = filenameTemplateTable.columnModel.getColumn(2)
templateColumn.cellEditor = PlaceholderCompletionCellEditor() templateColumn.cellEditor = PlaceholderCompletionCellEditor()
val filenameTemplateTableScrollPane = JBScrollPane(filenameTemplateTable) val filenameTemplateTableScrollPane = JBScrollPane(filenameTemplateTable)

View File

@ -5,7 +5,7 @@ import javax.swing.table.AbstractTableModel
class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<FilenameTemplateModel>) : class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<FilenameTemplateModel>) :
AbstractTableModel() { AbstractTableModel() {
private val header: List<String> = listOf("Active", "Name", "Description", "Template") private val header: List<String> = listOf("Active", "Title", "Template")
override fun getRowCount(): Int = filenameTemplates.size override fun getRowCount(): Int = filenameTemplates.size
@ -14,9 +14,8 @@ class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<Filena
override fun getValueAt(row: Int, column: Int): Any { override fun getValueAt(row: Int, column: Int): Any {
return when (column) { return when (column) {
0 -> filenameTemplates[row].isActive 0 -> filenameTemplates[row].isActive
1 -> filenameTemplates[row].name 1 -> filenameTemplates[row].title
2 -> filenameTemplates[row].description 2 -> filenameTemplates[row].template
3 -> filenameTemplates[row].template
else -> throw ArrayIndexOutOfBoundsException() else -> throw ArrayIndexOutOfBoundsException()
} }
} }
@ -24,9 +23,8 @@ class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<Filena
override fun setValueAt(value: Any?, row: Int, column: Int) { override fun setValueAt(value: Any?, row: Int, column: Int) {
when (column) { when (column) {
0 -> filenameTemplates[row].isActive = value as Boolean 0 -> filenameTemplates[row].isActive = value as Boolean
1 -> filenameTemplates[row].name = value as String 1 -> filenameTemplates[row].title = value as String
2 -> filenameTemplates[row].description = value as String 2 -> filenameTemplates[row].template = value as String
3 -> filenameTemplates[row].template = value as String
else -> throw ArrayIndexOutOfBoundsException() else -> throw ArrayIndexOutOfBoundsException()
} }
} }