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,
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 }
.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)

View File

@ -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

View File

@ -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 = ""

View File

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

View File

@ -5,7 +5,7 @@ import javax.swing.table.AbstractTableModel
class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<FilenameTemplateModel>) :
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
@ -14,9 +14,8 @@ class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<Filena
override fun getValueAt(row: Int, column: Int): Any {
return when (column) {
0 -> 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<Filena
override fun setValueAt(value: Any?, row: Int, column: Int) {
when (column) {
0 -> 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()
}
}