diff --git a/build.gradle b/build.gradle index f38b2fa..74a8a77 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group 'org.example' -version '1.2' +version '1.3' repositories { repositories { diff --git a/src/main/kotlin/EditorConstants.kt b/src/main/kotlin/EditorConstants.kt index 15272c6..a085a5f 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 = "0.1.0" + var BUILD_NUMBER = "1.3.0" var DARK_MODE = true diff --git a/src/main/kotlin/MainScreen.kt b/src/main/kotlin/MainScreen.kt index 4802aa8..c6f360c 100644 --- a/src/main/kotlin/MainScreen.kt +++ b/src/main/kotlin/MainScreen.kt @@ -8,7 +8,7 @@ import java.util.* import javax.swing.* import javax.swing.table.DefaultTableModel -object MainScreen : JFrame("RS09 Thanos Tool") { +object MainScreen : JFrame("RS09 Thanos Tool ${EditorConstants.BUILD_NUMBER}") { val dirChooser = object : JFileChooser(DataStore.LastConfigPath){ override fun updateUI() { EditorConstants.updateTheme() diff --git a/src/main/kotlin/TableEditor.kt b/src/main/kotlin/TableEditor.kt index 293faaa..40cb0de 100644 --- a/src/main/kotlin/TableEditor.kt +++ b/src/main/kotlin/TableEditor.kt @@ -137,6 +137,34 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace(" } } }) + table.addKeyListener(object : KeyListener{ + override fun keyTyped(p0: KeyEvent?) {} + + override fun keyPressed(p0: KeyEvent?) {} + + override fun keyReleased(event: KeyEvent) { + if(event.isControlDown){ + if(event.keyCode == KeyEvent.VK_C){ + //copy-then-paste + val data = model.dataVector + Logger.logInfo("Copy event received.") + for(i in 0 until table.selectedRowCount){ + val realRow = table.convertRowIndexToModel(table.selectedRows[i]) + val insertPos = table.convertRowIndexToModel(table.selectedRows[table.selectedRowCount - 1]) + 1 + Logger.logInfo("Copying row $realRow") + val datum = data.elementAt(realRow) as Vector<*> + val copiedRow = datum.clone() as Vector<*> + val jsonData = getData()[realRow] + val copyData = jsonData.clone() as JSONObject + getData().add(insertPos, copyData) + model.insertRow(insertPos, copiedRow) + } + table.revalidate() + table.repaint() + } + } + } + }) EditorConstants.updateTheme() pack()