forked from j62/ctbrec
Jump to next model with letter keys
This commit is contained in:
parent
3cf6038da0
commit
c1cbcc8554
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue