From d98bc6ceb6fcb259f50613394215c35dc18f270b Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 5 Sep 2022 12:04:55 -0500 Subject: [PATCH] Fixed sort bug introduced by !4, made search case insensitive --- src/main/kotlin/EditorConstants.kt | 2 +- src/main/kotlin/ItemMenu.kt | 2 +- src/main/kotlin/ShopList.kt | 2 +- src/main/kotlin/TableEditor.kt | 21 +++++++++++++++++---- src/main/kotlin/TableList.kt | 2 +- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/EditorConstants.kt b/src/main/kotlin/EditorConstants.kt index 18d7030..da82135 100644 --- a/src/main/kotlin/EditorConstants.kt +++ b/src/main/kotlin/EditorConstants.kt @@ -2,7 +2,7 @@ import com.github.weisj.darklaf.LafManager import com.github.weisj.darklaf.theme.OneDarkTheme object EditorConstants { - var BUILD_NUMBER = "1.5.0" + var BUILD_NUMBER = "1.5.2" var DARK_MODE = true diff --git a/src/main/kotlin/ItemMenu.kt b/src/main/kotlin/ItemMenu.kt index c9a667b..94456de 100644 --- a/src/main/kotlin/ItemMenu.kt +++ b/src/main/kotlin/ItemMenu.kt @@ -23,7 +23,7 @@ object ItemMenu : JFrame("Item Selection Menu") { var rf: RowFilter? = null //If current expression doesn't parse, don't update. rf = try { - RowFilter.regexFilter(searchField.text.capitalize(), 1) + RowFilter.regexFilter("(?i)${searchField.text}") } catch (e: PatternSyntaxException) { return } diff --git a/src/main/kotlin/ShopList.kt b/src/main/kotlin/ShopList.kt index c47d726..502f5b7 100644 --- a/src/main/kotlin/ShopList.kt +++ b/src/main/kotlin/ShopList.kt @@ -104,7 +104,7 @@ class ShopList : JFrame("RS09 Shop Editor") { var rf: RowFilter? = null //If current expression doesn't parse, don't update. rf = try { - RowFilter.regexFilter(searchField.text, 1) + RowFilter.regexFilter("(?i)${searchField.text}") } catch (e: PatternSyntaxException) { return } diff --git a/src/main/kotlin/TableEditor.kt b/src/main/kotlin/TableEditor.kt index acc1ced..4ab1119 100644 --- a/src/main/kotlin/TableEditor.kt +++ b/src/main/kotlin/TableEditor.kt @@ -45,6 +45,7 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace(" } var rowHeaderTable = JTable(rowHeaderModel) val sorter = TableRowSorter(model) + val rowHeaderSorter = TableRowSorter(rowHeaderModel) init { layout = BorderLayout() @@ -56,11 +57,12 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace(" searchField.addKeyListener(object : KeyListener{ override fun keyTyped(p0: KeyEvent?) { filter() } - override fun keyPressed(p0: KeyEvent?) {} - override fun keyReleased(p0: KeyEvent?) {} + override fun keyPressed(p0: KeyEvent?) {filter()} + override fun keyReleased(p0: KeyEvent?) {filter()} }) table.rowSorter = sorter + rowHeaderTable.rowSorter = rowHeaderSorter val addButton = JButton("Add Row") @@ -204,14 +206,25 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace(" } private fun filter() { + val regex = Regex("(?i)${searchField.text}") var rf: RowFilter? = null //If current expression doesn't parse, don't update. rf = try { - RowFilter.regexFilter(searchField.text) + RowFilter.regexFilter(regex.pattern) } catch (e: PatternSyntaxException) { return } - sorter.rowFilter = rf + if (editor == Editors.OBJECT_CONFIGS) { + sorter.rowFilter = rf + } else { + rowHeaderSorter.rowFilter = rf + sorter.rowFilter = object : RowFilter() { + override fun include(p0: Entry?): Boolean { + val rowId: Int = p0?.identifier as? Int ?: return false + return regex.containsMatchIn(getData()[rowId]["name"].toString()) + } + } + } } fun getData(): ArrayList { diff --git a/src/main/kotlin/TableList.kt b/src/main/kotlin/TableList.kt index 746ed3c..e8ec639 100644 --- a/src/main/kotlin/TableList.kt +++ b/src/main/kotlin/TableList.kt @@ -99,7 +99,7 @@ class TableList : JFrame("RS09 Drop Table Editor") { var rf: RowFilter? = null //If current expression doesn't parse, don't update. rf = try { - RowFilter.regexFilter(searchField.text, 0) + RowFilter.regexFilter("(?i)${searchField.text}") } catch (e: PatternSyntaxException) { return }