mirror of
https://gitlab.com/2009scape/tools/rs09-thanos-tool.git
synced 2026-08-01 14:39:20 -06:00
Merge branch 'pin-row-headers' into 'master'
Pin NPC/Item ID/Name to the left side no matter how much you scroll See merge request 2009scape/tools/rs09-thanos-tool!4
This commit is contained in:
commit
6c562e050e
1 changed files with 24 additions and 5 deletions
|
|
@ -22,6 +22,7 @@ import kotlin.collections.ArrayList
|
|||
class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("_"," ").toLowerCase()}") {
|
||||
val searchField = JTextField()
|
||||
val model = DefaultTableModel()
|
||||
val rowHeaderModel = DefaultTableModel()
|
||||
var table = object : JTable(model){
|
||||
override fun editCellAt(p0: Int, p1: Int): Boolean {
|
||||
return super.editCellAt(p0, p1, null)
|
||||
|
|
@ -42,6 +43,7 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
return super.editCellAt(p0, p1, p2)
|
||||
}
|
||||
}
|
||||
var rowHeaderTable = JTable(rowHeaderModel)
|
||||
val sorter = TableRowSorter(model)
|
||||
|
||||
init {
|
||||
|
|
@ -67,6 +69,7 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
addButton.addActionListener {
|
||||
getData().add(JSONObject())
|
||||
model.addRow(arrayOf())
|
||||
rowHeaderModel.addRow(arrayOf())
|
||||
confirmation.isVisible = true
|
||||
}
|
||||
|
||||
|
|
@ -83,6 +86,15 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
searchPanel.add(saveButton)
|
||||
|
||||
val pane = JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS)
|
||||
|
||||
if (editor != Editors.OBJECT_CONFIGS) {
|
||||
pane.setRowHeaderView(rowHeaderTable)
|
||||
val headerSize = pane.rowHeader.maximumSize
|
||||
headerSize.width = 200
|
||||
pane.rowHeader.maximumSize = headerSize
|
||||
pane.rowHeader.preferredSize = headerSize
|
||||
}
|
||||
|
||||
add(pane, BorderLayout.CENTER)
|
||||
add(searchPanel, BorderLayout.NORTH)
|
||||
|
||||
|
|
@ -101,16 +113,17 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
table.columnModel.getColumn(0).preferredWidth = 400
|
||||
table.columnModel.getColumn(1).preferredWidth = 600
|
||||
} else {
|
||||
model.addColumn("id")
|
||||
model.addColumn("name")
|
||||
rowHeaderModel.addColumn("id")
|
||||
rowHeaderModel.addColumn("name")
|
||||
rowHeaderTable.columnModel.getColumn(0).preferredWidth = 85
|
||||
rowHeaderTable.columnModel.getColumn(0).maxWidth = 85
|
||||
rowHeaderTable.columnModel.getColumn(1).preferredWidth = 200
|
||||
rowHeaderTable.columnModel.getColumn(1).maxWidth = 200
|
||||
keys.remove("id")
|
||||
keys.remove("name")
|
||||
}
|
||||
|
||||
keys.sortedBy { it.toString() }.forEach { model.addColumn(it) }
|
||||
if(editor != Editors.OBJECT_CONFIGS) {
|
||||
table.columnModel.getColumn(1).preferredWidth = 150
|
||||
}
|
||||
|
||||
model.addTableModelListener(object : TableModelListener{
|
||||
override fun tableChanged(event: TableModelEvent?) {
|
||||
|
|
@ -130,6 +143,7 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
val realRow = table.convertRowIndexToModel(table.selectedRows[0])
|
||||
getData().removeAt(realRow)
|
||||
model.removeRow(realRow)
|
||||
rowHeaderModel.removeRow(realRow)
|
||||
}
|
||||
repaint()
|
||||
} catch(e: Exception){
|
||||
|
|
@ -158,6 +172,7 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
val copyData = jsonData.clone() as JSONObject
|
||||
getData().add(insertPos, copyData)
|
||||
model.insertRow(insertPos, copiedRow)
|
||||
rowHeaderModel.insertRow(insertPos, arrayOf(copyData["id"], copyData["name"]))
|
||||
}
|
||||
table.revalidate()
|
||||
table.repaint()
|
||||
|
|
@ -175,11 +190,15 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace("
|
|||
|
||||
for(datum in data){
|
||||
val vals = JSONArray()
|
||||
val idName = JSONArray()
|
||||
idName.add(datum["id"])
|
||||
idName.add(datum["name"])
|
||||
for(i in 0 until model.columnCount){
|
||||
val label = model.getColumnName(i)
|
||||
vals.add(datum[label] ?: "")
|
||||
}
|
||||
model.addRow(vals.toArray())
|
||||
rowHeaderModel.addRow(idName.toArray())
|
||||
}
|
||||
isVisible = true
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue