Show filename template configuration as table
This commit is contained in:
parent
f0a683a6dc
commit
26e7adbfae
|
|
@ -25,8 +25,12 @@ class InitializeFilenameTemplateActivity : StartupActivity {
|
|||
}
|
||||
|
||||
val anchorId = "NewFile"
|
||||
val action = CreateFileWithFilenameTemplateAction(settings.text, settings.description, settings.template)
|
||||
val actionId = "FilenameTemplate.${settings.text}"
|
||||
val action = CreateFileWithFilenameTemplateAction(
|
||||
settings.filenameTemplate.text,
|
||||
settings.filenameTemplate.description,
|
||||
settings.filenameTemplate.template
|
||||
)
|
||||
val actionId = "FilenameTemplate.${settings.filenameTemplate.text}"
|
||||
actionManager.registerAction(actionId, action)
|
||||
newGroup.addAction(action, Constraints(Anchor.AFTER, anchorId))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,25 +21,25 @@ class FilenameTemplateConfigurable : Configurable {
|
|||
|
||||
override fun isModified(): Boolean {
|
||||
val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance
|
||||
return component.text != settings.text ||
|
||||
component.description != settings.description ||
|
||||
component.template != settings.template
|
||||
return component.filenameTemplateTable.getValueAt(0, 0) != settings.filenameTemplate.text ||
|
||||
component.filenameTemplateTable.getValueAt(0, 1) != settings.filenameTemplate.description ||
|
||||
component.filenameTemplateTable.getValueAt(0, 2) != settings.filenameTemplate.template
|
||||
}
|
||||
|
||||
@Throws(ConfigurationException::class)
|
||||
override fun apply() {
|
||||
val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance
|
||||
settings.text = component.text
|
||||
settings.description = component.description
|
||||
settings.template = component.template
|
||||
settings.filenameTemplate.text = component.filenameTemplateTable.getValueAt(0, 0) as String
|
||||
settings.filenameTemplate.description = component.filenameTemplateTable.getValueAt(0, 1) as String
|
||||
settings.filenameTemplate.template = component.filenameTemplateTable.getValueAt(0, 2) as String
|
||||
|
||||
InitializeFilenameTemplateActivity().initializeActions()
|
||||
}
|
||||
|
||||
override fun reset() {
|
||||
val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance
|
||||
component.text = settings.text
|
||||
component.description = settings.description
|
||||
component.template = settings.template
|
||||
component.filenameTemplateTable.setValueAt(settings.filenameTemplate.text, 0, 0)
|
||||
component.filenameTemplateTable.setValueAt(settings.filenameTemplate.description, 0, 1)
|
||||
component.filenameTemplateTable.setValueAt(settings.filenameTemplate.template, 0, 2)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
package de.idetools.filename_template.settings
|
||||
|
||||
data class FilenameTemplateModel(
|
||||
var text: String,
|
||||
var description: String,
|
||||
var template: String
|
||||
)
|
||||
|
|
@ -1,40 +1,26 @@
|
|||
package de.idetools.filename_template.settings
|
||||
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.ui.components.JBTextField
|
||||
import com.intellij.util.ui.FormBuilder
|
||||
import com.intellij.ui.components.JBScrollPane
|
||||
import com.intellij.ui.layout.panel
|
||||
import com.intellij.ui.table.JBTable
|
||||
import javax.swing.JPanel
|
||||
|
||||
class FilenameTemplateSettingsComponent {
|
||||
val panel: JPanel
|
||||
private val textField: JBTextField = JBTextField()
|
||||
private val descriptionField: JBTextField = JBTextField()
|
||||
private val templateField: JBTextField = JBTextField()
|
||||
|
||||
var text: String
|
||||
get() = textField.text
|
||||
set(value) {
|
||||
textField.text = value
|
||||
}
|
||||
|
||||
var description: String
|
||||
get() = descriptionField.text
|
||||
set(value) {
|
||||
descriptionField.text = value
|
||||
}
|
||||
|
||||
var template: String
|
||||
get() = templateField.text
|
||||
set(value) {
|
||||
templateField.text = value
|
||||
}
|
||||
val filenameTemplateTable: JBTable
|
||||
|
||||
init {
|
||||
panel = FormBuilder.createFormBuilder()
|
||||
.addLabeledComponent(JBLabel("Text"), textField, 1, false)
|
||||
.addLabeledComponent(JBLabel("Description"), descriptionField, 1, false)
|
||||
.addLabeledComponent(JBLabel("Template"), templateField, 1, false)
|
||||
.addComponentFillVertically(JPanel(), 0)
|
||||
.panel
|
||||
val settings: FilenameTemplateSettingsState = FilenameTemplateSettingsState.instance
|
||||
|
||||
val filenameTemplateTableModel = FilenameTemplateTableModel(settings.filenameTemplate.copy())
|
||||
filenameTemplateTable = JBTable(filenameTemplateTableModel)
|
||||
filenameTemplateTable.isStriped = true
|
||||
filenameTemplateTable.autoCreateRowSorter = false
|
||||
val filenameTemplateTableScrollPane = JBScrollPane(filenameTemplateTable)
|
||||
panel = panel {
|
||||
row {
|
||||
filenameTemplateTableScrollPane()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,7 @@ import com.intellij.util.xmlb.XmlSerializerUtil
|
|||
storages = [Storage("FilenameTemplateSettings.xml")]
|
||||
)
|
||||
class FilenameTemplateSettingsState : PersistentStateComponent<FilenameTemplateSettingsState> {
|
||||
var text = ""
|
||||
var description = ""
|
||||
var template = ""
|
||||
var filenameTemplate: FilenameTemplateModel = FilenameTemplateModel("", "", "")
|
||||
|
||||
override fun getState(): FilenameTemplateSettingsState {
|
||||
return this
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package de.idetools.filename_template.settings
|
||||
|
||||
import javax.swing.table.AbstractTableModel
|
||||
|
||||
class FilenameTemplateTableModel(private val data: FilenameTemplateModel) : AbstractTableModel() {
|
||||
private val header: List<String> = listOf("Text", "Description", "Template")
|
||||
|
||||
override fun getRowCount(): Int = 1
|
||||
|
||||
override fun getColumnCount(): Int = header.size
|
||||
|
||||
override fun getValueAt(row: Int, column: Int): Any {
|
||||
return when (column) {
|
||||
0 -> data.text
|
||||
1 -> data.description
|
||||
2 -> data.template
|
||||
else -> throw ArrayIndexOutOfBoundsException()
|
||||
}
|
||||
}
|
||||
|
||||
override fun setValueAt(value: Any?, row: Int, column: Int) {
|
||||
when (column) {
|
||||
0 -> data.text = value as String
|
||||
1 -> data.description = value as String
|
||||
2 -> data.template = value as String
|
||||
else -> throw ArrayIndexOutOfBoundsException()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getColumnName(column: Int): String = header[column]
|
||||
|
||||
override fun getColumnClass(column: Int): Class<*> = getValueAt(0, column)::class.java
|
||||
|
||||
override fun isCellEditable(row: Int, column: Int): Boolean = true
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user