Provide toolbar to move filename templates
This commit is contained in:
parent
ad1f6de879
commit
875580f27f
|
|
@ -39,6 +39,16 @@ class FilenameTemplateSettingsComponent(val filenameTemplates: ArrayList<Filenam
|
|||
filenameTemplateTableModel.removeRows(table.selectedRows)
|
||||
}
|
||||
})
|
||||
actionGroup.add(object : AnAction("Up", "Move selected filename templates up", AllIcons.Actions.MoveUp) {
|
||||
override fun actionPerformed(e: AnActionEvent) {
|
||||
filenameTemplateTableModel.moveRowsUp(table.selectedRows)
|
||||
}
|
||||
})
|
||||
actionGroup.add(object : AnAction("Down", "Move selected filename templates down", AllIcons.Actions.MoveDown) {
|
||||
override fun actionPerformed(e: AnActionEvent) {
|
||||
filenameTemplateTableModel.moveRowsDown(table.selectedRows)
|
||||
}
|
||||
})
|
||||
val toolbar = ActionManager.getInstance().createActionToolbar("MyToolbar", actionGroup, false)
|
||||
panel.add(toolbar.component)
|
||||
return panel
|
||||
|
|
|
|||
|
|
@ -41,10 +41,44 @@ class FilenameTemplateTableModel(private val filenameTemplates: ArrayList<Filena
|
|||
}
|
||||
|
||||
fun removeRows(selectedRows: IntArray) {
|
||||
Arrays.sort(selectedRows)
|
||||
selectedRows.sort()
|
||||
for (i in selectedRows.indices.reversed()) {
|
||||
filenameTemplates.removeAt(selectedRows[i])
|
||||
}
|
||||
fireTableDataChanged()
|
||||
}
|
||||
|
||||
fun moveRowsUp(selectedRows: IntArray) {
|
||||
selectedRows.sort()
|
||||
var minRow = 0
|
||||
for (currentRow in selectedRows) {
|
||||
val targetRow = currentRow - 1
|
||||
minRow = if (minRow <= targetRow) {
|
||||
val filenameTemplate = filenameTemplates[currentRow]
|
||||
filenameTemplates.removeAt(currentRow)
|
||||
filenameTemplates.add(targetRow, filenameTemplate)
|
||||
currentRow
|
||||
} else {
|
||||
currentRow + 1
|
||||
}
|
||||
}
|
||||
fireTableDataChanged()
|
||||
}
|
||||
|
||||
fun moveRowsDown(selectedRows: IntArray) {
|
||||
selectedRows.sortDescending()
|
||||
var maxRow = filenameTemplates.size - 1
|
||||
for (currentRow in selectedRows) {
|
||||
val targetRow = currentRow + 1
|
||||
maxRow = if (targetRow <= maxRow) {
|
||||
val filenameTemplate = filenameTemplates[currentRow]
|
||||
filenameTemplates.removeAt(currentRow)
|
||||
filenameTemplates.add(targetRow, filenameTemplate)
|
||||
currentRow
|
||||
} else {
|
||||
currentRow - 1
|
||||
}
|
||||
}
|
||||
fireTableDataChanged()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user