forked from j62/ctbrec
1
0
Fork 0

Jump to next model with letter keys

This commit is contained in:
0xboobface 2020-01-24 20:37:28 +01:00
parent 3cf6038da0
commit c1cbcc8554
1 changed files with 31 additions and 5 deletions

View File

@ -229,11 +229,8 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
List<JavaFxModel> selectedModels = table.getSelectionModel().getSelectedItems();
if (event.getCode() == KeyCode.DELETE) {
stopAction(selectedModels);
} else if (event.getCode() == KeyCode.P) {
List<JavaFxModel> pausedModels = selectedModels.stream().filter(JavaFxModel::isSuspended).collect(Collectors.toList());
List<JavaFxModel> runningModels = selectedModels.stream().filter(m -> !m.isSuspended()).collect(Collectors.toList());
resumeRecording(pausedModels);
pauseRecording(runningModels);
} else {
jumpToNextModel(event.getCode());
}
});
@ -289,6 +286,35 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
restoreState();
}
private void jumpToNextModel(KeyCode code) {
if (!table.getItems().isEmpty() && (code.isLetterKey() || code.isDigitKey())) {
// determine where to start looking for the next model
int startAt = 0;
if (table.getSelectionModel().getSelectedIndex() >= 0) {
startAt = table.getSelectionModel().getSelectedIndex() + 1;
if (startAt >= table.getItems().size()) {
startAt = 0;
}
}
String c = code.getChar().toLowerCase();
int i = startAt;
do {
JavaFxModel current = table.getItems().get(i);
if (current.getName().toLowerCase().replaceAll("[^0-9a-z]", "").startsWith(c)) {
table.getSelectionModel().clearAndSelect(i);
table.scrollTo(i);
break;
}
i++;
if (i >= table.getItems().size()) {
i = 0;
}
} while (i != startAt);
}
}
private void onUpdatePriority(CellEditEvent<JavaFxModel, Number> evt) {
try {
int prio = Optional.ofNullable(evt.getNewValue()).map(Number::intValue).orElse(-1);