From 80ce269298a351801fb90576c55f42f8ecb5c132 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sat, 21 Nov 2020 20:47:19 +0100 Subject: [PATCH] Little bit of code cleanup --- .../java/ctbrec/ui/tabs/RecordingsTab.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java index 4f18c6ca..d0dcb5ab 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java @@ -546,7 +546,10 @@ public class RecordingsTab extends Tab implements TabSelectionListener { } private void jumpToNextModel(KeyCode code) { - if (!table.getItems().isEmpty() && (code.isLetterKey() || code.isDigitKey())) { + try { + ensureTableIsNotEmpty(); + ensureKeyCodeIsLetterOrDigit(code); + // determine where to start looking for the next model int startAt = 0; if (table.getSelectionModel().getSelectedIndex() >= 0) { @@ -571,6 +574,20 @@ public class RecordingsTab extends Tab implements TabSelectionListener { i = 0; } } while (i != startAt); + } catch (IllegalStateException | IllegalArgumentException e) { + // GUI was not in the state to process the user input + } + } + + private void ensureKeyCodeIsLetterOrDigit(KeyCode code) { + if (!(code.isLetterKey() || code.isDigitKey())) { + throw new IllegalArgumentException("keycode not allowed"); + } + } + + private void ensureTableIsNotEmpty() { + if (table.getItems().isEmpty()) { + throw new IllegalStateException("table is empty"); } }